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

Commit bffaa877 authored by Harish Mahendrakar's avatar Harish Mahendrakar
Browse files

MediaCodecSource: Support zero length CSD from encoders

Bug: 192791004
Test: recordvideo -2
Change-Id: Idda8dfbef7495ac27e1b701aafc384108f302169
parent 250abea4
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -943,10 +943,17 @@ void MediaCodecSource::onMessageReceived(const sp<AMessage> &msg) {

            sp<MediaCodecBuffer> outbuf;
            status_t err = mEncoder->getOutputBuffer(index, &outbuf);
            if (err != OK || outbuf == NULL || outbuf->data() == NULL
                || outbuf->size() == 0) {
            if (err != OK || outbuf == NULL || outbuf->data() == NULL) {
                signalEOS();
                break;
            } else if (outbuf->size() == 0) {
                // Zero length CSD buffers are not treated as an error
                if (flags & MediaCodec::BUFFER_FLAG_CODECCONFIG) {
                    mEncoder->releaseOutputBuffer(index);
                } else {
                    signalEOS();
                }
                break;
            }

            MediaBufferBase *mbuf = new MediaBuffer(outbuf->size());