fix pcm_s24be demuxing, simplify
Originally committed as revision 5381 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
fce9551efc
commit
a959f0ea7a
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user