On Fri, Oct 11, 2019 at 06:06:58AM +0200, Andreas Rheinhardt wrote: > do_streamcopy() has a packet that gets zero-initialized first, then gets > initialized via av_init_packet() after which some of its fields are > oerwritten again with the actually desired values (unless it's EOF): The > side data is copied into the packet with av_copy_packet_side_data() and > if the source packet is refcounted, the packet will get a new reference > to the source packet's data. Furthermore, the flags are copied and the > timestamp related fields are overwritten with new values. > > This commit replaces this by using av_packet_ref() to both initialize > the packet as well as populate its fields with the right values (unless > it's EOF again in which case the packet will still be initialized). The > differences to the current approach are as follows: > a) There is no call to a deprecated function (av_copy_packet_side_data()) > any more. > b) Several fields that weren't copied before are now copied from the source > packet to the new packet (e.g. pos). Some of them (the timestamp related > fields) may be immediately overwritten again and some don't seem to be > used at all (e.g. pos), but in return using av_packet_ref() allows to forgo > the initializations. > c) There was no check for whether copying side data fails or not. This > has been changed: Now the program is exited in this case. > > Using av_packet_ref() does not lead to unnecessary copying of data, > because the source packets are already always refcounted (they originate > from av_read_frame()). > > Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> > --- > After this patch there will be only call to av_copy_packet_side_data() > left: In libavformat/movenc.c. > Btw: Initializing the packet for flushing is actually unnecessary. > > fftools/ffmpeg.c | 24 +++++++----------------- > 1 file changed, 7 insertions(+), 17 deletions(-)
will apply thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Does the universe only have a finite lifespan? No, its going to go on forever, its just that you wont like living in it. -- Hiranya Peiri
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".