X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fmediacodec.c;h=3ddd303c975f3300e4caa50c6a704080d3a1af72;hb=ea6973a5733ce1a6b6359357fd5c1722c2774dce;hp=d492eefe0b5ce523407146389f7f4ee052310e78;hpb=ccef7a85d6491fb354a36970162fa0204217d8e7;p=ffmpeg diff --git a/libavcodec/mediacodec.c b/libavcodec/mediacodec.c index d492eefe0b5..3ddd303c975 100644 --- a/libavcodec/mediacodec.c +++ b/libavcodec/mediacodec.c @@ -91,7 +91,10 @@ int av_mediacodec_release_buffer(AVMediaCodecBuffer *buffer, int render) MediaCodecDecContext *ctx = buffer->ctx; int released = atomic_fetch_add(&buffer->released, 1); - if (!released) { + if (!released && (ctx->delay_flush || buffer->serial == atomic_load(&ctx->serial))) { + av_log(ctx->avctx, AV_LOG_TRACE, + "Releasing output buffer %zd ts=%"PRId64" render=%d\n", + buffer->index, buffer->pts, render); return ff_AMediaCodec_releaseOutputBuffer(ctx->codec, buffer->index, render); }