summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-01-24 08:11:42 +0100
committerwm4 <wm4@nowhere>2017-01-24 08:11:42 +0100
commitb14fac9afa79e44d8b0323c6ddbef1557cdd0d8d (patch)
tree676e8e9ef45690491d827b553ec8cc29f49e84f3
parent6be58df8d14922bc1f4252f9f69ca9c0d74c331a (diff)
downloadmpv-b14fac9afa79e44d8b0323c6ddbef1557cdd0d8d.tar.bz2
mpv-b14fac9afa79e44d8b0323c6ddbef1557cdd0d8d.tar.xz
build: replace some FFmpeg API checks with version checks
The FFmpeg versions we support all have the APIs we were checking for. Only Libav missed them. Simplify this by explicitly checking for FFmpeg in the code, instead of trying to detect the presence of the API.
-rw-r--r--audio/decode/ad_lavc.c4
-rw-r--r--audio/filter/af_lavfi.c2
-rw-r--r--demux/packet.c2
-rw-r--r--video/decode/vd_lavc.c4
-rw-r--r--video/filter/vf_lavfi.c2
-rw-r--r--video/sws_utils.c2
-rw-r--r--wscript24
7 files changed, 8 insertions, 32 deletions
diff --git a/audio/decode/ad_lavc.c b/audio/decode/ad_lavc.c
index 759f4879f0..820559a06b 100644
--- a/audio/decode/ad_lavc.c
+++ b/audio/decode/ad_lavc.c
@@ -115,7 +115,7 @@ static int init(struct dec_audio *da, const char *decoder)
av_opt_set_double(lavc_context, "drc_scale", opts->ac3drc,
AV_OPT_SEARCH_CHILDREN);
-#if HAVE_AVFRAME_SKIP_SAMPLES
+#if LIBAVCODEC_VERSION_MICRO >= 100
// Let decoder add AV_FRAME_DATA_SKIP_SAMPLES.
av_opt_set(lavc_context, "flags2", "+skip_manual", AV_OPT_SEARCH_CHILDREN);
#endif
@@ -251,7 +251,7 @@ static bool receive_frame(struct dec_audio *da, struct mp_audio **out)
if (mpframe->pts != MP_NOPTS_VALUE)
priv->next_pts = mpframe->pts + mpframe->samples / (double)mpframe->rate;
-#if HAVE_AVFRAME_SKIP_SAMPLES
+#if LIBAVCODEC_VERSION_MICRO >= 100
AVFrameSideData *sd =
av_frame_get_side_data(priv->avframe, AV_FRAME_DATA_SKIP_SAMPLES);
if (sd && sd->size >= 10) {
diff --git a/audio/filter/af_lavfi.c b/audio/filter/af_lavfi.c
index c072fdcb9a..55fb7cb0dc 100644
--- a/audio/filter/af_lavfi.c
+++ b/audio/filter/af_lavfi.c
@@ -246,7 +246,7 @@ static int control(struct af_instance *af, int cmd, void *arg)
static void get_metadata_from_av_frame(struct af_instance *af, AVFrame *frame)
{
-#if HAVE_AVFRAME_METADATA
+#if LIBAVUTIL_VERSION_MICRO >= 100
struct priv *p = af->priv;
if (!p->metadata)
p->metadata = talloc_zero(p, struct mp_tags);
diff --git a/demux/packet.c b/demux/packet.c
index 32fabc4f78..b33d5b618e 100644
--- a/demux/packet.c
+++ b/demux/packet.c
@@ -132,7 +132,7 @@ struct demux_packet *demux_copy_packet(struct demux_packet *dp)
int demux_packet_set_padding(struct demux_packet *dp, int start, int end)
{
-#if HAVE_AVFRAME_SKIP_SAMPLES
+#if LIBAVCODEC_VERSION_MICRO >= 100
if (!start && !end)
return 0;
if (!dp->avpacket)
diff --git a/video/decode/vd_lavc.c b/video/decode/vd_lavc.c
index 19a6336f19..c4cfbc30d3 100644
--- a/video/decode/vd_lavc.c
+++ b/video/decode/vd_lavc.c
@@ -48,7 +48,7 @@
#include "video/csputils.h"
#include "video/sws_utils.h"
-#if HAVE_AVUTIL_MASTERING_METADATA
+#if LIBAVCODEC_VERSION_MICRO >= 100
#include <libavutil/mastering_display_metadata.h>
#endif
@@ -624,7 +624,7 @@ static void update_image_params(struct dec_video *vd, AVFrame *frame,
{
vd_ffmpeg_ctx *ctx = vd->priv;
-#if HAVE_AVUTIL_MASTERING_METADATA
+#if LIBAVCODEC_VERSION_MICRO >= 100
// Get the reference peak (for HDR) if available. This is cached into ctx
// when it's found, since it's not available on every frame (and seems to
// be only available for keyframes)
diff --git a/video/filter/vf_lavfi.c b/video/filter/vf_lavfi.c
index 2f4bc92ecc..e28d7fbb6f 100644
--- a/video/filter/vf_lavfi.c
+++ b/video/filter/vf_lavfi.c
@@ -287,7 +287,7 @@ static struct mp_image *av_to_mp(struct vf_instance *vf, AVFrame *av_frame)
static void get_metadata_from_av_frame(struct vf_instance *vf, AVFrame *frame)
{
-#if HAVE_AVFRAME_METADATA
+#if LIBAVUTIL_VERSION_MICRO >= 100
struct vf_priv_s *p = vf->priv;
if (!p->metadata)
p->metadata = talloc_zero(p, struct mp_tags);
diff --git a/video/sws_utils.c b/video/sws_utils.c
index 45918b19d1..33eae6efa9 100644
--- a/video/sws_utils.c
+++ b/video/sws_utils.c
@@ -217,7 +217,7 @@ int mp_sws_reinit(struct mp_sws_context *ctx)
av_opt_set_double(ctx->sws, "param0", ctx->params[0], 0);
av_opt_set_double(ctx->sws, "param1", ctx->params[1], 0);
-#if HAVE_AVCODEC_CHROMA_POS_API
+#if LIBAVCODEC_VERSION_MICRO >= 100
int cr_src = mp_chroma_location_to_av(src->chroma_location);
int cr_dst = mp_chroma_location_to_av(dst->chroma_location);
int cr_xpos, cr_ypos;
diff --git a/wscript b/wscript
index f6a5081ffd..c501276406 100644
--- a/wscript
+++ b/wscript
@@ -452,30 +452,6 @@ FFmpeg/Libav libraries. You need at least {0}. Aborting.".format(libav_versions_
'desc': 'libavdevice',
'func': check_pkg_config('libavdevice', '>= 57.0.0'),
}, {
- 'name': 'avcodec-chroma-pos-api',
- 'desc': 'libavcodec avcodec_enum_to_chroma_pos API',
- 'func': check_statement('libavcodec/avcodec.h', """int x, y;
- avcodec_enum_to_chroma_pos(&x, &y, AVCHROMA_LOC_UNSPECIFIED)""",
- use='libav')
- }, {
- 'name': 'avframe-metadata',
- 'desc': 'libavutil AVFrame metadata',
- 'func': check_statement('libavutil/frame.h',
- 'av_frame_get_metadata(NULL)',
- use='libav')
- }, {
- 'name': 'avframe-skip-samples',
- 'desc': 'libavutil AVFrame skip samples metadata',
- 'func': check_statement('libavutil/frame.h',
- 'enum AVFrameSideDataType type = AV_FRAME_DATA_SKIP_SAMPLES',
- use='libav')
- }, {
- 'name': 'avutil-mastering-metadata',
- 'desc': 'libavutil mastering display metadata struct',
- 'func': check_statement('libavutil/frame.h',
- 'AV_FRAME_DATA_MASTERING_DISPLAY_METADATA',
- use='libav'),
- }, {
'name': 'avutil-imgcpy-uc',
'desc': 'libavutil GPU memcpy for hardware decoding',
'func': check_statement('libavutil/imgutils.h',