[FFmpeg-devel] [PATCH] Changed max bitrate for VBV mode (according to Ivan Uskow)
Michael Niedermayer
michael at niedermayer.cc
Fri Aug 14 10:32:24 CEST 2015
On Fri, Aug 14, 2015 at 07:37:08AM +0200, Sven Dueking wrote:
>
>
> > -----Ursprüngliche Nachricht-----
> > Von: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] Im Auftrag
> > von Michael Niedermayer
> > Gesendet: Donnerstag, 13. August 2015 17:41
> > An: FFmpeg development discussions and patches
> > Cc: Sven Dueking
> > Betreff: Re: [FFmpeg-devel] [PATCH] Changed max bitrate for VBV mode
> > (according to Ivan Uskow)
> >
> > On Thu, Aug 13, 2015 at 11:30:45AM +0100, Sven Dueking wrote:
> > > From: Sven Dueking <sven at nablet.com>
> > >
> > > ---
> > > libavcodec/qsvenc.c | 6 +++++-
> > > 1 file changed, 5 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index
> > > 57f5fe4..b56e4b4 100644
> > > --- a/libavcodec/qsvenc.c
> > > +++ b/libavcodec/qsvenc.c
> > > @@ -118,10 +118,14 @@ static int init_video_param(AVCodecContext
> > > *avctx, QSVEncContext *q)
> > >
> > > switch (q->param.mfx.RateControlMethod) {
> > > case MFX_RATECONTROL_CBR:
> > > + q->param.mfx.InitialDelayInKB = avctx-
> > >rc_initial_buffer_occupancy / 1000;
> > > + q->param.mfx.TargetKbps = avctx->bit_rate / 1000;
> > > + q->param.mfx.MaxKbps = avctx->bit_rate / 1000;
> > > + break;
> > > case MFX_RATECONTROL_VBR:
> > > q->param.mfx.InitialDelayInKB = avctx-
> > >rc_initial_buffer_occupancy / 1000;
> > > q->param.mfx.TargetKbps = avctx->bit_rate / 1000;
> > > - q->param.mfx.MaxKbps = avctx->bit_rate / 1000;
> > > + q->param.mfx.MaxKbps = avctx->rc_max_rate / 1000;
> >
> > why is rc_max_rate not used for MFX_RATECONTROL_CBR ?
>
> Hi Michael,
>
> Ivan is on vacation and I did the fix according to his last command :
>
> "This correct for MFX_RATECONTROL_CBR but a bug for MFX_RATECONTROL_VBR.
> Will fixed later. For any case part of ratecontrol setup should be
> re-designed to support more advanced LA rate contol"
>
> The Intel Documentation states that :
>
> For variable bitrate control, the MaxKbps parameter specifies the maximum
> bitrate at which the encoded data enters the Video Buffering Verifier (VBV)
> buffer.
>
> And for CBR the target bitrate and max bitrate should be equal to archive a
> bitrate that is near a desired target for streaming (no peaks etc.)
In the code there is this:
} else if (avctx->rc_max_rate == avctx->bit_rate) {
q->param.mfx.RateControlMethod = MFX_RATECONTROL_CBR;
ratecontrol_desc = "constant bitrate (CBR)";
assuming thats how CBR is set, the variables are equal and the special
case is not needed
am i missing something ?
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
The misfortune of the wise is better than the prosperity of the fool.
-- Epicurus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150814/4ba7fd6d/attachment.sig>
More information about the ffmpeg-devel
mailing list