fix pcm_s24be demuxing, simplify
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Mon, 15 May 2006 12:38:33 +0000 (12:38 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Mon, 15 May 2006 12:38:33 +0000 (12:38 +0000)
Originally committed as revision 5381 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/aiff.c

index adf4be7..00dc7c1 100644 (file)
@@ -399,37 +399,20 @@ got_sound:
 static int aiff_read_packet(AVFormatContext *s,
                             AVPacket *pkt)
 {
-    offset_t pos;
-    int res, size;
+    AVStream *st = s->streams[0];
+    int res;
 
     /* End of stream may be reached */
     if (url_feof(&s->pb))
         return AVERROR_IO;
 
-    /* Need to know if reached the end sound data */
-    size = MAX_SIZE;
-    if (s->file_size) {
-        pos = url_ftell (&s->pb) - s->file_size;
-        if (pos >= s->file_size)
-            size = 0;
-        else if (pos + MAX_SIZE >= s->file_size)
-            size = s->file_size - pos;
-    }
-
     /* Now for that packet */
-    res = av_get_packet (&s->pb, pkt, MAX_SIZE);
+    res = av_get_packet(&s->pb, pkt, (MAX_SIZE / st->codec->block_align) * st->codec->block_align);
     if (res < 0)
         return res;
 
     /* Only one stream in an AIFF file */
     pkt->stream_index = 0;
-
-    /* Finaly fix the read to a block */
-    if (size <= res)
-        pkt->size = size - (size % s->streams[0]->codec->block_align);
-    else
-        pkt->size = res - (res % s->streams[0]->codec->block_align);
-
     return 0;
 }