From patchwork Mon Jan 13 04:11:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 17312 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 408A7449E4D for ; Mon, 13 Jan 2020 06:18:12 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0E63068B0A3; Mon, 13 Jan 2020 06:18:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f196.google.com (mail-qt1-f196.google.com [209.85.160.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9A74D68B0A3 for ; Mon, 13 Jan 2020 06:18:04 +0200 (EET) Received: by mail-qt1-f196.google.com with SMTP id v25so8027368qto.7 for ; Sun, 12 Jan 2020 20:18:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=TkGXTUo3OWDz27YTWD32pxNayFmIiXb9ogGkth6URko=; b=lgqd5sP+skg/op9PCK5/75Go0TN6cwKccUfCih1gkW+rUXWJa5+WGRpY5ydQ0Sm7aA BpxCQEV1yXsBf6eN5iUp5XaYFyB1y5FP3S/CILc2FEcY9uAKp8AdH8wFia5WUe7SO0Rb Qw5LuQhHnEWSSbCWAqQwxdKNHSXdVg8vPgL6ziRELHUy06bmlkWLOA7zacSY3K8JiRQD VptMvGv7zqZ6GBTP8ePq2rRXbtwOW8jXUzIJOXbOQPsKygk91fk/Tnf3aBvx9A90sN9y lxQTiQ0upPtwFAVXncXfk1UConj6UBGVWPjHRiiKocLmUmie6rje2r6tRBfDg/gAb6R3 n7Sw== 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:mime-version :content-transfer-encoding; bh=TkGXTUo3OWDz27YTWD32pxNayFmIiXb9ogGkth6URko=; b=WaZYzNZdU/PQSE7Fh7zmsnmVBdKWgBu5r8qOs7ORJ2jBA+q45Dp0pAer+DWXLbQJFO SS1rskc0vrglwvJ33jF5/PcgzXuQUu5iOgFbJtqKk9XIJ+Z9wXrPWkJVlO8LAX9patr2 SSxfZlThiXkZR7AN0fhTYk2zMqYFuPLp01ADXPiSz/OQnfsmdUQVmOrv2E+t0GFPKHlg Jpa0XC+HXQOTIUtIzU2OfLc3yrU1+DiIEynTV3W7+ZAaqvGLVAIQxxkrwZ8Mon4iD8Jf TUqxjLDkbtVbIOJa316+tCRJBdfo5BALm0b8/Fg1Ng8c4QtJDluuU6EvjS4a6mCy96NS c2HA== X-Gm-Message-State: APjAAAX3ClJ9Qsl2GOjeczAwXVzTHrtm7U1G6FX9cbcgPxmTzmgmDn5g bwFoW4Rv5sRXu1j0DNRdvPkzx/2T X-Google-Smtp-Source: APXvYqzckTYWwQyEmKOjxLt6ZdybB5erTlfGmNw+2cpt4SXKp9Af65qIHdhCbwhHIfgYTkMF1QyHsQ== X-Received: by 2002:ac8:33ab:: with SMTP id c40mr12615738qtb.250.1578888714404; Sun, 12 Jan 2020 20:11:54 -0800 (PST) Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id u57sm5087630qth.68.2020.01.12.20.11.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 20:11:54 -0800 (PST) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 Jan 2020 23:11:25 -0500 Message-Id: <20200113041130.30126-1-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.24.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/6] doc/v4l2_m2m: Add documentation 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Andriy Gelman Signed-off-by: Andriy Gelman --- doc/decoders.texi | 12 ++++++++++++ doc/encoders.texi | 27 +++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/doc/decoders.texi b/doc/decoders.texi index f18226b3504..222f681810b 100644 --- a/doc/decoders.texi +++ b/doc/decoders.texi @@ -86,6 +86,18 @@ AVS2-P2/IEEE1857.4 video decoder wrapper. This decoder allows libavcodec to decode AVS2 streams with davs2 library. +@section v4l2m2m + +@command{ffmpeg} supports a set of v4l2m2m wrappers for interfacing with +hardware decoders. Depending on the hardware's capabilties the following decoders may be selected: +h264, hevc, mpeg1, mpeg2, mpeg4, h263, vc1, vp8, and vp9. + +To use a specifix decoder append a _v4l2m2m suffix. For example to select h264 +decoder use: +@example +ffmpeg -codec:v h264_v4l2m2m -i INPUT OUTPUT +@end example + @c man end VIDEO DECODERS @chapter Audio Decoders diff --git a/doc/encoders.texi b/doc/encoders.texi index 61e674cf968..6cb43aedbce 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -3117,6 +3117,33 @@ required to produce a stream usable with all decoders. @end table +@section v4l2m2m + +@command{ffmpeg} supports a set of v4l2m2m wrappers for interfacing with hardware encoders. +Depending on the hardware's capabilties the following encoders may be selected: +mpeg4, h263, h264, hevc, and vp8. + +To use a specific encoder append _v4l2m2m suffix. For example to select h264 use: +@example +ffmpeg -i INPUT [-pix_fmt pixfmt] -codec:v h264_v4l2m2m OUTPUT +@end example +In some cases, it may be necessary to insert a pixel format conversion with +@code{-pix_fmt} option. This is required if the pixel format of the input does not +match the format of the encoder. If there is a mismatch, @command{ffmpeg} will +exit and specify the required pixfmt to use. + +The following standard libavcodec options are supported: +@itemize +@item +@option{g} / @option{gop_size} +@item +@option{qpel} +@item +@option{qmin} +@item +@option{qmax} +@end itemize + @section vc2 SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed at From patchwork Mon Jan 13 04:11:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 17317 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 997054495C0 for ; Mon, 13 Jan 2020 06:35:57 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7AD4C68B0CC; Mon, 13 Jan 2020 06:35:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4E62168AD2C for ; Mon, 13 Jan 2020 06:35:51 +0200 (EET) Received: by mail-pl1-f196.google.com with SMTP id g6so3331993plt.2 for ; Sun, 12 Jan 2020 20:35:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KTxZpQkio0NqRQes6lXByRk7vGit0nKGAT9FVdqmW7Q=; b=k9AIzk0X6ljjX7McDFH6geznC3aCQqu89ZLf/77A2maseECRgFIh8ZKDzsfSNm6UIP spqQbwbk/tEO4EaIoDYMhX7S8f1wVXEoEi81cnzbsQpmb9Weau+37yvUkVWtsznwfYu0 +Ze7lKw0P0VWL8GzpSBpt++FS/Nub0HPfFaTC2ouTin/htH9oOK4SFtx5NqE5pmCm+GC Gn/NYbYba0Lq9zWABHTM8ZCEdn2UDZkz4GCDG3SJ7uwrNXZ6oJFLEI+LqxWJgazGfSHR cAwrq4iySNA2lunxR2VyP20lNk5EcaFV+2nqWUWnh+tH8kewv1UKHnPdRkCpnjCFCPZz 2YOg== 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:mime-version:content-transfer-encoding; bh=KTxZpQkio0NqRQes6lXByRk7vGit0nKGAT9FVdqmW7Q=; b=cgBqwIORZuRn1df46eyewLn1pAw/Hjl5YemRRkQ9yROH8VtN7SLGiX6rNSXXtzFBSh SA3ycpPaFql0L7azVouCgwdzBJvP+ApEykxlqhLS/GaeEmW8v1ckV7YH43Gp+Vaj1PyC NggutPz7Ybz5X3cO1+ArAjp47AMau3zNXV0m1oUkWknsCjNJ5KPtKzTklJUxSyMixWua cJs8mVbtSwOU7tdwfL/hbVZIaYz/zWKXDck4TdVQ2Ax5QvnWVKBmCZtuVlf7Ckpvxocb hAk0+m4kq8eJ5Rm3+4U8090sp9JFeuRT8xyhXY/4rn+3Ft4njZOx0vkEyy0ZEWpvjXPv p+HQ== X-Gm-Message-State: APjAAAU8rYhJ7scWtbknXyPu4iZ2mshc4wFbsAZaVUv72xgf+y74XmeX bYiXmF5BFnjyAGltR0g0CauYbSuZ X-Google-Smtp-Source: APXvYqwD/cZPkXNZ/oKqcX3ecWRLUl1Vwvl8zcgaJkAuYiRQ4aR0226zTOqWkBSE8Kl1rAinbhP5nA== X-Received: by 2002:a0c:f404:: with SMTP id h4mr10046221qvl.251.1578888715442; Sun, 12 Jan 2020 20:11:55 -0800 (PST) Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id u57sm5087630qth.68.2020.01.12.20.11.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 20:11:54 -0800 (PST) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 Jan 2020 23:11:26 -0500 Message-Id: <20200113041130.30126-2-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20200113041130.30126-1-andriy.gelman@gmail.com> References: <20200113041130.30126-1-andriy.gelman@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/6] avcodec:v4l2_context: Remove NULL initialization 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Andriy Gelman Signed-off-by: Andriy Gelman --- libavcodec/v4l2_context.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c index bdc2b841530..d38ff732dbf 100644 --- a/libavcodec/v4l2_context.c +++ b/libavcodec/v4l2_context.c @@ -278,7 +278,7 @@ static V4L2Buffer* v4l2_dequeue_v4l2buf(V4L2Context *ctx, int timeout) { struct v4l2_plane planes[VIDEO_MAX_PLANES]; struct v4l2_buffer buf = { 0 }; - V4L2Buffer* avbuf = NULL; + V4L2Buffer* avbuf; struct pollfd pfd = { .events = POLLIN | POLLRDNORM | POLLPRI | POLLOUT | POLLWRNORM, /* default blocking capture */ .fd = ctx_to_m2mctx(ctx)->fd, @@ -604,7 +604,7 @@ int ff_v4l2_context_enqueue_packet(V4L2Context* ctx, const AVPacket* pkt) int ff_v4l2_context_dequeue_frame(V4L2Context* ctx, AVFrame* frame, int timeout) { - V4L2Buffer* avbuf = NULL; + V4L2Buffer* avbuf; /* * timeout=-1 blocks until: @@ -624,7 +624,7 @@ int ff_v4l2_context_dequeue_frame(V4L2Context* ctx, AVFrame* frame, int timeout) int ff_v4l2_context_dequeue_packet(V4L2Context* ctx, AVPacket* pkt) { - V4L2Buffer* avbuf = NULL; + V4L2Buffer* avbuf; /* * blocks until: From patchwork Mon Jan 13 04:11:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 17314 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 59D4D449F25 for ; Mon, 13 Jan 2020 06:19:29 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3E97468B0C7; Mon, 13 Jan 2020 06:19:29 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f196.google.com (mail-qt1-f196.google.com [209.85.160.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 832B768B0AA for ; Mon, 13 Jan 2020 06:19:22 +0200 (EET) Received: by mail-qt1-f196.google.com with SMTP id n15so8031113qtp.5 for ; Sun, 12 Jan 2020 20:19:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XTGlbinFKOsJeA9c0zAvm5gRb60jOHstSSCt+WrUH70=; b=s4x8WRuyJEhduw9hxckjEswNnUzY41dUaJllbVaE9BXtkzVqzpmdB7gs7v11JYPiQy UWIsgF/LmQDeuFhN+s1r/jlIAIHQimel+Q+uVge/GckQn4Jqm0Mq/yBuPUEZuKhRmUeo 0xp6cAJEihobi8j3L9pYZQgkI8TnmiywyP3keeYrv/p/FOqXxqC6qCfVC2CfrPOBBQWN ovFCg0nAtpItx9BAG2WrB3PWirWExCir6MsFV6dznlxtrUg2tzHbcgLqCHCohA1ASH9j TYkFQYbp8LbyCRvSTdin4q4ZF4aczZPvbaYKn4SYN3FQ1JG0XDpftXYVJdM1XGELqnVq Bbfg== 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:mime-version:content-transfer-encoding; bh=XTGlbinFKOsJeA9c0zAvm5gRb60jOHstSSCt+WrUH70=; b=OavBVGkfDvl8fxECqTrPSOFJbiFWmrDdUFxo8ay+0cWCeo5pbAo0vJ/60OUlHAtNxY 484RxkqvCIv9uC0FxxbsMLPV/9AG5W3flXE6oMdlycOiR0+9mYZwAJTuwlMCH7VFLwH4 QQWGcB5MBuIDw+DWm5DxbLpBOS9UVm2i0Q+wwaExF/XFdr6mw0lAiTF9LtJvJEoRceNh rsaHVoKnsHA1pwlTN7sQ4a0SQDZV++FkA1t9I7CInn0iN5NTYGeigRMPwl9fitGEEJf0 0w8cdwhtkJoZ1lZ9FwJDQUGg9stF+tVyerAcXtmyY1+NjqpSzhLxisKdRoWX1LrYXjuu g4bw== X-Gm-Message-State: APjAAAUdZtpkDLbsmVwaSFbmHcVgDWPh+GtiO8bFQoq2B415k1kRblKH zLdNsIV9O2gLxlaJoFnNg46x4Xf7 X-Google-Smtp-Source: APXvYqyUIaG36lPcljQoZ1PqRM5c2PcHWb5RkmAD/VKinn+K/FjOn434XeWO5U4cIXrt/keHKLLZJA== X-Received: by 2002:ac8:747:: with SMTP id k7mr12666925qth.120.1578888716090; Sun, 12 Jan 2020 20:11:56 -0800 (PST) Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id u57sm5087630qth.68.2020.01.12.20.11.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 20:11:55 -0800 (PST) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 Jan 2020 23:11:27 -0500 Message-Id: <20200113041130.30126-3-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20200113041130.30126-1-andriy.gelman@gmail.com> References: <20200113041130.30126-1-andriy.gelman@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/6] avcodec/v4l2_m2m: Simplify capture buffer init check 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Andriy Gelman Before this commit s->avctx == NULL was used to infer that an encoder is being initialzed. Code readability has been improved by directly using !av_codec_is_decoder() instead. Signed-off-by: Andriy Gelman --- libavcodec/v4l2_m2m.c | 4 ++-- libavcodec/v4l2_m2m_enc.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/v4l2_m2m.c b/libavcodec/v4l2_m2m.c index 1112d71eadb..b5a9fd10347 100644 --- a/libavcodec/v4l2_m2m.c +++ b/libavcodec/v4l2_m2m.c @@ -176,7 +176,7 @@ static int v4l2_configure_contexts(V4L2m2mContext* s) } /* decoder's buffers need to be updated at a later stage */ - if (!s->avctx || !av_codec_is_decoder(s->avctx->codec)) { + if (s->avctx && !av_codec_is_decoder(s->avctx->codec)) { ret = ff_v4l2_context_init(&s->capture); if (ret) { av_log(log_ctx, AV_LOG_ERROR, "no v4l2 capture context's buffers\n"); @@ -307,7 +307,7 @@ int ff_v4l2_m2m_codec_full_reinit(V4L2m2mContext *s) } /* decoder's buffers need to be updated at a later stage */ - if (!s->avctx || !av_codec_is_decoder(s->avctx->codec)) { + if (s->avctx && !av_codec_is_decoder(s->avctx->codec)) { ret = ff_v4l2_context_init(&s->capture); if (ret) { av_log(log_ctx, AV_LOG_ERROR, "no v4l2 capture context's buffers\n"); diff --git a/libavcodec/v4l2_m2m_enc.c b/libavcodec/v4l2_m2m_enc.c index 8059e3bb48f..98b9dfc2c0b 100644 --- a/libavcodec/v4l2_m2m_enc.c +++ b/libavcodec/v4l2_m2m_enc.c @@ -312,12 +312,12 @@ static av_cold int v4l2_encode_init(AVCodecContext *avctx) capture->av_codec_id = avctx->codec_id; capture->av_pix_fmt = AV_PIX_FMT_NONE; + s->avctx = avctx; ret = ff_v4l2_m2m_codec_init(priv); if (ret) { av_log(avctx, AV_LOG_ERROR, "can't configure encoder\n"); return ret; } - s->avctx = avctx; if (V4L2_TYPE_IS_MULTIPLANAR(output->type)) v4l2_fmt_output = output->format.fmt.pix_mp.pixelformat; From patchwork Mon Jan 13 04:11:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 17313 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 46471449F25 for ; Mon, 13 Jan 2020 06:19:09 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2C05568A6C2; Mon, 13 Jan 2020 06:19:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C414F68ADB3 for ; Mon, 13 Jan 2020 06:19:01 +0200 (EET) Received: by mail-qt1-f193.google.com with SMTP id k40so8007817qtk.8 for ; Sun, 12 Jan 2020 20:19:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YH2qD5xXMXd9KWQRNnJdLAUzO7MmSKChP3VSVtptyAc=; b=LJ1b/nFdkhXMqAAXna5x8I9VM2PW8T8bwkE6L2CLZfoymmY1VxLawBbRYLhQyU7moQ rX5uvloOJ46UYpbgblNEwVxWtM4oqKwV4WgwleI30AoFZS6jUknbSQRdD8XV344fVFyW 9lxWKqV6FoWcEh4GyHLlc/1mc6OvY0zPkHVFenf0sNaeAm98BrfGuySSQQXyZv3SSXOO oQP8mGmJKjMHwIDgEwXtKSxq2ZBRoW052AT1HAtcsPpMDUXVw85rwZtwja0gh1ysQAlo WDCgcfuT5Dkt2AeCruWKDyaTK+sIOTNEzQivPHW979iH5A+gperQiQMi/5oAhltLEtfx cwyA== 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:mime-version:content-transfer-encoding; bh=YH2qD5xXMXd9KWQRNnJdLAUzO7MmSKChP3VSVtptyAc=; b=KuGpIPfsMWOD418346tACk96XYZ4i7fublccoU52VPzG6i8b3fa2aJ5J4+zRUiQEVD TCmI099EMN7R579IJ0hJKGXVafzRPDPui8KN6B5XpIinqo4JJaQFOajfwOEMsjJ8kbSb x5DKvl8rX3JBcjRhDQoZ+UF15PTA9Gzk60o8sRBEzBFbvTQcx0XRZ5FMgP4ikAkWfHOK j5fseJ4KjQrcRA0BMRX/lUs+PnBDlItFaNkBYiz/1sfsEDJYyuJPbNafT2WzxnWpIgG9 iGf41hyTGAHyvIXxIbJaqaT6U9+pAd0aD2FSp0WfM+BQUQdTnUrCRSYMYtFUiTjwlmfq 3srA== X-Gm-Message-State: APjAAAUw2hzqIFLkGauz0SOSPyd5xF2rrcFU+UhngP88mVTm1zSigjlN UvTKX1AunPURoNXWv55tbvEovMuE X-Google-Smtp-Source: APXvYqxwkK+fDBFXisOeln8xr1YtlKdrAo5t5zz270R4QpWJbKVnG/aKDMADLWdJLdHe6caMOV6Nmw== X-Received: by 2002:a05:620a:166a:: with SMTP id d10mr14062899qko.37.1578888716913; Sun, 12 Jan 2020 20:11:56 -0800 (PST) Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id u57sm5087630qth.68.2020.01.12.20.11.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 20:11:56 -0800 (PST) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 Jan 2020 23:11:28 -0500 Message-Id: <20200113041130.30126-4-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20200113041130.30126-1-andriy.gelman@gmail.com> References: <20200113041130.30126-1-andriy.gelman@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/6] avcodec/v4l2_context: Use AVERROR macro 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Andriy Gelman Signed-off-by: Andriy Gelman --- libavcodec/v4l2_context.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c index d38ff732dbf..5b8d5f225cd 100644 --- a/libavcodec/v4l2_context.c +++ b/libavcodec/v4l2_context.c @@ -207,7 +207,7 @@ static int v4l2_handle_event(V4L2Context *ctx) ret = ff_v4l2_m2m_codec_full_reinit(s); if (ret) { av_log(logger(ctx), AV_LOG_ERROR, "v4l2_m2m_codec_full_reinit\n"); - return -EINVAL; + return AVERROR(EINVAL); } goto reinit_run; } @@ -221,7 +221,7 @@ static int v4l2_handle_event(V4L2Context *ctx) ret = ff_v4l2_m2m_codec_reinit(s); if (ret) { av_log(logger(ctx), AV_LOG_ERROR, "v4l2_m2m_codec_reinit\n"); - return -EINVAL; + return AVERROR(EINVAL); } goto reinit_run; } From patchwork Mon Jan 13 04:11:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 17316 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id F3C4544AF4A for ; Mon, 13 Jan 2020 06:33:25 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B9E0868B0DA; Mon, 13 Jan 2020 06:33:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AB12168B060 for ; Mon, 13 Jan 2020 06:33:18 +0200 (EET) Received: by mail-qv1-f42.google.com with SMTP id y8so3469237qvk.6 for ; Sun, 12 Jan 2020 20:33:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XykeuKZj/nj4HBFx4cx5+/KoEWXHkYY4TQRVsbGyvZ8=; b=pr9BCmiy9ja9QGrVx6U33qbmx8rmhy7HEvPQaruuoXd1TJOkYi0meBsNkH5Bbk6ovR ovg0g452k5WtaKJBh/1VZmB4QYpFYFqKlH9fb7rc0y8W274/sIxEW+NG5jwGhcklGHGR hpGoyQlDu/rIQEwy2KJ0TMjwqqNT60xxMvoSrB9PJ1kzaJKLhgVglDAftSB4xdufZHNe bTrrC14aeKMKc9YENAHYHkQ6a+pRPUT9/gAitZ+rp2FV+E0SVTdt7atlNWezdLPLsI6O 7mERseWvZj8nGZBghgYRTejosQp9UFSgPxTtJCyWcQeAWBW1nhov+6KVju08ZXiICe6W iTqg== 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:mime-version:content-transfer-encoding; bh=XykeuKZj/nj4HBFx4cx5+/KoEWXHkYY4TQRVsbGyvZ8=; b=LqDXCQlRU8tPWaMaVoeJZZmAJ4w6pdHBAadeOvVg3qGnifrHuBBVQjn8SO5TMCL0qE Re3NAEb1S4XQ4mdwJBdcAAMpLg7r9d1aXllvJIxgE514bpV6zdzaN+XWEOsrVOY9UKBi x3R0tdzbUoyUV0leOAX565gNY4rrVIwN+qw+pdAsAWq3spjrPRX3zz/EiOTBthxmZIr5 18X1+JO4OG6laKFoiyNhmJTQyJUnkV9mcz9uX97DCIhXomcJD6qZxqe8FR68FwGEuNmm RCNwCZfHc3aczNlarc3maerxWO97+GHuVCmFvl5LrdXSq1CdbQAJtcFIPbA7FKDurtkD HBzg== X-Gm-Message-State: APjAAAXZ7Hpheu7GeJTehNviD1s0pvfC6BrsY+9eRmn8ytQULgW5+UvI RiVf8MkNX7XXhiUAi6nM198kI90A X-Google-Smtp-Source: APXvYqxoAuOsBMI27NTfNEOaaikVDhvDh2Fnk6QmewW1XLvIa6rMc9IJXOC4ggBB5G1ER+VnuKD5AA== X-Received: by 2002:ad4:514d:: with SMTP id g13mr9573252qvq.190.1578888717584; Sun, 12 Jan 2020 20:11:57 -0800 (PST) Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id u57sm5087630qth.68.2020.01.12.20.11.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 20:11:57 -0800 (PST) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 Jan 2020 23:11:29 -0500 Message-Id: <20200113041130.30126-5-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20200113041130.30126-1-andriy.gelman@gmail.com> References: <20200113041130.30126-1-andriy.gelman@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/6] avcodec/v4l2_m2m: Use consistent logging context 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Andriy Gelman Before this commit v4l2_m2m used two different logging contexts (from V4L2m2mPriv and AVCodecContext). For consistency always use AVCodecContext. Signed-off-by: Andriy Gelman --- libavcodec/v4l2_context.c | 2 +- libavcodec/v4l2_m2m.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c index 5b8d5f225cd..655e634324e 100644 --- a/libavcodec/v4l2_context.c +++ b/libavcodec/v4l2_context.c @@ -50,7 +50,7 @@ static inline V4L2m2mContext *ctx_to_m2mctx(V4L2Context *ctx) static inline AVClass *logger(V4L2Context *ctx) { - return ctx_to_m2mctx(ctx)->priv; + return ctx_to_m2mctx(ctx)->avctx; } static inline unsigned int v4l2_get_width(struct v4l2_format *fmt) diff --git a/libavcodec/v4l2_m2m.c b/libavcodec/v4l2_m2m.c index b5a9fd10347..6f62e694125 100644 --- a/libavcodec/v4l2_m2m.c +++ b/libavcodec/v4l2_m2m.c @@ -63,7 +63,7 @@ static inline int v4l2_mplane_video(struct v4l2_capability *cap) static int v4l2_prepare_contexts(V4L2m2mContext* s, int probe) { struct v4l2_capability cap; - void *log_ctx = s->priv; + void *log_ctx = s->avctx; int ret; s->capture.done = s->output.done = 0; @@ -99,7 +99,7 @@ static int v4l2_prepare_contexts(V4L2m2mContext* s, int probe) static int v4l2_probe_driver(V4L2m2mContext* s) { - void *log_ctx = s->priv; + void *log_ctx = s->avctx; int ret; s->fd = open(s->devname, O_RDWR | O_NONBLOCK, 0); @@ -135,7 +135,7 @@ done: static int v4l2_configure_contexts(V4L2m2mContext* s) { - void *log_ctx = s->priv; + void *log_ctx = s->avctx; int ret; struct v4l2_format ofmt, cfmt; @@ -204,7 +204,7 @@ error: ******************************************************************************/ int ff_v4l2_m2m_codec_reinit(V4L2m2mContext* s) { - void *log_ctx = s->priv; + void *log_ctx = s->avctx; int ret; av_log(log_ctx, AV_LOG_DEBUG, "reinit context\n"); @@ -340,11 +340,11 @@ int ff_v4l2_m2m_codec_end(V4L2m2mPriv *priv) ret = ff_v4l2_context_set_status(&s->output, VIDIOC_STREAMOFF); if (ret) - av_log(priv, AV_LOG_ERROR, "VIDIOC_STREAMOFF %s\n", s->output.name); + av_log(s->avctx, AV_LOG_ERROR, "VIDIOC_STREAMOFF %s\n", s->output.name); ret = ff_v4l2_context_set_status(&s->capture, VIDIOC_STREAMOFF); if (ret) - av_log(priv, AV_LOG_ERROR, "VIDIOC_STREAMOFF %s\n", s->capture.name); + av_log(s->avctx, AV_LOG_ERROR, "VIDIOC_STREAMOFF %s\n", s->capture.name); ff_v4l2_context_release(&s->output); @@ -373,7 +373,7 @@ int ff_v4l2_m2m_codec_init(V4L2m2mPriv *priv) continue; snprintf(node, sizeof(node), "/dev/%s", entry->d_name); - av_log(priv, AV_LOG_DEBUG, "probing device %s\n", node); + av_log(s->avctx, AV_LOG_DEBUG, "probing device %s\n", node); strncpy(s->devname, node, strlen(node) + 1); ret = v4l2_probe_driver(s); if (!ret) @@ -383,13 +383,13 @@ int ff_v4l2_m2m_codec_init(V4L2m2mPriv *priv) closedir(dirp); if (ret) { - av_log(priv, AV_LOG_ERROR, "Could not find a valid device\n"); + av_log(s->avctx, AV_LOG_ERROR, "Could not find a valid device\n"); memset(s->devname, 0, sizeof(s->devname)); return ret; } - av_log(priv, AV_LOG_INFO, "Using device %s\n", node); + av_log(s->avctx, AV_LOG_INFO, "Using device %s\n", node); return v4l2_configure_contexts(s); } From patchwork Mon Jan 13 04:11:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 17315 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 2A30A44A0AA for ; Mon, 13 Jan 2020 06:20:13 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1641468B0D6; Mon, 13 Jan 2020 06:20:13 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f195.google.com (mail-qk1-f195.google.com [209.85.222.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 49763689CCA for ; Mon, 13 Jan 2020 06:20:06 +0200 (EET) Received: by mail-qk1-f195.google.com with SMTP id r14so7352095qke.13 for ; Sun, 12 Jan 2020 20:20:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aITdqUrv+HHX1TxKMbbGiSeUUcms0GwNj/aephKdmRw=; b=NYZY3KiIdT62ePsRSJI+MeQ5ESxAjEwAXOcPSQpSBBLreXkO3JZwo/qvK4IURBD2ib wsMFNrVqKwvAYhMkuPujrjxhxESp/vLlI6l8kc338YCOYZhN/e42xE3LITMk4lIijL9D /4rSqGin9naHKfqOjU94gbGWuSK+KCCowYZQZGtneWVuQdUr7CdQUzAU3PldJO0yI4bS cZz//7EBH6MFxQT6Ucvttgr7miLMNqwBW7tvbQ7XfJmMIhPPQTQp2xm+SruPhIPKfu7Z HgBO6e1sVZmuW90BuaaKfEATquGWJpRG1EV5ZEfn9saMvzZh1ID0g8kwvjHkdl7IfNMA PsaQ== 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:mime-version:content-transfer-encoding; bh=aITdqUrv+HHX1TxKMbbGiSeUUcms0GwNj/aephKdmRw=; b=pj0gvHZ/z3zmoWJr9abS2xhyIVrXD5A4yX2NxQzXrdJ6/BJAeIbba8J4p5fGPZ3IEY pN+GCTt7vWN7WF0iKsayxfl01Uy4onbN3duNrTm7GoF6CCTgY9pVTyUOjSqrReUBf08H 4ETk2L3jkZwz7k1QBpkpcsmJV9puVlXbMobMBcLHDOPy97TH5bwB/xoUtjflp2qyvudW Oup90B+EMWGysZF+cnp9R/elhknJvS6QZhRE9nS5wrFe1cbudB1uzqUASiCcUCUKpx8z hTdjQI+Jg0aLZOjQmsYwMpFXL8/LX7eb3xBSZqLDDvCrwBeCtG67VyaiAWe8fTVifaUm 9m6Q== X-Gm-Message-State: APjAAAVCPEtTzUv3H0dTfIuHfgvzSnAZgfIt83eUZnLc7mAi65rxGX6t z4vB4YFY/7q391REXMoRLAiwnbYQ X-Google-Smtp-Source: APXvYqynUEHIAK9dkFFljNKg27DjNvjtvhdzZpXFl8nxK1QdN112sQRqNeQv1qPAO0reHRBNyyQXVw== X-Received: by 2002:ae9:e901:: with SMTP id x1mr13506705qkf.117.1578888718282; Sun, 12 Jan 2020 20:11:58 -0800 (PST) Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id u57sm5087630qth.68.2020.01.12.20.11.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 20:11:58 -0800 (PST) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Sun, 12 Jan 2020 23:11:30 -0500 Message-Id: <20200113041130.30126-6-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20200113041130.30126-1-andriy.gelman@gmail.com> References: <20200113041130.30126-1-andriy.gelman@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 6/6] avcodec/v4l2_m2m: Cosmetics 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Andriy Gelman Change pointer symbol position. Signed-off-by: Andriy Gelman --- libavcodec/v4l2_m2m.c | 10 +++++----- libavcodec/v4l2_m2m_dec.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libavcodec/v4l2_m2m.c b/libavcodec/v4l2_m2m.c index 6f62e694125..d0bd4cd3d25 100644 --- a/libavcodec/v4l2_m2m.c +++ b/libavcodec/v4l2_m2m.c @@ -60,7 +60,7 @@ static inline int v4l2_mplane_video(struct v4l2_capability *cap) return 0; } -static int v4l2_prepare_contexts(V4L2m2mContext* s, int probe) +static int v4l2_prepare_contexts(V4L2m2mContext *s, int probe) { struct v4l2_capability cap; void *log_ctx = s->avctx; @@ -97,7 +97,7 @@ static int v4l2_prepare_contexts(V4L2m2mContext* s, int probe) return AVERROR(EINVAL); } -static int v4l2_probe_driver(V4L2m2mContext* s) +static int v4l2_probe_driver(V4L2m2mContext *s) { void *log_ctx = s->avctx; int ret; @@ -133,7 +133,7 @@ done: return ret; } -static int v4l2_configure_contexts(V4L2m2mContext* s) +static int v4l2_configure_contexts(V4L2m2mContext *s) { void *log_ctx = s->avctx; int ret; @@ -202,7 +202,7 @@ error: * V4L2 M2M Interface * ******************************************************************************/ -int ff_v4l2_m2m_codec_reinit(V4L2m2mContext* s) +int ff_v4l2_m2m_codec_reinit(V4L2m2mContext *s) { void *log_ctx = s->avctx; int ret; @@ -335,7 +335,7 @@ static void v4l2_m2m_destroy_context(void *opaque, uint8_t *context) int ff_v4l2_m2m_codec_end(V4L2m2mPriv *priv) { - V4L2m2mContext* s = priv->context; + V4L2m2mContext *s = priv->context; int ret; ret = ff_v4l2_context_set_status(&s->output, VIDIOC_STREAMOFF); diff --git a/libavcodec/v4l2_m2m_dec.c b/libavcodec/v4l2_m2m_dec.c index 83d506b6b09..d666edffe46 100644 --- a/libavcodec/v4l2_m2m_dec.c +++ b/libavcodec/v4l2_m2m_dec.c @@ -217,7 +217,7 @@ static av_cold int v4l2_decode_init(AVCodecContext *avctx) static av_cold int v4l2_decode_close(AVCodecContext *avctx) { V4L2m2mPriv *priv = avctx->priv_data; - V4L2m2mContext* s = priv->context; + V4L2m2mContext *s = priv->context; av_packet_unref(&s->buf_pkt); return ff_v4l2_m2m_codec_end(priv); }