OSDN Git Service

au: set block_align and use it in au_read_packet()
authorJustin Ruggles <justin.ruggles@gmail.com>
Sun, 23 Dec 2012 18:20:59 +0000 (13:20 -0500)
committerJustin Ruggles <justin.ruggles@gmail.com>
Wed, 9 Jan 2013 16:52:56 +0000 (11:52 -0500)
libavformat/au.c

index f1038da..fcc599b 100644 (file)
@@ -112,6 +112,7 @@ static int au_read_header(AVFormatContext *s)
     st->codec->channels = channels;
     st->codec->sample_rate = rate;
     st->codec->bit_rate    = channels * rate * bps;
+    st->codec->block_align = channels * bps >> 3;
     avpriv_set_pts_info(st, 64, 1, rate);
     return 0;
 }
@@ -123,9 +124,8 @@ static int au_read_packet(AVFormatContext *s,
 {
     int ret;
 
-    ret= av_get_packet(s->pb, pkt, BLOCK_SIZE *
-                       s->streams[0]->codec->channels *
-                       av_get_bits_per_sample(s->streams[0]->codec->codec_id) >> 3);
+    ret = av_get_packet(s->pb, pkt, BLOCK_SIZE *
+                        s->streams[0]->codec->block_align);
     if (ret < 0)
         return ret;
     pkt->stream_index = 0;