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

Commit ca404dfb authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change Ie3ffb526 into eclair

* changes:
  do not merge: The qcom video decoders always output yuv data after adjusting dimensions to be a multiple of 16.
parents 76bb9a36 f16a0b73
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ private:
        kRequiresFlushCompleteEmulation      = 16,
        kRequiresAllocateBufferOnOutputPorts = 32,
        kRequiresFlushBeforeShutdown         = 64,
        kOutputDimensionsAre16Aligned        = 128,
    };

    struct BufferInfo {
+3 −1
Original line number Diff line number Diff line
@@ -210,6 +210,7 @@ sp<OMXCodec> OMXCodec::Create(
    uint32_t quirks = 0;
    if (!strcmp(componentName, "OMX.PV.avcdec")) {
        quirks |= kWantsNALFragments;
        quirks |= kOutputDimensionsAre16Aligned;
    }
    if (!strcmp(componentName, "OMX.TI.MP3.decode")) {
        quirks |= kNeedsFlushBeforeDisable;
@@ -231,6 +232,7 @@ sp<OMXCodec> OMXCodec::Create(
        // XXX Required on P....on only.
        quirks |= kRequiresAllocateBufferOnInputPorts;
        quirks |= kRequiresAllocateBufferOnOutputPorts;
        quirks |= kOutputDimensionsAre16Aligned;
    }

    if (!strncmp(componentName, "OMX.TI.", 7)) {
@@ -2386,7 +2388,7 @@ void OMXCodec::initOutputFormat(const sp<MetaData> &inputFormat) {
                CHECK(!"Unknown compression format.");
            }

            if (!strcmp(mComponentName, "OMX.PV.avcdec")) {
            if (mQuirks & kOutputDimensionsAre16Aligned) {
                // This component appears to be lying to me.
                mOutputFormat->setInt32(
                        kKeyWidth, (video_def->nFrameWidth + 15) & -16);
+5 −0
Original line number Diff line number Diff line
@@ -83,6 +83,11 @@ void QComHardwareRenderer::render(
    }

    mISurface->postBuffer(offset);

    // Since we cannot tell how long it'll take until surface flinger
    // has displayed the data onscreen, we'll just have to guess...
    // We must not return the buffer to the decoder before it's been displayed.
    usleep(25000);
}

bool QComHardwareRenderer::getOffset(void *platformPrivate, size_t *offset) {