• Andreas Rheinhardt's avatar
    avformat/mux: Don't use stack packet when writing interleaved packets · 4fa8daab
    Andreas Rheinhardt authored
    Currently the interleave_packet functions use a packet for
    a new packet to be interleaved (may be NULL if there is none) and
    a packet for output; said packet is always a stack packet in
    interleaved_write_packet(). But all the interleave_packet functions
    in use first move the packet to the packet list and then check whether
    a packet can be returned, i.e. the effective lifetime of the new packet
    ends before the packet for output is touched.
    
    So one can use one packet both for input and output by adding a new
    parameter that indicates whether there is a packet to add to the packet
    list; there is just one complication: In case the muxer is flushed,
    there is no packet available. This can be solved by reusing one of
    the packets from AVFormatInternal. They are currently unused when
    flushing in av_interleaved_write_frame().
    Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@outlook.com>
    4fa8daab
gxfenc.c 31.8 KB