On Sun, 16. Feb 20:27, Mark Thompson wrote:
> On 16/02/2020 19:31, Andriy Gelman wrote:
> > From: Andriy Gelman <andriy.gel...@gmail.com>
> > 
> > Without this setting, bitrate and qmin/qmax options have no
> > affect on the s5p-mfc hardware encoder.
> > 
> > Signed-off-by: Andriy Gelman <andriy.gel...@gmail.com>
> > ---
> >  libavcodec/v4l2_m2m_enc.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/libavcodec/v4l2_m2m_enc.c b/libavcodec/v4l2_m2m_enc.c
> > index 98b9dfc2c0b..94373b3b6e7 100644
> > --- a/libavcodec/v4l2_m2m_enc.c
> > +++ b/libavcodec/v4l2_m2m_enc.c
> > @@ -177,6 +177,7 @@ static int v4l2_prepare_encoder(V4L2m2mContext *s)
> >      /* set ext ctrls */
> >      v4l2_set_ext_ctrl(s, MPEG_CID(HEADER_MODE), 
> > MPEG_VIDEO(HEADER_MODE_SEPARATE), "header mode");
> >      v4l2_set_ext_ctrl(s, MPEG_CID(BITRATE) , avctx->bit_rate, "bit rate");
> > +    v4l2_set_ext_ctrl(s, MPEG_CID(FRAME_RC_ENABLE), 1, "frame level rate 
> > control");
> >      v4l2_set_ext_ctrl(s, MPEG_CID(GOP_SIZE), avctx->gop_size,"gop size");
> >  
> >      av_log(avctx, AV_LOG_DEBUG,
> > 

> 
> Can you check the behaviour with other drivers here?
> 
> If they do use the bitrate option even when this was not set (presumably at 
> least one does, because that must have been tested somewhere) then they 
> probably aren't supported, and it looks like the user will get an unhelpful 
> error from trying to send this option to a driver which doesn't support it.  
> (A trivial grep suggests that only s5p-mfc and mtk-vcodec support it, but I 
> might be missing something.)
> 

I tested on the RPI4, and the flag is not supported. Actually, only a few 
parameters are used and we end up generating lots of error messages shown below.

Maybe the best strategy is to check whether the parameter exists in 
v4l2_set_ext_ctrl before trying to set it? 

[h264_v4l2m2m @ 0x30beec0] Using device /dev/video11
[h264_v4l2m2m @ 0x30beec0] driver 'bcm2835-codec' on card 
'bcm2835-codec-encode' in mplane mode
[h264_v4l2m2m @ 0x30beec0] requesting formats: output=YU12 capture=H264
[h264_v4l2m2m @ 0x30beec0] Failed to set number of B-frames: Invalid argument
[h264_v4l2m2m @ 0x30beec0] Failed to get number of B-frames
[h264_v4l2m2m @ 0x30beec0] Failed to set header mode: Invalid argument
[h264_v4l2m2m @ 0x30beec0] Failed to set frame level rate control: Invalid 
argument
[h264_v4l2m2m @ 0x30beec0] Failed to set gop size: Invalid argument
[h264_v4l2m2m @ 0x30beec0] h264 profile not found
[h264_v4l2m2m @ 0x30beec0] Failed to set minimum video quantizer scale: Invalid 
argument
[h264_v4l2m2m @ 0x30beec0] Failed to set maximum video quantizer scale: Invalid 
argument

Thanks
-- 
Andriy
_______________________________________________
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".

Reply via email to