[FFmpeg-devel] [PATCH 1/5] avformat/wav: prevent muxing adpcm_swf with a variable block size

Zane van Iperen zane at zanevaniperen.com
Fri Oct 16 09:22:22 EEST 2020


Prefer to error than to create a broken file. Closes ticket #5829.

Effectively disables remuxing adpcm_swf from flv -> wav.

Signed-off-by: Zane van Iperen <zane at zanevaniperen.com>
---
 libavformat/wavenc.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/libavformat/wavenc.c b/libavformat/wavenc.c
index 1027f107ee..fe7afa03a0 100644
--- a/libavformat/wavenc.c
+++ b/libavformat/wavenc.c
@@ -303,6 +303,13 @@ static int wav_write_header(AVFormatContext *s)
         return AVERROR(EINVAL);
     }
 
+    if (s->streams[0]->codecpar->codec_id == AV_CODEC_ID_ADPCM_SWF &&
+        s->streams[0]->codecpar->block_align == 0) {
+        av_log(s, AV_LOG_ERROR, "%s can only be written to WAVE with a constant frame size\n",
+               avcodec_get_name(s->streams[0]->codecpar->codec_id));
+        return AVERROR(EINVAL);
+    }
+
     if (wav->rf64 == RF64_ALWAYS) {
         ffio_wfourcc(pb, "RF64");
         avio_wl32(pb, -1); /* RF64 chunk size: use size in ds64 */
-- 
2.25.4




More information about the ffmpeg-devel mailing list