lavf/audiointerleave: check return value of av_new_packet()
Fixes CID733709. Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
@ -84,7 +84,8 @@ static int ff_interleave_new_audio_packet(AVFormatContext *s, AVPacket *pkt,
|
|||||||
if (!size || (!flush && size == av_fifo_size(aic->fifo)))
|
if (!size || (!flush && size == av_fifo_size(aic->fifo)))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
av_new_packet(pkt, size);
|
if (av_new_packet(pkt, size) < 0)
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
av_fifo_generic_read(aic->fifo, pkt->data, size, NULL);
|
av_fifo_generic_read(aic->fifo, pkt->data, size, NULL);
|
||||||
|
|
||||||
pkt->dts = pkt->pts = aic->dts;
|
pkt->dts = pkt->pts = aic->dts;
|
||||||
@ -133,11 +134,13 @@ int ff_audio_rechunk_interleave(AVFormatContext *s, AVPacket *out, AVPacket *pkt
|
|||||||
if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
|
if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
|
||||||
AVPacket new_pkt;
|
AVPacket new_pkt;
|
||||||
int ret;
|
int ret;
|
||||||
while (ff_interleave_new_audio_packet(s, &new_pkt, i, flush)) {
|
while ((ret = ff_interleave_new_audio_packet(s, &new_pkt, i, flush)) > 0) {
|
||||||
ret = ff_interleave_add_packet(s, &new_pkt, compare_ts);
|
ret = ff_interleave_add_packet(s, &new_pkt, compare_ts);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user