[FFmpeg-devel] [PATCH 04/25] avcodec/v4l2_m2m_enc: add support for -force_key_frames

Guo, Yejun yejun.guo at intel.com
Thu Sep 12 13:45:21 EEST 2019


hi

> -----Original Message-----
> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of
> Aman Gupta
> Sent: Tuesday, September 03, 2019 9:02 AM
> To: ffmpeg-devel at ffmpeg.org
> Cc: lorusak at gmail.com; Aman Gupta <ffmpeg at tmm1.net>;
> jorge.ramirez.ortiz at gmail.com; Aman Gupta <aman at tmm1.net>
> Subject: [FFmpeg-devel] [PATCH 04/25] avcodec/v4l2_m2m_enc: add support
> for -force_key_frames
> 
> From: Aman Gupta <aman at tmm1.net>
> 
> Signed-off-by: Aman Gupta <aman at tmm1.net>
> ---
>  libavcodec/v4l2_m2m_enc.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/libavcodec/v4l2_m2m_enc.c b/libavcodec/v4l2_m2m_enc.c
> index 27bb254fc1..a0d5bcf760 100644
> --- a/libavcodec/v4l2_m2m_enc.c
> +++ b/libavcodec/v4l2_m2m_enc.c
> @@ -245,6 +245,9 @@ static int v4l2_send_frame(AVCodecContext *avctx,
> const AVFrame *frame)
>      V4L2m2mContext *s = ((V4L2m2mPriv*)avctx->priv_data)->context;
>      V4L2Context *const output = &s->output;
> 
> +    if (frame && frame->pict_type == AV_PICTURE_TYPE_I)
> +        v4l2_set_ext_ctrl(s, MPEG_CID(FORCE_KEY_FRAME), 0, "force key
> frame");
> +

looks that a version check is needed here. seems that this macro is introduced by https://patchwork.kernel.org/patch/8058501/. 

There is build error on my machine after I rebase master.

src/libavcodec/v4l2_m2m_enc.c: In function ‘v4l2_set_ext_ctrl’:
src/libavcodec/v4l2_m2m_enc.c:51:12: warning: braces around scalar initializer
     struct v4l2_ext_controls ctrls = { { 0 } };
            ^
src/libavcodec/v4l2_m2m_enc.c:51:12: note: (near initialization for ‘ctrls.ctrl_class’)
src/libavcodec/v4l2_m2m_enc.c: In function ‘v4l2_get_ext_ctrl’:
src/libavcodec/v4l2_m2m_enc.c:71:12: warning: braces around scalar initializer
     struct v4l2_ext_controls ctrls = { { 0 } };
            ^
src/libavcodec/v4l2_m2m_enc.c:71:12: note: (near initialization for ‘ctrls.ctrl_class’)
src/libavcodec/v4l2_m2m_enc.c: In function ‘v4l2_send_frame’:
src/libavcodec/v4l2_m2m_enc.c:34:21: error: ‘V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME’ undeclared (first use in this function)
 #define MPEG_CID(x) V4L2_CID_MPEG_VIDEO_##x
                     ^
src/libavcodec/v4l2_m2m_enc.c:249:30: note: in expansion of macro ‘MPEG_CID’
         v4l2_set_ext_ctrl(s, MPEG_CID(FORCE_KEY_FRAME), 0, "force key frame");
                              ^
src/libavcodec/v4l2_m2m_enc.c:34:21: note: each undeclared identifier is reported only once for each function it appears in
 #define MPEG_CID(x) V4L2_CID_MPEG_VIDEO_##x
                     ^
src/libavcodec/v4l2_m2m_enc.c:249:30: note: in expansion of macro ‘MPEG_CID’
         v4l2_set_ext_ctrl(s, MPEG_CID(FORCE_KEY_FRAME), 0, "force key frame");
                              ^
src/ffbuild/common.mak:59: recipe for target 'libavcodec/v4l2_m2m_enc.o' failed
make: *** [libavcodec/v4l2_m2m_enc.o] Error 1
make: *** Waiting for unfinished jobs....


>      return ff_v4l2_context_enqueue_frame(output, frame);
>  }
> 
> --
> 2.20.1
> 
> _______________________________________________
> 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