Some toolchains failed to link a dynamic library containing wavdec.c, but with either CONFIG_SPDIF_DEMUXER or CONFIG_W64_DEMUXER disabled. This change adds #if's to explicitly exclude code rather than depend on toolchain code elision of same condition using "if". Reference https://crbug.com/591845. Adapted from 2 Chromium ffmpeg patches for code style: b281073a7b1ccff67b2cd8ec636facceeeb82327 5d76f94a515900260f185d5949f72ed6fa4bdd94
From 77add30b68373c2862520513cb7992b03352b9af Mon Sep 17 00:00:00 2001 From: Matt Wolenetz <wolen...@google.com> Date: Wed, 14 Dec 2016 15:01:37 -0800 Subject: [PATCH] lavf/wavdec.c: Fix unresolved symbols on Mac and VS2015 Update 3
Some toolchains failed to link a dynamic library containing wavdec.c, but with either CONFIG_SPDIF_DEMUXER or CONFIG_W64_DEMUXER disabled. This change adds #if's to explicitly exclude code rather than depend on toolchain code elision of same condition using "if". Reference https://crbug.com/591845. Adapted from 2 Chromium ffmpeg patches for code style: b281073a7b1ccff67b2cd8ec636facceeeb82327 5d76f94a515900260f185d5949f72ed6fa4bdd94 --- libavformat/wavdec.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c index 7176cd6..bb250ac 100644 --- a/libavformat/wavdec.c +++ b/libavformat/wavdec.c @@ -62,7 +62,8 @@ typedef struct WAVDemuxContext { static void set_spdif(AVFormatContext *s, WAVDemuxContext *wav) { - if (CONFIG_SPDIF_DEMUXER && s->streams[0]->codecpar->codec_tag == 1) { +#if CONFIG_SPDIF_DEMUXER + if (s->streams[0]->codecpar->codec_tag == 1) { enum AVCodecID codec; uint8_t *buf = NULL; int len = 1<<16; @@ -93,6 +94,7 @@ end: av_log(s, AV_LOG_WARNING, "Cannot check for SPDIF\n"); av_free(buf); } +#endif /* CONFIG_SPDIF_DEMUXER */ } #if CONFIG_WAV_DEMUXER @@ -598,8 +600,10 @@ static int wav_read_packet(AVFormatContext *s, AVPacket *pkt) AVStream *st; WAVDemuxContext *wav = s->priv_data; - if (CONFIG_SPDIF_DEMUXER && wav->spdif == 1) +#if CONFIG_SPDIF_DEMUXER + if (wav->spdif == 1) return ff_spdif_read_packet(s, pkt); +#endif /* CONFIG_SPDIF_DEMUXER */ if (wav->smv_data_ofs > 0) { int64_t audio_dts, video_dts; @@ -654,10 +658,14 @@ smv_out: if (wav->ignore_length) left = INT_MAX; if (left <= 0) { - if (CONFIG_W64_DEMUXER && wav->w64) +#if CONFIG_W64_DEMUXER + if (wav->w64) left = find_guid(s->pb, ff_w64_guid_data) - 24; else left = find_tag(wav, s->pb, MKTAG('d', 'a', 't', 'a')); +#else + left = find_tag(wav, s->pb, MKTAG('d', 'a', 't', 'a')); +#endif /* CONFIG_W64_DEMUXER */ if (left < 0) { wav->audio_eof = 1; if (wav->smv_data_ofs > 0 && !wav->smv_eof) -- 2.8.0.rc3.226.g39d4020
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel