From: Anton Khirnov <anton@khirnov.net>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH 5/8] lavc/libvpxenc: handle frame durations and AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE
Date: Wed, 01 Mar 2023 13:01:56 +0100
Message-ID: <167767211692.10789.3047659672975292954@lain.khirnov.net> (raw)
In-Reply-To: <CABWgkXJowtL33fB3tmKsBwde6TC2TxXYCQ_nHfTZ9ncm_6WhRg@mail.gmail.com>
Quoting James Zern (2023-02-28 22:11:29)
> On Tue, Feb 28, 2023 at 4:01 AM Anton Khirnov <anton@khirnov.net> wrote:
> > diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
> > index 77921badba..af16e53deb 100644
> > --- a/libavcodec/libvpxenc.c
> > +++ b/libavcodec/libvpxenc.c
> > @@ -68,6 +68,14 @@ struct FrameListData {
> >
> > typedef struct FrameData {
> > int64_t pts;
> > + int64_t duration;
> > +
> > +#if FF_API_REORDERED_OPAQUE
> > + int64_t reordered_opaque;
> > +#endif
> > + void *frame_opaque;
> > + AVBufferRef *frame_opaque_ref;
> > +
> > AVBufferRef *hdr10_plus;
> > } FrameData;
> >
> > @@ -329,32 +337,101 @@ static av_cold void free_frame_list(struct FrameListData *list)
> > }
> > }
> >
> > +static void frame_data_uninit(FrameData *fd)
> > +{
> > + av_buffer_unref(&fd->frame_opaque_ref);
> > + av_buffer_unref(&fd->hdr10_plus);
> > +}
> > +
> > static av_cold void fifo_free(AVFifo **fifo)
> > {
> > FrameData fd;
> > while (av_fifo_read(*fifo, &fd, 1) >= 0)
> > - av_buffer_unref(&fd.hdr10_plus);
> > + frame_data_uninit(&fd);
> > av_fifo_freep2(fifo);
> > }
> >
> > -static int frame_data_apply(AVFifo *fifo, AVPacket *pkt)
> > +static int frame_data_submit(AVCodecContext *avctx, AVFifo *fifo,
> > + const AVFrame *frame)
> > +{
> > + VPxContext *ctx = avctx->priv_data;
> > + const struct vpx_codec_enc_cfg *enccfg = ctx->encoder.config.enc;
> > +
> > + FrameData fd = { .pts = frame->pts };
> > +
>
> The alignment of this declaration looks strange.
Ah yes, it's a remnant from before I moved it to a separate function.
Fixed locally.
>
> > + AVFrameSideData *av_uninit(sd);
> > + int ret;
> > +
> > +#if CONFIG_LIBVPX_VP9_ENCODER
> > + // Keep HDR10+ if it has bit depth higher than 8 and
> > + // it has PQ trc (SMPTE2084).
>
> Out of curiosity are there any HDR10+ files in fate?
Yes, there is hevc/hdr10_plus_h265_sample.hevc. I tested that the side
data does appear on output packets.
>
> > [...]
> > diff --git a/libavcodec/version.h b/libavcodec/version.h
> > index 06631ffa8c..789d9047c2 100644
> > --- a/libavcodec/version.h
> > +++ b/libavcodec/version.h
> > @@ -30,7 +30,7 @@
> > #include "version_major.h"
> >
> > #define LIBAVCODEC_VERSION_MINOR 4
> > -#define LIBAVCODEC_VERSION_MICRO 100
> > +#define LIBAVCODEC_VERSION_MICRO 101
> >
>
> This needs a rebase to apply cleanly.
Rebased locally.
--
Anton Khirnov
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2023-03-01 12:02 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-28 12:00 [FFmpeg-devel] [PATCH 1/8] lavu/frame: improve AVFrame.opaque[_ref] documentation Anton Khirnov
2023-02-28 12:00 ` [FFmpeg-devel] [PATCH 2/8] lavc/libvpxenc: drop frame_number Anton Khirnov
2023-02-28 20:50 ` James Zern
2023-02-28 12:00 ` [FFmpeg-devel] [PATCH 3/8] lavc/libvpxenc: reindent Anton Khirnov
2023-02-28 20:50 ` James Zern
2023-02-28 12:01 ` [FFmpeg-devel] [PATCH 4/8] lavc/libvpxenc: rename hdr10_plus_fifo and related objects Anton Khirnov
2023-02-28 20:55 ` James Zern
2023-02-28 12:01 ` [FFmpeg-devel] [PATCH 5/8] lavc/libvpxenc: handle frame durations and AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE Anton Khirnov
2023-02-28 21:11 ` James Zern
2023-03-01 12:01 ` Anton Khirnov [this message]
2023-02-28 23:30 ` James Almer
2023-03-01 12:04 ` Anton Khirnov
2023-02-28 12:01 ` [FFmpeg-devel] [PATCH 6/8] lavc/libvpxenc: drop a useless condition Anton Khirnov
2023-02-28 21:12 ` James Zern
2023-02-28 12:01 ` [FFmpeg-devel] [PATCH 7/8] lavc/libvpxenc: handle queue desync more gracefully Anton Khirnov
2023-02-28 12:01 ` [FFmpeg-devel] [PATCH 8/8] lavc/libvpxenc: drop FrameListData.duration Anton Khirnov
2023-02-28 21:16 ` James Zern
2023-03-01 12:07 ` Anton Khirnov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=167767211692.10789.3047659672975292954@lain.khirnov.net \
--to=anton@khirnov.net \
--cc=ffmpeg-devel@ffmpeg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git