]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/dsfdec.c
Merge commit '72da8d9bb24d1b1bf74c2f1108650c0da0054d2e'
[ffmpeg] / libavformat / dsfdec.c
index beb2fbf5aa9ed1bd476c59d86ca804a04050a0d9..f16b397df2cd5d7fed353cc53840b751f1061963 100644 (file)
@@ -107,6 +107,9 @@ static int dsf_read_header(AVFormatContext *s)
     st->codecpar->channels     = avio_rl32(pb);
     st->codecpar->sample_rate  = avio_rl32(pb) / 8;
 
+    if (st->codecpar->channels <= 0)
+        return AVERROR_INVALIDDATA;
+
     switch(avio_rl32(pb)) {
     case 1: st->codecpar->codec_id = AV_CODEC_ID_DSD_LSBF_PLANAR; break;
     case 8: st->codecpar->codec_id = AV_CODEC_ID_DSD_MSBF_PLANAR; break;
@@ -122,6 +125,7 @@ static int dsf_read_header(AVFormatContext *s)
         return AVERROR_INVALIDDATA;
     }
     st->codecpar->block_align *= st->codecpar->channels;
+    st->codecpar->bit_rate = st->codecpar->channels * st->codecpar->sample_rate * 8LL;
     avio_skip(pb, 4);
 
     /* data chunk */