From c31e5da734b4bd386e675926037d938b82671922 Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 3 Mar 2015 12:28:46 +0100 Subject: Remove some FFmpeg/Libav compatibility hacks All of these are now in the supported FFmpeg and Libav versions. The 3 remaining API checks are for FFmpeg-only things. --- demux/codec_tags.c | 3 +-- demux/demux_lavf.c | 35 ++--------------------------------- old-configure | 42 ------------------------------------------ video/csputils.c | 8 -------- video/decode/vdpau.c | 4 ---- video/image_writer.c | 2 -- video/mp_image.c | 5 ----- wscript | 43 ------------------------------------------- 8 files changed, 3 insertions(+), 139 deletions(-) diff --git a/demux/codec_tags.c b/demux/codec_tags.c index fd95f83363..fd67933fbc 100644 --- a/demux/codec_tags.c +++ b/demux/codec_tags.c @@ -60,8 +60,7 @@ static const struct mp_codec_tag mp_codec_tags[] = { {0} }; -#define HAVE_QT_TAGS (LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(55, 25, 100) && \ - LIBAVFORMAT_VERSION_MICRO >= 100) +#define HAVE_QT_TAGS (LIBAVFORMAT_VERSION_MICRO >= 100) static const char *lookup_tag(int type, uint32_t tag) { diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c index bb0cdbb9de..90f49f40f9 100644 --- a/demux/demux_lavf.c +++ b/demux/demux_lavf.c @@ -32,12 +32,8 @@ #include #include #include -#if HAVE_AVCODEC_REPLAYGAIN_SIDE_DATA -# include -#endif -#if HAVE_AV_DISPLAYMATRIX -# include -#endif +#include +#include #include #include "options/options.h" @@ -427,7 +423,6 @@ static void select_tracks(struct demuxer *demuxer, int start) static void export_replaygain(demuxer_t *demuxer, sh_audio_t *sh, AVStream *st) { -#if HAVE_AVCODEC_REPLAYGAIN_SIDE_DATA for (int i = 0; i < st->nb_side_data; i++) { AVReplayGain *av_rgain; struct replaygain_data *rgain; @@ -453,7 +448,6 @@ static void export_replaygain(demuxer_t *demuxer, sh_audio_t *sh, AVStream *st) sh->replaygain_data = rgain; } -#endif } // Return a dictionary entry as (decimal) integer. @@ -544,15 +538,9 @@ static void handle_stream(demuxer_t *demuxer, int i) if (sh_video->bitrate == 0) sh_video->bitrate = avfc->bit_rate; -#if HAVE_AV_DISPLAYMATRIX uint8_t *sd = av_stream_get_side_data(st, AV_PKT_DATA_DISPLAYMATRIX, NULL); if (sd) sh_video->rotate = -av_display_rotation_get((uint32_t *)sd); -#else - int rot = dict_get_decimal(st->metadata, "rotate", -1); - if (rot >= 0) - sh_video->rotate = rot; -#endif sh_video->rotate = ((sh_video->rotate % 360) + 360) % 360; // This also applies to vfw-muxed mkv, but we can't detect these easily. @@ -648,7 +636,6 @@ static void add_new_streams(demuxer_t *demuxer) static void update_metadata(demuxer_t *demuxer, AVPacket *pkt) { -#if HAVE_AVFORMAT_METADATA_UPDATE_FLAG lavf_priv_t *priv = demuxer->priv; if (priv->avfc->event_flags & AVFMT_EVENT_FLAG_METADATA_UPDATED) { mp_tags_copy_from_av_dictionary(demuxer->metadata, priv->avfc->metadata); @@ -665,24 +652,6 @@ static void update_metadata(demuxer_t *demuxer, AVPacket *pkt) } } } -#elif HAVE_AVCODEC_METADATA_UPDATE_SIDE_DATA - lavf_priv_t *priv = demuxer->priv; - int md_size; - const uint8_t *md; - if (!pkt) - return; - md = av_packet_get_side_data(pkt, AV_PKT_DATA_METADATA_UPDATE, &md_size); - if (md && priv->merge_track_metadata) { - AVDictionary *dict = NULL; - av_packet_unpack_dictionary(md, md_size, &dict); - if (dict) { - mp_tags_clear(demuxer->metadata); - mp_tags_copy_from_av_dictionary(demuxer->metadata, dict); - av_dict_free(&dict); - demux_changed(demuxer, DEMUX_EVENT_METADATA); - } - } -#endif } static int interrupt_cb(void *ctx) diff --git a/old-configure b/old-configure index f8f67110ac..9c41574c4d 100755 --- a/old-configure +++ b/old-configure @@ -777,60 +777,18 @@ api_statement_check \ libavcodec/avcodec.h \ 'int x, y; avcodec_enum_to_chroma_pos(&x, &y, AVCHROMA_LOC_UNSPECIFIED)' -api_statement_check \ - "libavcodec avcol_spc_bt2020 available" \ - HAVE_AVCOL_SPC_BT2020 \ - libavcodec/avcodec.h \ - 'int x = AVCOL_SPC_BT2020_NCL' - -api_statement_check \ - "libavcodec metadata update side data" \ - HAVE_AVCODEC_METADATA_UPDATE_SIDE_DATA \ - libavcodec/avcodec.h \ - 'enum AVPacketSideDataType type = AV_PKT_DATA_METADATA_UPDATE' - -api_statement_check \ - "libavformat metadata update flags" \ - HAVE_AVFORMAT_METADATA_UPDATE_FLAG \ - libavformat/avformat.h \ - 'int x = AVFMT_EVENT_FLAG_METADATA_UPDATED' - -api_statement_check \ - "libavcodec replaygain side data" \ - HAVE_AVCODEC_REPLAYGAIN_SIDE_DATA \ - libavcodec/avcodec.h \ - 'enum AVPacketSideDataType type = AV_PKT_DATA_REPLAYGAIN' - -api_statement_check \ - "libavutil/libavcodec display matrix side data" \ - HAVE_AV_DISPLAYMATRIX \ - libavutil/frame.h \ - 'enum AVFrameSideDataType type = AV_FRAME_DATA_DISPLAYMATRIX' - api_statement_check \ "libavutil AVFrame metadata" \ HAVE_AVFRAME_METADATA \ libavutil/frame.h \ 'av_frame_get_metadata(NULL)' -api_statement_check \ - "libavutil AVFrame colorspace information" \ - HAVE_AVFRAME_CSP \ - libavutil/frame.h \ - 'AVFrame frame; frame.color_primaries = frame.color_trc = 0;' - api_statement_check \ "libavutil AVFrame skip samples metadata" \ HAVE_AVFRAME_SKIP_SAMPLES \ libavutil/frame.h \ 'enum AVFrameSideDataType type = AV_FRAME_DATA_SKIP_SAMPLES' -api_statement_check \ - "libavcodec av_vdpau_alloc_context()" \ - HAVE_AVCODEC_VDPAU_ALLOC_CONTEXT \ - libavcodec/vdpau.h \ - 'AVVDPAUContext *x = av_vdpau_alloc_context()' - check_pkg_config "libavfilter" $_libavfilter LIBAVFILTER 'libavfilter >= 5.0.0' check_pkg_config "libavdevice" $_libavdevice LIBAVDEVICE 'libavdevice >= 55.0.0' diff --git a/video/csputils.c b/video/csputils.c index cbd9734819..cee33dbba9 100644 --- a/video/csputils.c +++ b/video/csputils.c @@ -113,10 +113,8 @@ enum mp_csp avcol_spc_to_mp_csp(int avcolorspace) switch (avcolorspace) { case AVCOL_SPC_BT709: return MP_CSP_BT_709; case AVCOL_SPC_BT470BG: return MP_CSP_BT_601; -#if HAVE_AVCOL_SPC_BT2020 case AVCOL_SPC_BT2020_NCL: return MP_CSP_BT_2020_NC; case AVCOL_SPC_BT2020_CL: return MP_CSP_BT_2020_C; -#endif case AVCOL_SPC_SMPTE170M: return MP_CSP_BT_601; case AVCOL_SPC_SMPTE240M: return MP_CSP_SMPTE_240M; case AVCOL_SPC_RGB: return MP_CSP_RGB; @@ -141,9 +139,7 @@ enum mp_csp_prim avcol_pri_to_mp_csp_prim(int avpri) case AVCOL_PRI_SMPTE170M: return MP_CSP_PRIM_BT_601_525; case AVCOL_PRI_BT470BG: return MP_CSP_PRIM_BT_601_625; case AVCOL_PRI_BT709: return MP_CSP_PRIM_BT_709; -#if HAVE_AVCOL_SPC_BT2020 case AVCOL_PRI_BT2020: return MP_CSP_PRIM_BT_2020; -#endif case AVCOL_PRI_BT470M: return MP_CSP_PRIM_BT_470M; default: return MP_CSP_PRIM_AUTO; } @@ -169,10 +165,8 @@ int mp_csp_to_avcol_spc(enum mp_csp colorspace) switch (colorspace) { case MP_CSP_BT_709: return AVCOL_SPC_BT709; case MP_CSP_BT_601: return AVCOL_SPC_BT470BG; -#if HAVE_AVCOL_SPC_BT2020 case MP_CSP_BT_2020_NC: return AVCOL_SPC_BT2020_NCL; case MP_CSP_BT_2020_C: return AVCOL_SPC_BT2020_CL; -#endif case MP_CSP_SMPTE_240M: return AVCOL_SPC_SMPTE240M; case MP_CSP_RGB: return AVCOL_SPC_RGB; case MP_CSP_YCGCO: return AVCOL_SPC_YCOCG; @@ -195,9 +189,7 @@ int mp_csp_prim_to_avcol_pri(enum mp_csp_prim prim) case MP_CSP_PRIM_BT_601_525: return AVCOL_PRI_SMPTE170M; case MP_CSP_PRIM_BT_601_625: return AVCOL_PRI_BT470BG; case MP_CSP_PRIM_BT_709: return AVCOL_PRI_BT709; -#if HAVE_AVCOL_SPC_BT2020 case MP_CSP_PRIM_BT_2020: return AVCOL_PRI_BT2020; -#endif case MP_CSP_PRIM_BT_470M: return AVCOL_PRI_BT470M; default: return AVCOL_PRI_UNSPECIFIED; } diff --git a/video/decode/vdpau.c b/video/decode/vdpau.c index 92ea401750..43be1f47c1 100644 --- a/video/decode/vdpau.c +++ b/video/decode/vdpau.c @@ -157,11 +157,7 @@ static int init(struct lavc_ctx *ctx) }; ctx->hwdec_priv = p; -#if HAVE_AVCODEC_VDPAU_ALLOC_CONTEXT p->context = av_vdpau_alloc_context(); -#else - p->context = av_mallocz(sizeof(AVVDPAUContext)); -#endif if (!p->context) goto error; diff --git a/video/image_writer.c b/video/image_writer.c index 700e1c4284..ab00b5bb01 100644 --- a/video/image_writer.c +++ b/video/image_writer.c @@ -133,12 +133,10 @@ static int write_lavc(struct image_writer_ctx *ctx, mp_image_t *image, FILE *fp) pic->format = avctx->pix_fmt; pic->width = avctx->width; pic->height = avctx->height; -#if HAVE_AVFRAME_CSP if (ctx->opts->tag_csp) { pic->color_primaries = mp_csp_prim_to_avcol_pri(image->params.primaries); pic->color_trc = mp_csp_trc_to_avcol_trc(image->params.gamma); } -#endif int ret = avcodec_encode_video2(avctx, &pkt, pic, &got_output); if (ret < 0) goto error_exit; diff --git a/video/mp_image.c b/video/mp_image.c index fcf265f699..c82fe0e21c 100644 --- a/video/mp_image.c +++ b/video/mp_image.c @@ -645,9 +645,6 @@ void mp_image_copy_fields_from_av_frame(struct mp_image *dst, } -// Not strictly related, but was added in a similar timeframe. -#define HAVE_AVFRAME_COLORSPACE HAVE_AVCODEC_CHROMA_POS_API - // Copy properties and data of the mp_image into the AVFrame, without taking // care of memory management issues. void mp_image_copy_fields_to_av_frame(struct AVFrame *dst, @@ -671,10 +668,8 @@ void mp_image_copy_fields_to_av_frame(struct AVFrame *dst, if (src->fields & MP_IMGFIELD_REPEAT_FIRST) dst->repeat_pict = 1; -#if HAVE_AVFRAME_COLORSPACE dst->colorspace = mp_csp_to_avcol_spc(src->params.colorspace); dst->color_range = mp_csp_levels_to_avcol_range(src->params.colorlevels); -#endif } static void frame_free(void *p) diff --git a/wscript b/wscript index c8a9fcafc9..0ec9888790 100644 --- a/wscript +++ b/wscript @@ -416,42 +416,6 @@ FFmpeg/Libav libraries. You need at least {0}. Aborting.".format(libav_versions_ avcodec_enum_to_chroma_pos(&x, &y, AVCHROMA_LOC_UNSPECIFIED)""", use='libav') }, { - 'name': 'avcol-spc-bt2020', - 'desc': 'libavcodec avcol_spc_bt2020 available', - 'func': check_statement('libavcodec/avcodec.h', - 'int x = AVCOL_SPC_BT2020_NCL', - use='libav') - }, { - 'name': 'avcodec-vdpau-alloc-context', - 'desc': 'libavcodec vdpau non-sense', - 'func': check_statement('libavcodec/vdpau.h', - 'AVVDPAUContext *x = av_vdpau_alloc_context()', - use='libav') - }, { - 'name': 'avcodec-metadata-update-side-data', - 'desc': 'libavcodec AV_PKT_DATA_METADATA_UPDATE side data type', - 'func': check_statement('libavcodec/avcodec.h', - 'enum AVPacketSideDataType type = AV_PKT_DATA_METADATA_UPDATE', - use='libav') - }, { - 'name': 'avformat-metadata-update-flag', - 'desc': "libavformat metadata update flags", - 'func': check_statement('libavformat/avformat.h', - 'int x = AVFMT_EVENT_FLAG_METADATA_UPDATED', - use='libav') - }, { - 'name': 'avcodec-replaygain-side-data', - 'desc': 'libavcodec AV_PKT_DATA_REPLAYGAIN side data type', - 'func': check_statement('libavcodec/avcodec.h', - 'enum AVPacketSideDataType type = AV_PKT_DATA_REPLAYGAIN', - use='libav') - }, { - 'name': 'av-displaymatrix', - 'desc': 'libavutil/libavcodec display matrix side data', - 'func': check_statement('libavutil/frame.h', - 'enum AVFrameSideDataType type = AV_FRAME_DATA_DISPLAYMATRIX', - use='libav') - },{ 'name': 'avframe-metadata', 'desc': 'libavutil AVFrame metadata', 'func': check_statement('libavutil/frame.h', @@ -463,13 +427,6 @@ FFmpeg/Libav libraries. You need at least {0}. Aborting.".format(libav_versions_ 'func': check_statement('libavutil/frame.h', 'enum AVFrameSideDataType type = AV_FRAME_DATA_SKIP_SAMPLES', use='libav') - }, { - 'name': 'avframe-csp', - 'desc': 'libavutil AVFrame colorspace information', - 'func': check_statement('libavutil/frame.h', - 'AVFrame frame;' - 'frame.color_primaries = frame.color_trc = 0;', - use='libav') } ] -- cgit v1.2.3