[FFmpeg-devel] [PATCH] lavf/mux: do not pass a copy of the packet to write_packet().

Clément Bœsch ubitux at gmail.com
Tue Jan 8 23:23:24 CET 2013


On Tue, Jan 08, 2013 at 10:57:59PM +0100, Michael Niedermayer wrote:
> On Tue, Jan 08, 2013 at 10:40:21PM +0100, Clément Bœsch wrote:
> > Sometimes the muxer modifies the packet (like for instance lavf/mp3enc
> > changing pkt->destruct in order to keep a copy), so these changes must
> > be kept.
> > 
> > Fixes #2124.
> > ---
> >  libavformat/mux.c | 11 +++++------
> >  1 file changed, 5 insertions(+), 6 deletions(-)
> > 
> > diff --git a/libavformat/mux.c b/libavformat/mux.c
> > index c7e176a..c34a294 100644
> > --- a/libavformat/mux.c
> > +++ b/libavformat/mux.c
> > @@ -490,13 +490,12 @@ static int compute_pkt_fields2(AVFormatContext *s, AVStream *st, AVPacket *pkt)
> >   */
> >  static inline int split_write_packet(AVFormatContext *s, AVPacket *pkt)
> >  {
> > -    int ret;
> > -    AVPacket spkt = *pkt;
> > +    int ret, did_split;
> >  
> > -    av_packet_split_side_data(&spkt);
> > -    ret = s->oformat->write_packet(s, &spkt);
> > -    spkt.data = NULL;
> > -    av_destruct_packet(&spkt);
> > +    did_split = av_packet_split_side_data(pkt);
> > +    ret = s->oformat->write_packet(s, pkt);
> > +    if (did_split)
> > +        av_packet_merge_side_data(pkt);
> >      return ret;
> 
> if that works better sure ok&LGTM
> 
> i wouldnt call what mp3enc does correct though
> 

Description edited and pushed, thanks.

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130108/9205d718/attachment.asc>


More information about the ffmpeg-devel mailing list