From adfa53d67c7a3318157ea9d95e8bdcfb77139452 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 23 Feb 2013 08:20:12 +0100 Subject: [PATCH] lavc: remove disabled FF_API_VDA_ASYNC cruft --- 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 f0ec2bfec3..987b94f1fa 100644 --- a/libavcodec/vda.h +++ b/libavcodec/vda.h @@ -31,10 +31,6 @@ #include "libavcodec/version.h" -#if FF_API_VDA_ASYNC -#include -#endif - #include // 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 24f411203c..9317a19904 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 - -/* 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 1c80545214..20d30efaa3 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