Commit a959f0ea authored by Baptiste Coudurier's avatar Baptiste Coudurier

fix pcm_s24be demuxing, simplify

Originally committed as revision 5381 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent fce9551e
...@@ -399,37 +399,20 @@ got_sound: ...@@ -399,37 +399,20 @@ got_sound:
static int aiff_read_packet(AVFormatContext *s, static int aiff_read_packet(AVFormatContext *s,
AVPacket *pkt) AVPacket *pkt)
{ {
offset_t pos; AVStream *st = s->streams[0];
int res, size; int res;
/* End of stream may be reached */ /* End of stream may be reached */
if (url_feof(&s->pb)) if (url_feof(&s->pb))
return AVERROR_IO; 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 */ /* 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) if (res < 0)
return res; return res;
/* Only one stream in an AIFF file */ /* Only one stream in an AIFF file */
pkt->stream_index = 0; 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; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment