[FFmpeg-cvslog] lavc: remove disabled FF_API_VDA_ASYNC cruft

Anton Khirnov git at videolan.org
Wed Mar 13 01:21:46 CET 2013


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sat Feb 23 08:20:12 2013 +0100| [adfa53d67c7a3318157ea9d95e8bdcfb77139452] | committer: Anton Khirnov

lavc: remove disabled FF_API_VDA_ASYNC cruft

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

 libavcodec/vda.h      |   75 -----------------------------------
 libavcodec/vda_h264.c |  104 -------------------------------------------------
 libavcodec/version.h  |    3 --
 3 files changed, 182 deletions(-)

diff --git a/libavcodec/vda.h b/libavcodec/vda.h
index f0ec2bf..987b94f 100644
--- a/libavcodec/vda.h
+++ b/libavcodec/vda.h
@@ -31,10 +31,6 @@
 
 #include "libavcodec/version.h"
 
-#if FF_API_VDA_ASYNC
-#include <pthread.h>
-#endif
-
 #include <stdint.h>
 
 // emmintrin.h is unable to compile with -std=c99 -Werror=missing-prototypes
@@ -52,39 +48,6 @@
  * @{
  */
 
-#if FF_API_VDA_ASYNC
-/**
- * This structure is used to store decoded frame information and data.
- *
- * @deprecated Use synchronous decoding mode.
- */
-typedef struct vda_frame {
-    /**
-     * The PTS of the frame.
-     *
-     * - encoding: unused
-     * - decoding: Set/Unset by libavcodec.
-     */
-    int64_t             pts;
-
-    /**
-     * The CoreVideo buffer that contains the decoded data.
-     *
-     * - encoding: unused
-     * - decoding: Set/Unset by libavcodec.
-     */
-    CVPixelBufferRef    cv_buffer;
-
-    /**
-     * A pointer to the next frame.
-     *
-     * - encoding: unused
-     * - decoding: Set/Unset by libavcodec.
-     */
-    struct vda_frame    *next_frame;
-} vda_frame;
-#endif
-
 /**
  * This structure is used to provide the necessary configurations and data
  * to the VDA Libav HWAccel implementation.
@@ -116,28 +79,6 @@ struct vda_context {
      */
     int                 use_sync_decoding;
 
-#if FF_API_VDA_ASYNC
-    /**
-     * VDA frames queue ordered by presentation timestamp.
-     *
-     * @deprecated Use synchronous decoding mode.
-     *
-     * - encoding: unused
-     * - decoding: Set/Unset by libavcodec.
-     */
-    vda_frame           *queue;
-
-    /**
-     * Mutex for locking queue operations.
-     *
-     * @deprecated Use synchronous decoding mode.
-     *
-     * - encoding: unused
-     * - decoding: Set/Unset by libavcodec.
-     */
-    pthread_mutex_t     queue_mutex;
-#endif
-
     /**
      * The frame width.
      *
@@ -194,22 +135,6 @@ int ff_vda_create_decoder(struct vda_context *vda_ctx,
 /** Destroy the video decoder. */
 int ff_vda_destroy_decoder(struct vda_context *vda_ctx);
 
-#if FF_API_VDA_ASYNC
-/**
- * Return the top frame of the queue.
- *
- * @deprecated Use synchronous decoding mode.
- */
-vda_frame *ff_vda_queue_pop(struct vda_context *vda_ctx);
-
-/**
- * Release the given frame.
- *
- * @deprecated Use synchronous decoding mode.
- */
-void ff_vda_release_vda_frame(vda_frame *frame);
-#endif
-
 /**
  * @}
  */
diff --git a/libavcodec/vda_h264.c b/libavcodec/vda_h264.c
index 24f4112..9317a19 100644
--- a/libavcodec/vda_h264.c
+++ b/libavcodec/vda_h264.c
@@ -28,101 +28,6 @@
 #include "h264.h"
 #include "vda.h"
 
-#if FF_API_VDA_ASYNC
-#include <CoreFoundation/CFDictionary.h>
-
-/* helper to create a dictionary according to the given pts */
-static CFDictionaryRef vda_dictionary_with_pts(int64_t i_pts)
-{
-    CFStringRef key           = CFSTR("FF_VDA_DECODER_PTS_KEY");
-    CFNumberRef value         = CFNumberCreate(kCFAllocatorDefault,
-                                               kCFNumberSInt64Type, &i_pts);
-    CFDictionaryRef user_info = CFDictionaryCreate(kCFAllocatorDefault,
-                                                   (const void **)&key,
-                                                   (const void **)&value,
-                                                   1,
-                                                   &kCFTypeDictionaryKeyCallBacks,
-                                                   &kCFTypeDictionaryValueCallBacks);
-    CFRelease(value);
-    return user_info;
-}
-
-/* helper to retrieve the pts from the given dictionary */
-static int64_t vda_pts_from_dictionary(CFDictionaryRef user_info)
-{
-    CFNumberRef pts;
-    int64_t outValue = 0;
-
-    if (!user_info)
-        return 0;
-
-    pts = CFDictionaryGetValue(user_info, CFSTR("FF_VDA_DECODER_PTS_KEY"));
-
-    if (pts)
-        CFNumberGetValue(pts, kCFNumberSInt64Type, &outValue);
-
-    return outValue;
-}
-
-/* Remove and release all frames from the queue. */
-static void vda_clear_queue(struct vda_context *vda_ctx)
-{
-    vda_frame *top_frame;
-
-    pthread_mutex_lock(&vda_ctx->queue_mutex);
-
-    while (vda_ctx->queue) {
-        top_frame      = vda_ctx->queue;
-        vda_ctx->queue = top_frame->next_frame;
-        ff_vda_release_vda_frame(top_frame);
-    }
-
-    pthread_mutex_unlock(&vda_ctx->queue_mutex);
-}
-
-static int vda_decoder_decode(struct vda_context *vda_ctx,
-                              uint8_t *bitstream,
-                              int bitstream_size,
-                              int64_t frame_pts)
-{
-    OSStatus status = kVDADecoderNoErr;
-    CFDictionaryRef user_info;
-    CFDataRef coded_frame;
-
-    coded_frame = CFDataCreate(kCFAllocatorDefault, bitstream, bitstream_size);
-    user_info   = vda_dictionary_with_pts(frame_pts);
-    status      = VDADecoderDecode(vda_ctx->decoder, 0, coded_frame, user_info);
-
-    CFRelease(user_info);
-    CFRelease(coded_frame);
-
-    return status;
-}
-
-vda_frame *ff_vda_queue_pop(struct vda_context *vda_ctx)
-{
-    vda_frame *top_frame;
-
-    if (!vda_ctx->queue)
-        return NULL;
-
-    pthread_mutex_lock(&vda_ctx->queue_mutex);
-    top_frame      = vda_ctx->queue;
-    vda_ctx->queue = top_frame->next_frame;
-    pthread_mutex_unlock(&vda_ctx->queue_mutex);
-
-    return top_frame;
-}
-
-void ff_vda_release_vda_frame(vda_frame *frame)
-{
-    if (frame) {
-        CVPixelBufferRelease(frame->cv_buffer);
-        av_freep(&frame);
-    }
-}
-#endif
-
 /* Decoder callback that adds the VDA frame to the queue in display order. */
 static void vda_decoder_callback(void *vda_hw_ctx,
                                  CFDictionaryRef user_info,
@@ -276,10 +181,6 @@ int ff_vda_create_decoder(struct vda_context *vda_ctx,
     CFMutableDictionaryRef io_surface_properties;
     CFNumberRef cv_pix_fmt;
 
-#if FF_API_VDA_ASYNC
-    pthread_mutex_init(&vda_ctx->queue_mutex, NULL);
-#endif
-
     /* Each VCL NAL in the bistream sent to the decoder
      * is preceded by a 4 bytes length header.
      * Change the avcC atom header if needed, to signal headers of 4 bytes. */
@@ -357,11 +258,6 @@ int ff_vda_destroy_decoder(struct vda_context *vda_ctx)
     if (vda_ctx->decoder)
         status = VDADecoderDestroy(vda_ctx->decoder);
 
-#if FF_API_VDA_ASYNC
-    vda_clear_queue(vda_ctx);
-    pthread_mutex_destroy(&vda_ctx->queue_mutex);
-#endif
-
     av_freep(&vda_ctx->priv_bitstream);
 
     return status;
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 1c80545..20d30ef 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -49,9 +49,6 @@
 #ifndef FF_API_REQUEST_CHANNELS
 #define FF_API_REQUEST_CHANNELS (LIBAVCODEC_VERSION_MAJOR < 56)
 #endif
-#ifndef FF_API_VDA_ASYNC
-#define FF_API_VDA_ASYNC         (LIBAVCODEC_VERSION_MAJOR < 55)
-#endif
 #ifndef FF_API_AVCODEC_RESAMPLE
 #define FF_API_AVCODEC_RESAMPLE  (LIBAVCODEC_VERSION_MAJOR < 55)
 #endif



More information about the ffmpeg-cvslog mailing list