diff options
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/vocenc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavformat/vocenc.c b/libavformat/vocenc.c index d97cdc4c15..27ed16f7fa 100644 --- a/libavformat/vocenc.c +++ b/libavformat/vocenc.c @@ -30,6 +30,7 @@ typedef struct voc_enc_context { static int voc_write_header(AVFormatContext *s) { AVIOContext *pb = s->pb; + AVCodecContext *enc = s->streams[0]->codec; const int header_size = 26; const int version = 0x0114; @@ -37,6 +38,11 @@ static int voc_write_header(AVFormatContext *s) || s->streams[0]->codec->codec_type != AVMEDIA_TYPE_AUDIO) return AVERROR_PATCHWELCOME; + if (!enc->codec_tag || enc->codec_tag > 0xffff) { + av_log(s, AV_LOG_ERROR, "unsupported codec\n"); + return AVERROR(EINVAL); + } + avio_write(pb, ff_voc_magic, sizeof(ff_voc_magic) - 1); avio_wl16(pb, header_size); avio_wl16(pb, version); |