[FFmpeg-cvslog] vda: remove async decoder leftovers

Luca Barbato git at videolan.org
Wed Mar 13 13:58:06 CET 2013


ffmpeg | branch: master | Luca Barbato <lu_zero at gentoo.org> | Sat Mar  9 16:23:54 2013 +0100| [202c2acc40a6de8758b44ab3f5c85ab250079734] | committer: Luca Barbato

vda: remove async decoder leftovers

Signed-off-by: Luca Barbato <lu_zero at gentoo.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=202c2acc40a6de8758b44ab3f5c85ab250079734
---

 libavcodec/vda_h264.c |   47 +++--------------------------------------------
 1 file changed, 3 insertions(+), 44 deletions(-)

diff --git a/libavcodec/vda_h264.c b/libavcodec/vda_h264.c
index 9317a19..6c1845a 100644
--- a/libavcodec/vda_h264.c
+++ b/libavcodec/vda_h264.c
@@ -43,42 +43,7 @@ static void vda_decoder_callback(void *vda_hw_ctx,
     if (vda_ctx->cv_pix_fmt_type != CVPixelBufferGetPixelFormatType(image_buffer))
         return;
 
-    if (vda_ctx->use_sync_decoding) {
-        vda_ctx->cv_buffer = CVPixelBufferRetain(image_buffer);
-    } else {
-        vda_frame *new_frame;
-        vda_frame *queue_walker;
-
-        if (!(new_frame = av_mallocz(sizeof(*new_frame))))
-            return;
-        new_frame->next_frame = NULL;
-        new_frame->cv_buffer  = CVPixelBufferRetain(image_buffer);
-        new_frame->pts        = vda_pts_from_dictionary(user_info);
-
-        pthread_mutex_lock(&vda_ctx->queue_mutex);
-
-        queue_walker = vda_ctx->queue;
-
-        if (!queue_walker || new_frame->pts < queue_walker->pts) {
-            /* we have an empty queue, or this frame earlier than the current queue head */
-            new_frame->next_frame = queue_walker;
-            vda_ctx->queue        = new_frame;
-        } else {
-            /* walk the queue and insert this frame where it belongs in display order */
-            vda_frame *next_frame;
-            while (1) {
-                next_frame = queue_walker->next_frame;
-                if (!next_frame || new_frame->pts < next_frame->pts) {
-                    new_frame->next_frame    = next_frame;
-                    queue_walker->next_frame = new_frame;
-                    break;
-                }
-                queue_walker = next_frame;
-            }
-        }
-
-        pthread_mutex_unlock(&vda_ctx->queue_mutex);
-    }
+    vda_ctx->cv_buffer = CVPixelBufferRetain(image_buffer);
 }
 
 static int vda_sync_decode(struct vda_context *vda_ctx)
@@ -152,14 +117,8 @@ static int vda_h264_end_frame(AVCodecContext *avctx)
     if (!vda_ctx->decoder || !vda_ctx->priv_bitstream)
         return -1;
 
-    if (vda_ctx->use_sync_decoding) {
-        status = vda_sync_decode(vda_ctx);
-        frame->data[3] = (void*)vda_ctx->cv_buffer;
-    } else {
-        status = vda_decoder_decode(vda_ctx, vda_ctx->priv_bitstream,
-                                    vda_ctx->priv_bitstream_size,
-                                    frame->reordered_opaque);
-    }
+    status = vda_sync_decode(vda_ctx);
+    frame->data[3] = (void*)vda_ctx->cv_buffer;
 
     if (status)
         av_log(avctx, AV_LOG_ERROR, "Failed to decode frame (%d)\n", status);



More information about the ffmpeg-cvslog mailing list