[FFmpeg-devel] avdevice/v4l2enc: Allow writing non-rawvideos to v4l2

Mark Thompson sw at jkqxz.net
Mon May 4 01:13:25 EEST 2020


On 26/04/2020 21:26, David Manouchehri wrote:
> Resubmit of a previous patch, not sure why the diff didn't come through.
> 
> From d125fea410dea1c2d4bd791a7472a72822de54a3 Mon Sep 17 00:00:00 2001
> From: David Manouchehri <david.manouchehri at riseup.net>
> Date: Sat, 4 Nov 2017 16:32:41 -0400
> Subject: [PATCH] avdevice/v4l2enc: Allow writing non-rawvideos to v4l2.
> 
> Signed-off-by: David Manouchehri <david.manouchehri at riseup.net>
> ---
>  libavdevice/v4l2enc.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/libavdevice/v4l2enc.c b/libavdevice/v4l2enc.c
> index 1c36f81f90..f89ff50dbb 100644
> --- a/libavdevice/v4l2enc.c
> +++ b/libavdevice/v4l2enc.c
> @@ -47,8 +47,7 @@ static av_cold int write_header(AVFormatContext *s1)
>      }
>  
>      if (s1->nb_streams != 1 ||
> -        s1->streams[0]->codecpar->codec_type != AVMEDIA_TYPE_VIDEO ||
> -        s1->streams[0]->codecpar->codec_id   != AV_CODEC_ID_RAWVIDEO) {
> +        s1->streams[0]->codecpar->codec_type != AVMEDIA_TYPE_VIDEO) {
>          av_log(s1, AV_LOG_ERROR,
>                 "V4L2 output device supports only a single raw video stream\n");
>          return AVERROR(EINVAL);
> @@ -56,7 +55,13 @@ static av_cold int write_header(AVFormatContext *s1)
>  
>      par = s1->streams[0]->codecpar;
>  
> -    v4l2_pixfmt = ff_fmt_ff2v4l(par->format, AV_CODEC_ID_RAWVIDEO);
> +    if(s1->streams[0]->codecpar->codec_id == AV_CODEC_ID_RAWVIDEO) {
> +        v4l2_pixfmt = ff_fmt_ff2v4l(par->format, AV_CODEC_ID_RAWVIDEO);
> +    }
> +    else {
> +        v4l2_pixfmt = ff_fmt_ff2v4l(AV_PIX_FMT_NONE, s1->streams[0]->codecpar->codec_id);
> +    }
> +
>      if (!v4l2_pixfmt) { // XXX: try to force them one by one?
>          av_log(s1, AV_LOG_ERROR, "Unknown V4L2 pixel format equivalent for %s\n",
>                 av_get_pix_fmt_name(par->format));
> -- 
> 2.17.1

LGTM.  If noone else has any comments I'll apply this in two days.

Thanks,

- Mark


More information about the ffmpeg-devel mailing list