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

Commit ae25055f authored by Shalaj Jain's avatar Shalaj Jain Committed by Ricardo Cerqueira
Browse files

libstagefright: Change allocation buffer count for VideoEditor

- OMXCodec: AllocateBuffersOnPort: Add a check to allocated
  minmum buffer count for encoder, min + 1 for decoder input
  and min + 2 for decoder output

Change-Id: I483cbe0587b76b0c029e11054eda666e548c2b63

Conflicts:

	include/media/stagefright/OMXCodec.h
parent 27a7b609
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ struct OMXCodec : public MediaSource,

#ifdef QCOM_HARDWARE
        kEnableThumbnailMode = 512,
        kUseMinBufferCount = 32768,
#endif
    };
    static sp<MediaSource> Create(
+2 −3
Original line number Diff line number Diff line
@@ -1139,10 +1139,9 @@ status_t ACodec::setSupportedOutputFormat() {
           || format.eColorFormat == OMX_TI_COLOR_FormatYUV420PackedSemiPlanar
#ifdef QCOM_HARDWARE
           || format.eColorFormat == (OMX_COLOR_FORMATTYPE)OMX_QCOM_COLOR_FormatYVU420SemiPlanar
           || format.eColorFormat ==  (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka);
#else
           || format.eColorFormat == OMX_QCOM_COLOR_FormatYVU420SemiPlanar);
           || format.eColorFormat ==  (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka
#endif
           || format.eColorFormat == OMX_QCOM_COLOR_FormatYVU420SemiPlanar);

    return mOMX->setParameter(
            mNode, OMX_IndexParamVideoPortFormat,
+20 −0
Original line number Diff line number Diff line
@@ -2092,6 +2092,26 @@ status_t OMXCodec::allocateBuffersOnPort(OMX_U32 portIndex) {
        return err;
    }

#ifdef QCOM_HARDWARE
    if (mFlags & kUseMinBufferCount) {
        def.nBufferCountActual = def.nBufferCountMin;
        if (!mIsEncoder) {
                if (portIndex == kPortIndexOutput) {
                    def.nBufferCountActual += 2;
                }else {
                    def.nBufferCountActual += 1;
                }
        }
        err = mOMX->setParameter(
                    mNode, OMX_IndexParamPortDefinition, &def, sizeof(def));
        if (err != OK) {
            CODEC_LOGE("setting nBufferCountActual to %lu failed: %d",
                    def.nBufferCountActual, err);
            return err;
        }
    }
#endif

    CODEC_LOGV("allocating %lu buffers of size %lu on %s port",
            def.nBufferCountActual, def.nBufferSize,
            portIndex == kPortIndexInput ? "input" : "output");