James Almer: > Signed-off-by: James Almer <jamr...@gmail.com> > --- > libavformat/wc3movie.c | 21 ++++++++++----------- > 1 file changed, 10 insertions(+), 11 deletions(-) > > diff --git a/libavformat/wc3movie.c b/libavformat/wc3movie.c > index 76e945d261..1fe582945a 100644 > --- a/libavformat/wc3movie.c > +++ b/libavformat/wc3movie.c > @@ -69,7 +69,7 @@ typedef struct Wc3DemuxContext { > int video_stream_index; > int audio_stream_index; > > - AVPacket vpkt; > + AVPacket *vpkt; > > } Wc3DemuxContext; > > @@ -77,8 +77,7 @@ static int wc3_read_close(AVFormatContext *s) > { > Wc3DemuxContext *wc3 = s->priv_data; > > - if (wc3->vpkt.size > 0) > - av_packet_unref(&wc3->vpkt); > + av_packet_free(&wc3->vpkt); > > return 0; > } > @@ -110,8 +109,9 @@ static int wc3_read_header(AVFormatContext *s) > wc3->height = WC3_DEFAULT_HEIGHT; > wc3->pts = 0; > wc3->video_stream_index = wc3->audio_stream_index = 0; > - av_init_packet(&wc3->vpkt); > - wc3->vpkt.data = NULL; wc3->vpkt.size = 0; > + wc3->vpkt = av_packet_alloc(); > + if (!wc3->vpkt) > + goto fail;
goto fail returns 0. You should instead just return AVERROR(ENOMEM) directly. Nothing has been (successfully) allocated at this point. > > /* skip the first 3 32-bit numbers */ > avio_skip(pb, 12); > @@ -162,7 +162,7 @@ static int wc3_read_header(AVFormatContext *s) > case PALT_TAG: > /* one of several palettes */ > avio_seek(pb, -8, SEEK_CUR); > - av_append_packet(pb, &wc3->vpkt, 8 + PALETTE_SIZE); > + av_append_packet(pb, wc3->vpkt, 8 + PALETTE_SIZE); > break; > > default: > @@ -248,18 +248,17 @@ static int wc3_read_packet(AVFormatContext *s, > case SHOT_TAG: > /* load up new palette */ > avio_seek(pb, -8, SEEK_CUR); > - av_append_packet(pb, &wc3->vpkt, 8 + 4); > + av_append_packet(pb, wc3->vpkt, 8 + 4); > break; > > case VGA__TAG: > /* send out video chunk */ > avio_seek(pb, -8, SEEK_CUR); > - ret= av_append_packet(pb, &wc3->vpkt, 8 + size); > + ret= av_append_packet(pb, wc3->vpkt, 8 + size); > // ignore error if we have some data > - if (wc3->vpkt.size > 0) > + if (wc3->vpkt->size > 0) > ret = 0; > - *pkt = wc3->vpkt; > - wc3->vpkt.data = NULL; wc3->vpkt.size = 0; > + av_packet_move_ref(pkt, wc3->vpkt); > pkt->stream_index = wc3->video_stream_index; > pkt->pts = wc3->pts; > packet_read = 1; > _______________________________________________ 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".