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

Reply via email to