Hi Michael, Here is the updated patch to support Vbv-end Feature,the API in the patch is expected to work with X265_BUILD >= 213 only.
>From 64ce51509c74d7a4f9d86dd73662e561ab9c8845 Mon Sep 17 00:00:00 2001 From: yaswanthsastry <yaswanth.sas...@multicorewareinc.com> Date: Thu, 17 Oct 2024 14:24:47 +0530 Subject: [PATCH] Added support to enable VBV-End feature with x265 encode --- fftools/ffmpeg_enc.c | 2 ++ libavcodec/avcodec.h | 1 + libavcodec/libx265.c | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/fftools/ffmpeg_enc.c b/fftools/ffmpeg_enc.c index a46af4dce1..080e44f2df 100644 --- a/fftools/ffmpeg_enc.c +++ b/fftools/ffmpeg_enc.c @@ -187,7 +187,9 @@ int enc_open(void *opaque, const AVFrame *frame) InputStream *ist = ost->ist; Encoder *e = ost->enc; EncoderPriv *ep = ep_from_enc(e); + AVFormatContext* ic = input_files[ost->file->index]->ctx; AVCodecContext *enc_ctx = e->enc_ctx; + enc_ctx->duration = (double)(ic->duration); Decoder *dec = NULL; const AVCodec *enc = enc_ctx->codec; OutputFile *of = ost->file; diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 77ca8dee1f..e6ca5babee 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2086,6 +2086,7 @@ typedef struct AVCodecContext { */ AVFrameSideData **decoded_side_data; int nb_decoded_side_data; + double duration; } AVCodecContext; /** diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index 63cc497f83..44f3de064d 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -693,6 +693,7 @@ static int libx265_encode_frame(AVCodecContext *avctx, AVPacket *pkt, } x265pic.pts = pic->pts; + x265pic.poc = pic->pts; x265pic.bitDepth = av_pix_fmt_desc_get(avctx->pix_fmt)->comp[0].depth; x265pic.sliceType = pic->pict_type == AV_PICTURE_TYPE_I ? @@ -785,6 +786,10 @@ static int libx265_encode_frame(AVCodecContext *avctx, AVPacket *pkt, } } +#if X265_BUILD >= 213 +if(ctx->params->vbvBufferEnd) + ctx->api->configure_vbv_end(ctx->encoder,&x265pic,(avctx->duration/1000000)); +#endif #if X265_BUILD >= 167 sd = av_frame_get_side_data(pic, AV_FRAME_DATA_DOVI_METADATA); if (ctx->dovi.cfg.dv_profile && sd) { -- 2.17.1 On Fri, Oct 11, 2024 at 10:50 PM Michael Niedermayer <mich...@niedermayer.cc> wrote: > On Wed, Oct 09, 2024 at 01:58:13PM +0530, Yaswanth Sastry wrote: > > From 5cd8272ccf9902a4eb5451fed583909c63941fb7 Mon Sep 17 00:00:00 2001 > > From: From: yaswanthsastry <yaswanth.sas...@multicorewareinc.com> > > Date: Wed, 9 Oct 2024 13:44:54 +0530 > > Subject: [PATCH] Added support to enable VBV-End feature with x265 encode > > > > --- > > fftools/ffmpeg_enc.c | 2 ++ > > libavcodec/avcodec.h | 1 + > > libavcodec/libx265.c | 3 +++ > > 3 files changed, 6 insertions(+) > > breaks build on ubuntu: > > libavcodec/libx265.c: In function ‘libx265_encode_frame’: > libavcodec/libx265.c:791:21: error: ‘x265_api’ {aka ‘const struct > x265_api’} has no member named ‘configure_vbv_end’ > 791 | > ctx->api->configure_vbv_end(ctx->encoder,&x265pic,(avctx->duration/1000000)); > | ^~ > make: *** [ffbuild/common.mak:81: libavcodec/libx265.o] Error 1 > make: *** Waiting for unfinished jobs.... > > thx > > [...] > > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > What is money laundering? Its paying someone and not telling the > government. > _______________________________________________ > 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". >
0001-Added-support-to-enable-VBV-End-feature-with-x265-en.patch
Description: Binary data
_______________________________________________ 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".