James Almer: > Signed-off-by: James Almer <jamr...@gmail.com> > --- > libavformat/flacdec.c | 20 ++++++++++++-------- > 1 file changed, 12 insertions(+), 8 deletions(-) > > diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c > index 6aca4755a1..7852a79d39 100644 > --- a/libavformat/flacdec.c > +++ b/libavformat/flacdec.c > @@ -259,7 +259,7 @@ static int flac_probe(const AVProbeData *p) > static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int > stream_index, > int64_t *ppos, int64_t > pos_limit) > { > - AVPacket pkt; > + AVPacket *pkt; > AVStream *st = s->streams[stream_index]; > AVCodecParserContext *parser; > int ret; > @@ -268,9 +268,12 @@ static av_unused int64_t > flac_read_timestamp(AVFormatContext *s, int stream_inde > if (avio_seek(s->pb, *ppos, SEEK_SET) < 0) > return AV_NOPTS_VALUE; > > - av_init_packet(&pkt); > + pkt = av_packet_alloc(); > + if (!pkt) > + return AV_NOPTS_VALUE; > parser = av_parser_init(st->codecpar->codec_id); > if (!parser){ > + av_packet_free(&pkt); > return AV_NOPTS_VALUE; > } > parser->flags |= PARSER_FLAG_USE_CODEC_TS; > @@ -279,20 +282,20 @@ static av_unused int64_t > flac_read_timestamp(AVFormatContext *s, int stream_inde > uint8_t *data; > int size; > > - ret = ff_raw_read_partial_packet(s, &pkt); > + ret = ff_raw_read_partial_packet(s, pkt); > if (ret < 0){ > if (ret == AVERROR(EAGAIN)) > continue; > else { > - av_packet_unref(&pkt); > - av_assert1(!pkt.size); > + av_packet_unref(pkt); > + av_assert1(!pkt->size); > } > } > av_parser_parse2(parser, st->internal->avctx, > - &data, &size, pkt.data, pkt.size, > - pkt.pts, pkt.dts, *ppos); > + &data, &size, pkt->data, pkt->size, > + pkt->pts, pkt->dts, *ppos); > > - av_packet_unref(&pkt); > + av_packet_unref(pkt); > if (size) { > if (parser->pts != AV_NOPTS_VALUE){ > // seeking may not have started from beginning of a frame > @@ -304,6 +307,7 @@ static av_unused int64_t > flac_read_timestamp(AVFormatContext *s, int stream_inde > } else if (ret < 0) > break; > } > + av_packet_free(&pkt); > av_parser_close(parser); > return pts; > } > The parse_packet is unused during this function, so it can be reused.
- Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".