[FFmpeg-devel] [PATCH v2 2/3] avcodec/rawenc: propagate the Producer Reference time
Clément Péron
peron.clem at gmail.com
Fri Nov 29 22:38:49 EET 2024
Hi Michael,
On Fri, 29 Nov 2024 at 20:22, Michael Niedermayer
<michael at niedermayer.cc> wrote:
>
> Hi
>
> On Fri, Nov 01, 2024 at 06:21:23PM +0100, Clément Péron wrote:
> > The Producer Reference time contains the source time when the frame
> > has been produced. This is usefull in the muxer so propagate it.
> >
> > Signed-off-by: Clément Péron <peron.clem at gmail.com>
> > ---
> > libavcodec/rawenc.c | 12 ++++++++++++
> > 1 file changed, 12 insertions(+)
> >
> > diff --git a/libavcodec/rawenc.c b/libavcodec/rawenc.c
> > index 8c577006d9..f238c8e165 100644
> > --- a/libavcodec/rawenc.c
> > +++ b/libavcodec/rawenc.c
> > @@ -49,6 +49,8 @@ static av_cold int raw_encode_init(AVCodecContext *avctx)
> > static int raw_encode(AVCodecContext *avctx, AVPacket *pkt,
> > const AVFrame *frame, int *got_packet)
> > {
> > + AVFrameSideData *side_data;
> > +
> > int ret = av_image_get_buffer_size(frame->format,
> > frame->width, frame->height, 1);
> >
> > @@ -78,6 +80,16 @@ static int raw_encode(AVCodecContext *avctx, AVPacket *pkt,
> > }
> > }
> > *got_packet = 1;
> > +
> > + // Forward the PRFT to Mux
> > + side_data = av_frame_get_side_data(frame, AV_FRAME_DATA_PRFT);
> > + if (side_data && side_data->size) {
> > + uint8_t *buf = av_packet_new_side_data(pkt, AV_PKT_DATA_PRFT, side_data->size);
> > + if (!buf)
> > + return AVERROR(ENOMEM);
> > + memcpy(buf, side_data->data, side_data->size);
> > + }
>
> It feels like there should be a simpler mechanism to forward side data
> but if theres not, then this is probably ok assuming the addition of PRFT
> and the rest of teh patchset is ok
Thanks for your feedback, I'm new to FFMpeg so I'm not in the best
place to comment.
But before writing this patch, I searched and saw this block code
multiple times in the FFMpeg base code.
It would be nice to introduce a helper function but I tried to keep
this MR as simple as possible.
Thanks,
Clement
>
> thx
>
> [...]
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Those who are too smart to engage in politics are punished by being
> governed by those who are dumber. -- Plato
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list