[FFmpeg-devel] [PATCH] avcodec/mediacodecdec_common: stop the codec before releasing it

Matthieu Bouron matthieu.bouron at gmail.com
Wed Mar 30 23:42:39 EEST 2022


Fixes the following warnings/errors on codec release:

E/BufferQueueProducer: [SurfaceTexture-0-31763-0](id:7c1300000001,api:3,p:31763,c:31763) detachBuffer: slot 0 is not owned by the producer (state = FREE)
E/BufferQueueProducer: [SurfaceTexture-0-31763-0](id:7c1300000001,api:3,p:31763,c:31763) detachBuffer: slot 1 is not owned by the producer (state = FREE)
E/BufferQueueProducer: [SurfaceTexture-0-31763-0](id:7c1300000001,api:3,p:31763,c:31763) detachBuffer: slot 2 is not owned by the producer (state = FREE)
[...]
---
 libavcodec/mediacodecdec_common.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libavcodec/mediacodecdec_common.c b/libavcodec/mediacodecdec_common.c
index cb18aed401..d99881c11f 100644
--- a/libavcodec/mediacodecdec_common.c
+++ b/libavcodec/mediacodecdec_common.c
@@ -232,6 +232,7 @@ static void ff_mediacodec_dec_unref(MediaCodecDecContext *s)
 
     if (atomic_fetch_sub(&s->refcount, 1) == 1) {
         if (s->codec) {
+            ff_AMediaCodec_stop(s->codec);
             ff_AMediaCodec_delete(s->codec);
             s->codec = NULL;
         }
-- 
2.35.1



More information about the ffmpeg-devel mailing list