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

Commit 96aeef2b authored by Andreas Huber's avatar Andreas Huber Committed by Android (Google) Code Review
Browse files

Merge "Disable our fancy logic to respect both sink and source's native formats" into jb-mr2-dev

parents 219a9d5b 13700b08
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");
    }