From patchwork Wed Aug 9 11:19:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jorge Ramirez-Ortiz X-Patchwork-Id: 4665 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.46.211 with SMTP id u202csp823214vsu; Wed, 9 Aug 2017 04:20:35 -0700 (PDT) X-Received: by 10.223.142.68 with SMTP id n62mr6438618wrb.27.1502277634989; Wed, 09 Aug 2017 04:20:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1502277634; cv=none; d=google.com; s=arc-20160816; b=zB8IS1qmQc4HWFbco4PLIRfNpVzYjYGy5uzJdQAFwkBN7CTAWferEZifJjKBRhKh47 HbTClSf+ztDKvU440WnLR49RHY3NaIUmChGE24pF7b2vbCZVwm5BQQrNILvX/tlfh33g 8zNCR5VS5TkUOAYplUfbd9/TkSHFlhwO2kgahu2xPkDUTWi2GV+6m7jfVb9Vjs1OoLxJ d4SwbVdhMU+s1E76Ldp33LefnbQfJjVpKzPUlx047pSYn3VMKpT/uHw3A2LhDio+7sA3 4SlxuSZ0wuGp8NO+BV4hdl7IyfGTf6jpr6hg8GDfoGCAMGS3uJPvP2iG9d9doHAHXRxC cSSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=OBvDydqWTjoR7De+VJ7S9RHE93QwMqOM+QHwOcAXIvk=; b=ZlWpB4Lq+qxblQGZl77Gg6995oAgwVxW/zk1KVAc7bnHWhVFF9Ijb4Fbh7mNtNkJgP WUk88vEm8JH5soGdRqnXPuNA++b+Om7AjidRndzDDcsoINuiXKPYk4cZFkLlLtMMNmy3 yY851VDS8PpOEvHmmfg3plZFcU/7IVSHqKPr9csvi4d4nBVsTdulc4U/1wrhFJmwhLG5 KvYGBUBfFLLc8mHQgD6GlP0bnUbldVfZIZ/OY/ArRxNuP0a0PZNpBk7oEV+TqSkewLvF 2b0/ewrCyFbHNizGEB8Hcl+AyN0JICI6J/koydBhPmaqkzKbLI1RfQYZMBZ2P67lRnfL xzvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=FaU7FWQH; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o102si3136543wrc.118.2017.08.09.04.20.34; Wed, 09 Aug 2017 04:20:34 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=FaU7FWQH; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0440E689A3E; Wed, 9 Aug 2017 14:20:06 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f48.google.com (mail-wm0-f48.google.com [74.125.82.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7A292689723 for ; Wed, 9 Aug 2017 14:19:57 +0300 (EEST) Received: by mail-wm0-f48.google.com with SMTP id t201so28612710wmt.0 for ; Wed, 09 Aug 2017 04:19:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=fNbvVdmxYdanApETpXh1yHVslLYNvvNrHSyUCCQAN1U=; b=FaU7FWQH+4kqJK8LyL3o6Df+pRPIOyGDBX4ScOupPRaHotO4BtBVURU1w7kX5gIDWx //IHtv2pfwYgSOlbbFiHow2uEQK9SUYGKyGKGhBuIJdcChtyCK3ns2/C1o9iF5S2QhFQ vMQzKDLtEuuKGP6CVav9wlp08GuYbGsHmfgwE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=fNbvVdmxYdanApETpXh1yHVslLYNvvNrHSyUCCQAN1U=; b=dfrth9CnFUDgizDgOQtIeLJyOpttiI5EMUixHsPM1rtiFV9ODyiTOJvu0p7Fsrh2Sl L7zJi60B209oq5RGNw0s0t/tVQfMBAmoDxtpgwmyGJL6OnR8wuDVnVjlOaEgHw1SWH/A x9d19uLy9RvYAz5Me40M6IUttUlzaFJZTqo60NrK6m73glNf1LWj7JJAnFl8IBVPXNGy qfovgUv61p7PdfKyAE1FTzsGUVrEgFAxfoLxlQJ3wSbgTbb2nMstkqBm1W3Kjt0LeR9C DZYcA+yDuYddJ5vo81/+5EoR0Hd8AZlzGMPReTWz4QJD+kvGL/CpXdJgQYg+0xt4mvRI TA2w== X-Gm-Message-State: AHYfb5itiwe7JQkGykYKmtscLMev5DKYGztavrumx69+nuKfw8D3r3C1 tYR4WL3HxKRbzImK X-Received: by 10.28.101.65 with SMTP id z62mr5921187wmb.136.1502277599285; Wed, 09 Aug 2017 04:19:59 -0700 (PDT) Received: from igloo.80.58.61.254 (39.red-81-40-130.staticip.rima-tde.net. [81.40.130.39]) by smtp.gmail.com with ESMTPSA id 134sm3136849wmw.24.2017.08.09.04.19.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 09 Aug 2017 04:19:58 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez-ortiz@linaro.org, sw@jkqxz.net, ffmpeg-devel@ffmpeg.org, michael@niedermayer.cc Date: Wed, 9 Aug 2017 13:19:47 +0200 Message-Id: <1502277589-12397-3-git-send-email-jorge.ramirez-ortiz@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1502277589-12397-1-git-send-email-jorge.ramirez-ortiz@linaro.org> References: <1502277589-12397-1-git-send-email-jorge.ramirez-ortiz@linaro.org> Subject: [FFmpeg-devel] [PATCHv5 2/4] libavcodec: v4l2: add pack_flags to the conversion tables X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: nicolas.dechesne@linaro.org, stanimir.varbanov@linaro.org, aballier@gentoo.org MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Alexis Ballier Extend the mapping function to use the v4l2 conversion tables. Reviewed-by: Jorge Ramirez Tested-by: Jorge Ramirez --- libavcodec/v4l2_fmt.c | 63 ++++++++++++++++++++++++++------------------------- libavcodec/v4l2_fmt.h | 17 +++++++++----- libavdevice/v4l2.c | 2 +- libavdevice/v4l2enc.c | 2 +- 4 files changed, 45 insertions(+), 39 deletions(-) diff --git a/libavcodec/v4l2_fmt.c b/libavcodec/v4l2_fmt.c index 322f595..855cc64 100644 --- a/libavcodec/v4l2_fmt.c +++ b/libavcodec/v4l2_fmt.c @@ -19,49 +19,49 @@ #include "v4l2_fmt.h" const struct v4l_fmt_map avpriv_v4l_fmt_conversion_table[] = { - //ff_fmt codec_id v4l2_fmt - { AV_PIX_FMT_YUV420P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUV420 }, - { AV_PIX_FMT_YUV420P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YVU420 }, - { AV_PIX_FMT_YUV422P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUV422P }, - { AV_PIX_FMT_YUYV422, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUYV }, - { AV_PIX_FMT_UYVY422, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_UYVY }, - { AV_PIX_FMT_YUV411P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUV411P }, - { AV_PIX_FMT_YUV410P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUV410 }, - { AV_PIX_FMT_YUV410P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YVU410 }, - { AV_PIX_FMT_RGB555LE,AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB555 }, - { AV_PIX_FMT_RGB555BE,AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB555X }, - { AV_PIX_FMT_RGB565LE,AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB565 }, - { AV_PIX_FMT_RGB565BE,AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB565X }, - { AV_PIX_FMT_BGR24, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_BGR24 }, - { AV_PIX_FMT_RGB24, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB24 }, - { AV_PIX_FMT_BGR0, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_BGR32 }, - { AV_PIX_FMT_0RGB, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB32 }, - { AV_PIX_FMT_GRAY8, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_GREY }, + /* ff_fmt codec_id v4l2_fmt pack_flags */ + { AV_PIX_FMT_YUV420P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUV420 , FF_V4L_PACK_AVPACKET }, + { AV_PIX_FMT_YUV420P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YVU420 , FF_V4L_PACK_AVPACKET }, + { AV_PIX_FMT_YUV422P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUV422P , FF_V4L_PACK_AVPACKET }, + { AV_PIX_FMT_YUYV422, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUYV , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_UYVY422, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_UYVY , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_YUV411P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUV411P , FF_V4L_PACK_AVPACKET }, + { AV_PIX_FMT_YUV410P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUV410 , FF_V4L_PACK_AVPACKET }, + { AV_PIX_FMT_YUV410P, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YVU410 , FF_V4L_PACK_AVPACKET }, + { AV_PIX_FMT_RGB555LE,AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB555 , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_RGB555BE,AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB555X , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_RGB565LE,AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB565 , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_RGB565BE,AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB565X , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_BGR24, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_BGR24 , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_RGB24, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB24 , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_BGR0, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_BGR32 , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_0RGB, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_RGB32 , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_GRAY8, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_GREY , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, #ifdef V4L2_PIX_FMT_Y16 - { AV_PIX_FMT_GRAY16LE,AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_Y16 }, + { AV_PIX_FMT_GRAY16LE,AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_Y16 , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, #endif - { AV_PIX_FMT_NV12, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_NV12 }, - { AV_PIX_FMT_NONE, AV_CODEC_ID_MJPEG, V4L2_PIX_FMT_MJPEG }, - { AV_PIX_FMT_NONE, AV_CODEC_ID_MJPEG, V4L2_PIX_FMT_JPEG }, + { AV_PIX_FMT_NV12, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_NV12 , FF_V4L_PACK_AVPACKET }, + { AV_PIX_FMT_NONE, AV_CODEC_ID_MJPEG, V4L2_PIX_FMT_MJPEG , FF_V4L_PACK_AVPACKET }, + { AV_PIX_FMT_NONE, AV_CODEC_ID_MJPEG, V4L2_PIX_FMT_JPEG , FF_V4L_PACK_AVPACKET }, #ifdef V4L2_PIX_FMT_H264 - { AV_PIX_FMT_NONE, AV_CODEC_ID_H264, V4L2_PIX_FMT_H264 }, + { AV_PIX_FMT_NONE, AV_CODEC_ID_H264, V4L2_PIX_FMT_H264 , FF_V4L_PACK_AVPACKET }, #endif #ifdef V4L2_PIX_FMT_MPEG4 - { AV_PIX_FMT_NONE, AV_CODEC_ID_MPEG4, V4L2_PIX_FMT_MPEG4 }, + { AV_PIX_FMT_NONE, AV_CODEC_ID_MPEG4, V4L2_PIX_FMT_MPEG4 , FF_V4L_PACK_AVPACKET }, #endif #ifdef V4L2_PIX_FMT_CPIA1 - { AV_PIX_FMT_NONE, AV_CODEC_ID_CPIA, V4L2_PIX_FMT_CPIA1 }, + { AV_PIX_FMT_NONE, AV_CODEC_ID_CPIA, V4L2_PIX_FMT_CPIA1 , FF_V4L_PACK_AVPACKET }, #endif #ifdef V4L2_PIX_FMT_SRGGB8 - { AV_PIX_FMT_BAYER_BGGR8, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_SBGGR8 }, - { AV_PIX_FMT_BAYER_GBRG8, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_SGBRG8 }, - { AV_PIX_FMT_BAYER_GRBG8, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_SGRBG8 }, - { AV_PIX_FMT_BAYER_RGGB8, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_SRGGB8 }, + { AV_PIX_FMT_BAYER_BGGR8, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_SBGGR8 , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_BAYER_GBRG8, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_SGBRG8 , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_BAYER_GRBG8, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_SGRBG8 , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, + { AV_PIX_FMT_BAYER_RGGB8, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_SRGGB8 , FF_V4L_PACK_AVPACKET | FF_V4L_PACK_AVFRAME }, #endif { AV_PIX_FMT_NONE, AV_CODEC_ID_NONE, 0 }, }; -uint32_t avpriv_v4l_fmt_ff2v4l(enum AVPixelFormat pix_fmt, enum AVCodecID codec_id) +uint32_t avpriv_v4l_fmt_ff2v4l(enum AVPixelFormat pix_fmt, enum AVCodecID codec_id, int pack_flags) { int i; @@ -69,7 +69,8 @@ uint32_t avpriv_v4l_fmt_ff2v4l(enum AVPixelFormat pix_fmt, enum AVCodecID codec_ if ((codec_id == AV_CODEC_ID_NONE || avpriv_v4l_fmt_conversion_table[i].codec_id == codec_id) && (pix_fmt == AV_PIX_FMT_NONE || - avpriv_v4l_fmt_conversion_table[i].ff_fmt == pix_fmt)) { + avpriv_v4l_fmt_conversion_table[i].ff_fmt == pix_fmt) && + (avpriv_v4l_fmt_conversion_table[i].pack_flags & pack_flags)) { return avpriv_v4l_fmt_conversion_table[i].v4l2_fmt; } } diff --git a/libavcodec/v4l2_fmt.h b/libavcodec/v4l2_fmt.h index 91dc502..7b4eeb1 100644 --- a/libavcodec/v4l2_fmt.h +++ b/libavcodec/v4l2_fmt.h @@ -16,8 +16,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef AVCODEC_V4L2_COMMON_H -#define AVCODEC_V4L2_COMMON_H +#ifndef AVCODEC_V4L2_FMT_H +#define AVCODEC_V4L2_FMT_H #undef __STRICT_ANSI__ //workaround due to broken kernel headers #include "config.h" @@ -33,8 +33,8 @@ #include "libavutil/imgutils.h" #include "libavutil/log.h" #include "libavutil/opt.h" -#include "avdevice.h" -#include "timefilter.h" +#include "libavdevice/avdevice.h" +#include "libavdevice/timefilter.h" #include "libavutil/parseutils.h" #include "libavutil/pixdesc.h" #include "libavutil/time.h" @@ -42,16 +42,21 @@ #include "libavutil/pixfmt.h" #include "libavcodec/avcodec.h" +/* for v4l_fmt_map.pack_flags */ +#define FF_V4L_PACK_AVPACKET (1 << 0) +#define FF_V4L_PACK_AVFRAME (1 << 1) + struct v4l_fmt_map { enum AVPixelFormat ff_fmt; enum AVCodecID codec_id; uint32_t v4l2_fmt; + int pack_flags; }; extern const struct v4l_fmt_map avpriv_v4l_fmt_conversion_table[]; -uint32_t avpriv_v4l_fmt_ff2v4l(enum AVPixelFormat pix_fmt, enum AVCodecID codec_id); +uint32_t avpriv_v4l_fmt_ff2v4l(enum AVPixelFormat pix_fmt, enum AVCodecID codec_id, int pack_flags); enum AVPixelFormat avpriv_v4l_fmt_v4l2ff(uint32_t v4l2_fmt, enum AVCodecID codec_id); enum AVCodecID avpriv_v4l_fmt_v4l2codec(uint32_t v4l2_fmt); -#endif /* AVCODEC_V4L2_COMMON_H */ +#endif /* AVCODEC_V4L2_FMT_H */ diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index 1585800..8663bb2 100644 --- a/libavdevice/v4l2.c +++ b/libavdevice/v4l2.c @@ -781,7 +781,7 @@ static int device_try_init(AVFormatContext *ctx, { int ret, i; - *desired_format = avpriv_v4l_fmt_ff2v4l(pix_fmt, ctx->video_codec_id); + *desired_format = avpriv_v4l_fmt_ff2v4l(pix_fmt, ctx->video_codec_id, FF_V4L_PACK_AVPACKET); if (*desired_format) { ret = device_init(ctx, width, height, *desired_format); diff --git a/libavdevice/v4l2enc.c b/libavdevice/v4l2enc.c index 24ca32b..c84650a 100644 --- a/libavdevice/v4l2enc.c +++ b/libavdevice/v4l2enc.c @@ -64,7 +64,7 @@ static av_cold int write_header(AVFormatContext *s1) par = s1->streams[0]->codecpar; - v4l2_pixfmt = avpriv_v4l_fmt_ff2v4l(par->format, AV_CODEC_ID_RAWVIDEO); + v4l2_pixfmt = avpriv_v4l_fmt_ff2v4l(par->format, AV_CODEC_ID_RAWVIDEO, FF_V4L_PACK_AVPACKET); 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));