Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13700b08 authored by Andreas Huber's avatar Andreas Huber
Browse files

Disable our fancy logic to respect both sink and source's native formats

since it isn't actually supported by anything in the field.

Change-Id: I9cd038d7631105de26303312ca87c472d67034d4
parent 8d4c382d
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -256,7 +256,7 @@ bool VideoFormats::parseFormatSpec(const char *spec) {
    return GetConfiguration(mNativeType, mNativeIndex, NULL, NULL, NULL, NULL);
}

AString VideoFormats::getFormatSpec() const {
AString VideoFormats::getFormatSpec(bool forM4Message) const {
    CHECK_EQ(kNumResolutionTypes, 3);

    // wfd_video_formats:
@@ -277,7 +277,7 @@ AString VideoFormats::getFormatSpec() const {

    return StringPrintf(
            "%02x 00 02 02 %08x %08x %08x 00 0000 0000 00 none none",
            (mNativeIndex << 3) | mNativeType,
            forM4Message ? 0x00 : ((mNativeIndex << 3) | mNativeType),
            mResolutionEnabled[0],
            mResolutionEnabled[1],
            mResolutionEnabled[2]);
@@ -289,6 +289,10 @@ bool VideoFormats::PickBestFormat(
        const VideoFormats &sourceSupported,
        ResolutionType *chosenType,
        size_t *chosenIndex) {
#if 0
    // Support for the native format is a great idea, the spec includes
    // these features, but nobody supports it and the tests don't validate it.

    ResolutionType nativeType;
    size_t nativeIndex;
    sinkSupported.getNativeResolution(&nativeType, &nativeIndex);
@@ -316,6 +320,7 @@ bool VideoFormats::PickBestFormat(
        ALOGW("Source advertised native resolution that it doesn't "
              "actually support... ignoring");
    }
#endif

    bool first = true;
    uint32_t bestScore = 0;
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ struct VideoFormats {
            bool *interlaced);

    bool parseFormatSpec(const char *spec);
    AString getFormatSpec() const;
    AString getFormatSpec(bool forM4Message = false) const;

    static bool PickBestFormat(
            const VideoFormats &sinkSupported,
+2 −10
Original line number Diff line number Diff line
@@ -59,18 +59,10 @@ WifiDisplaySource::WifiDisplaySource(
      mHDCPPort(0),
      mHDCPInitializationComplete(false),
      mSetupTriggerDeferred(false) {
    mSupportedSourceVideoFormats.enableAll();
    mSupportedSourceVideoFormats.disableAll();

    mSupportedSourceVideoFormats.setNativeResolution(
            VideoFormats::RESOLUTION_CEA, 5);  // 1280x720 p30

    // Disable resolutions above 1080p since the encoder won't be able to
    // handle them.
    mSupportedSourceVideoFormats.setResolutionEnabled(
            VideoFormats::RESOLUTION_VESA, 28, false);  // 1920x1200 p30

    mSupportedSourceVideoFormats.setResolutionEnabled(
            VideoFormats::RESOLUTION_VESA, 29, false);  // 1920x1200 p60
}

WifiDisplaySource::~WifiDisplaySource() {
@@ -607,7 +599,7 @@ status_t WifiDisplaySource::sendM4(int32_t sessionID) {
        chosenVideoFormat.setNativeResolution(
                mChosenVideoResolutionType, mChosenVideoResolutionIndex);

        body.append(chosenVideoFormat.getFormatSpec());
        body.append(chosenVideoFormat.getFormatSpec(true /* forM4Message */));
        body.append("\r\n");
    }