[FFmpeg-devel] [PATCH] lavc/lavf: transmit stream_id information for mpegts KLV data packets

Stefano Sabatini stefasab at gmail.com
Sat Feb 13 18:37:18 CET 2016


On date Monday 2016-02-08 19:18:26 +0100, Stefano Sabatini encoded:
> On date Friday 2016-02-05 01:15:47 +0100, Marton Balint encoded:
> > 
> > On Thu, 4 Feb 2016, Stefano Sabatini wrote:
> > 
> > >On date Wednesday 2016-02-03 10:18:34 +0100, Stefano Sabatini encoded:
> > >[...]
> > >>Note: since my purpose is to allow remuxing KLV data, I can change
> > >>this to enable stream_id side-data only with data streams (so that no
> > >>reference must be changed).
> > >>
> > >>Since I have no strong opinion on this I'd change in case someone has
> > >>a preference.
> > 
> > I have no strong preference either. Unless it is a noticable
> > performance hit, I think it is fine to add the stream id to all
> > packets.
> > 
> > The mpegts demuxer part seems fine, one thing I may change is that
> > in new_pes_packet, you allocate the side data in the beginning of
> > the function after assigning pes->buffer to the packet buffer.
> > 
> > Probably it would be better if you could allocate the side data in
> > the end of the function, after setting pes->buffer to NULL so the
> > allocated buffer will not belong to both the pes->buf and pkt->buf,
> > therefore in case of ENOMEM at least we will have a chance of
> > freeing it properly.
> 
> Sure, good catch, patch updated.
> 
> No more comments, or is it fine to push?
> -- 
> FFmpeg = Funny and Frenzy Marvellous Puristic Epic God

> From 1dbf24a767c4909b254af7c679f91a5fd7fe81fb Mon Sep 17 00:00:00 2001
> From: Stefano Sabatini <stefasab at gmail.com>
> Date: Wed, 18 Nov 2015 19:23:03 +0100
> Subject: [PATCH] lavc/lavf: transmit stream_id information for mpegts KLV data
>  packets
> 
> This allows to copy information related to the stream ID from the demuxer
> to the muxer, thus allowing for example to retain information related to
> synchronous and asynchronous KLV data packets. This information is used
> in the muxer when remuxing to distinguish the two kind of packets (if the
> information is lacking, data packets are considered sychronous).
> 
> The fate reference changes are due to the use of
> av_packet_merge_side_data(), which increases the size of the output
> packet size, since side data is merged into the packet data.
> ---
>  doc/APIchanges                                |   3 +
>  libavcodec/avcodec.h                          |   6 ++
>  libavcodec/avpacket.c                         |   1 +
>  libavcodec/version.h                          |   4 +-
>  libavformat/mpegts.c                          |  31 +++++--
>  libavformat/mpegtsenc.c                       |  26 ++++--
>  tests/ref/fate/concat-demuxer-simple2-lavf-ts | 128 +++++++++++++-------------
>  tests/ref/seek/lavf-ts                        |  54 +++++------
>  8 files changed, 148 insertions(+), 105 deletions(-)

Someone else wants to have a look, or should I push as is?

[...]
-- 
FFmpeg = Fierce and Fiendish Meaningful Practical Educated Governor


More information about the ffmpeg-devel mailing list