summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-03-03 12:28:46 +0100
committerwm4 <wm4@nowhere>2015-03-03 12:28:46 +0100
commitc31e5da734b4bd386e675926037d938b82671922 (patch)
treefd9c70715b32dd9b67364e1fe285b0eb78430e24
parent5808f1c408be958e90a302f42610fc59dfa0c373 (diff)
downloadmpv-c31e5da734b4bd386e675926037d938b82671922.tar.bz2
mpv-c31e5da734b4bd386e675926037d938b82671922.tar.xz
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.
-rw-r--r--demux/codec_tags.c3
-rw-r--r--demux/demux_lavf.c35
-rwxr-xr-xold-configure42
-rw-r--r--video/csputils.c8
-rw-r--r--video/decode/vdpau.c4
-rw-r--r--video/image_writer.c2
-rw-r--r--video/mp_image.c5
-rw-r--r--wscript43
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 <libavutil/avutil.h>
#include <libavutil/avstring.h>
#include <libavutil/mathematics.h>
-#if HAVE_AVCODEC_REPLAYGAIN_SIDE_DATA
-# include <libavutil/replaygain.h>
-#endif
-#if HAVE_AV_DISPLAYMATRIX
-# include <libavutil/display.h>
-#endif
+#include <libavutil/replaygain.h>
+#include <libavutil/display.h>
#include <libavutil/opt.h>
#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
@@ -778,59 +778,17 @@ api_statement_check \
'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')
}
]