From 17c276df2106c10dd5703f7b624e74a8e57eaae1 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Sun, 23 Sep 2018 15:58:28 -0400 Subject: [PATCH] add-ons/media/ffmpeg: Remove global initializer system. All of the functions it calls are deprecated and no longer needed, as FFmpeg loads all codecs automatically now, and uses pthreads internally for locking as needed. --- .../media/plugins/ffmpeg/FFmpegPlugin.cpp | 60 ------------------- .../media/plugins/ffmpeg/FFmpegPlugin.h | 9 --- 2 files changed, 69 deletions(-) diff --git a/src/add-ons/media/plugins/ffmpeg/FFmpegPlugin.cpp b/src/add-ons/media/plugins/ffmpeg/FFmpegPlugin.cpp index b1545ef18b..8e84c68b63 100644 --- a/src/add-ons/media/plugins/ffmpeg/FFmpegPlugin.cpp +++ b/src/add-ons/media/plugins/ffmpeg/FFmpegPlugin.cpp @@ -16,8 +16,6 @@ #include -#include - extern "C" { #include "avcodec.h" #include "avformat.h" @@ -42,64 +40,6 @@ extern "C" { #define ERROR(a...) fprintf(stderr, a) -static int -manage_locks(void** _lock, enum AVLockOp operation) -{ - TRACE("manage_locks(%p, %d)\n", *_lock, operation); - - BLocker** lock = reinterpret_cast(_lock); - - switch (operation) { - case AV_LOCK_CREATE: - TRACE(" AV_LOCK_CREATE\n"); - *lock = new(std::nothrow) BLocker("FFmpeg lock"); - if (*lock == NULL) - return 1; - break; - - case AV_LOCK_OBTAIN: - TRACE(" AV_LOCK_OBTAIN\n"); - if (!(*lock)->Lock()) - return 1; - break; - - case AV_LOCK_RELEASE: - TRACE(" AV_LOCK_RELEASE\n"); - (*lock)->Unlock(); - break; - - case AV_LOCK_DESTROY: - TRACE(" AV_LOCK_DESTROY\n"); - delete *lock; - break; - - default: - return 1; - } - return 0; -} - - -FFmpegPlugin::GlobalInitilizer::GlobalInitilizer() -{ - if (av_lockmgr_register(manage_locks) != 0) - ERROR("Failed to register lock management!\n"); - - av_register_all(); - // This will also call av_codec_init() by registering codecs. - avfilter_register_all(); -} - - -FFmpegPlugin::GlobalInitilizer::~GlobalInitilizer() -{ - av_lockmgr_register(NULL); -} - - -FFmpegPlugin::GlobalInitilizer FFmpegPlugin::sInitilizer; - - // #pragma mark - diff --git a/src/add-ons/media/plugins/ffmpeg/FFmpegPlugin.h b/src/add-ons/media/plugins/ffmpeg/FFmpegPlugin.h index 3013472319..66c0935750 100644 --- a/src/add-ons/media/plugins/ffmpeg/FFmpegPlugin.h +++ b/src/add-ons/media/plugins/ffmpeg/FFmpegPlugin.h @@ -42,15 +42,6 @@ public: media_format_family* formatFamily, media_format* inputFormat, media_format* outputFormat); - -private: - class GlobalInitilizer { - public: - GlobalInitilizer(); - ~GlobalInitilizer(); - }; - - static GlobalInitilizer sInitilizer; };