On Wed, Oct 02, 2019 at 09:05:35AM +0200, Matthieu Bouron wrote: > On Wed, Oct 02, 2019 at 06:04:10AM +0200, Andreas Rheinhardt wrote: > > Up until now, aiffenc didn't rely on the standard functions for adding > > an element to a linked list and freeing the list, but instead > > reimplemented them. This has been changed. > > > > Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> > > --- > > libavformat/aiffenc.c | 33 ++++----------------------------- > > 1 file changed, 4 insertions(+), 29 deletions(-) > > > > diff --git a/libavformat/aiffenc.c b/libavformat/aiffenc.c > > index aab37418f0..dd8b8c3d01 100644 > > --- a/libavformat/aiffenc.c > > +++ b/libavformat/aiffenc.c > > @@ -36,7 +36,7 @@ typedef struct AIFFOutputContext { > > int64_t frames; > > int64_t ssnd; > > int audio_stream_idx; > > - AVPacketList *pict_list; > > + AVPacketList *pict_list, *pict_list_end; > > int write_id3v2; > > int id3v2_version; > > } AIFFOutputContext; > > @@ -215,9 +215,6 @@ static int aiff_write_packet(AVFormatContext *s, > > AVPacket *pkt) > > if (pkt->stream_index == aiff->audio_stream_idx) > > avio_write(pb, pkt->data, pkt->size); > > else { > > - int ret; > > - AVPacketList *pict_list, *last; > > - > > if (s->streams[pkt->stream_index]->codecpar->codec_type != > > AVMEDIA_TYPE_VIDEO) > > return 0; > > > > @@ -229,24 +226,8 @@ static int aiff_write_packet(AVFormatContext *s, > > AVPacket *pkt) > > if (s->streams[pkt->stream_index]->nb_frames >= 1) > > return 0; > > > > - pict_list = av_mallocz(sizeof(AVPacketList)); > > - if (!pict_list) > > - return AVERROR(ENOMEM); > > - > > - ret = av_packet_ref(&pict_list->pkt, pkt); > > - if (ret < 0) { > > - av_freep(&pict_list); > > - return ret; > > - } > > - > > - if (!aiff->pict_list) > > - aiff->pict_list = pict_list; > > - else { > > - last = aiff->pict_list; > > - while (last->next) > > - last = last->next; > > - last->next = pict_list; > > - } > > + return ff_packet_list_put(&aiff->pict_list, &aiff->pict_list_end, > > + pkt, FF_PACKETLIST_FLAG_REF_PACKET); > > } > > > > return 0; > > @@ -257,7 +238,6 @@ static int aiff_write_trailer(AVFormatContext *s) > > int ret; > > AVIOContext *pb = s->pb; > > AIFFOutputContext *aiff = s->priv_data; > > - AVPacketList *pict_list = aiff->pict_list; > > AVCodecParameters *par = s->streams[aiff->audio_stream_idx]->codecpar; > > > > /* Chunks sizes must be even */ > > @@ -293,12 +273,7 @@ static int aiff_write_trailer(AVFormatContext *s) > > avio_flush(pb); > > } > > > > - while (pict_list) { > > - AVPacketList *next = pict_list->next; > > - av_packet_unref(&pict_list->pkt); > > - av_freep(&pict_list); > > - pict_list = next; > > - } > > + ff_packet_list_free(&aiff->pict_list, &aiff->pict_list_end); > > > > return 0; > > } > > -- > > 2.21.0 > > LGTM. > > Fate passes and patch tested with a few remux of aiff files containing > id3v2 tags + attached pics (ffmpeg -i input.aiff -write_id3v2 1 > output.aiff).
will apply thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Modern terrorism, a quick summary: Need oil, start war with country that has oil, kill hundread thousand in war. Let country fall into chaos, be surprised about raise of fundamantalists. Drop more bombs, kill more people, be surprised about them taking revenge and drop even more bombs and strip your own citizens of their rights and freedoms. to be continued
signature.asc
Description: PGP signature
_______________________________________________ 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".