voc: set bits_per_sample correctly (fix mplayer playback)
authorAurelien Jacobs <aurel@gnuage.org>
Thu, 9 Feb 2006 23:53:07 +0000 (23:53 +0000)
committerAurelien Jacobs <aurel@gnuage.org>
Thu, 9 Feb 2006 23:53:07 +0000 (23:53 +0000)
Originally committed as revision 4968 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/voc.c

index 7c723a4011465e6e56bb1f7c7e3ad5a3b473cbdc..712f71a725aac4525accbb7c8ffb0d9e1eab886f 100644 (file)
@@ -90,6 +90,18 @@ static int voc_read_header(AVFormatContext *s, AVFormatParameters *ap)
     return 0;
 }
 
+static int voc_get_bps(int codec_id)
+{
+    switch (codec_id) {
+    case CODEC_ID_PCM_S16LE:
+        return 16;
+    case CODEC_ID_ADPCM_CT:
+        return 4;
+    default:
+        return 8;
+    }
+}
+
 int
 voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size)
 {
@@ -115,6 +127,7 @@ voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size)
                 dec->sample_rate = sample_rate;
             dec->channels = channels;
             dec->codec_id = codec_get_id(voc_codec_tags, get_byte(pb));
+            dec->bits_per_sample = voc_get_bps(dec->codec_id);
             voc->remaining_size -= 2;
             max_size -= 2;
             channels = 1;