[FFmpeg-devel] Fwd: Questionable libav code
Ratin
ratin3 at gmail.com
Sun Feb 7 18:38:06 CET 2016
On Tue, Feb 2, 2016 at 11:41 PM, wm4 <nfxjfg at googlemail.com> wrote:
> On Tue, 2 Feb 2016 14:31:20 -0800
> Ratin <ratin3 at gmail.com> wrote:
>
> > libavcodec has codes like this one (utils.c):
> >
> > static AVPacket *add_to_pktbuf(AVPacketList **packet_buffer, AVPacket
> *pkt,
> > AVPacketList **plast_pktl)
> > {
> > AVPacketList *pktl = av_mallocz(sizeof(AVPacketList));
> > if (!pktl)
> > return NULL;
> >
> > if (*packet_buffer)
> > (*plast_pktl)->next = pktl;
> > else
> > *packet_buffer = pktl;
> >
> > /* Add the packet in the buffered packet list. */
> > *plast_pktl = pktl;
> > pktl->pkt = *pkt; <===========================
> > return &pktl->pkt;
> > }
> >
> > Here a struct variable is meant to be copied over via assignment, is that
> > 100% correct to always work the way was intended? Given that the struct
> > pkt is a big struct which has raw bytes that are malloc'd. I was always
> > trained to avoid such struct assignment operations. What do people think?
>
> There is no problem at all here.
>
Sorry a bit confused, what happens when second argument is not malloc'ed,
somebody uses
AVPacket pkt;
add_to_pktbuf(packet_list, &pkt, plastpkt)
_______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
More information about the ffmpeg-devel
mailing list