From patchwork Thu Jan 16 04:14:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 17380 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 4A30C447963 for ; Thu, 16 Jan 2020 06:41:35 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2698568B03C; Thu, 16 Jan 2020 06:41:35 +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 1E51468AFFB for ; Thu, 16 Jan 2020 06:41:28 +0200 (EET) Received: by mail-qk1-f195.google.com with SMTP id w127so17957986qkb.11 for ; Wed, 15 Jan 2020 20:41:28 -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=XMMbFrQXczj0h/XEAyZJOvMUbyLtlHBmsMhdt0o0KJU=; b=cB7oAvzWvLJ+IgfoVvQ864q8EiBewKLbo/1r5umWNliXMRtQHsEXZIT4kAONIpYxIk 39JNqmbYL+X+f5+OOmAKcBoDUAPD9Wxc0Oh0XLUb1eA5tVAZBHRnhHZ/9cwmkwivqaUw BiqoVs3XbxG3ygEUXOUAs2Vc7wYqM1i5y0nbgxIAtpKTZ0FriJBdQv0Zk5X1hCEpein4 6xRZMZtxuDZp82mxusLWQ+Ne3pXoUMbOL0AN+UUCPFyf76gooaVtP/WhD4rnJaSNfI3q eoqzvNEESpPIHuB0QxCz3iFOoGuiUmO+UwUX2fN109JSsdxLDezLD/sK13ceqWr8QTxf CaWQ== 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=XMMbFrQXczj0h/XEAyZJOvMUbyLtlHBmsMhdt0o0KJU=; b=OjftU/4MIhpnZ25Vim9nPf9FZ1I/fpeH+RvimLVovCPfWt7l3nycPh4WXq5521hzFn js/JD+dfgoUwdfrAXTuCaHrFesVb0Dp96GR36WvQNY72GFgV7GP9NTx40PJ0YthzTyvA 3q38FvdGAOm1ZhfG1AlZNFA9nAypvfT5GXkx2XKPxaVv5dy5hjfb5x/NO+CSndK4uXbp bkCS/KZ0EMZdbSoOS1sUQjnVBHtNDO75WBVef5PWesivOh2EMqS0aa8IgOclQcctgrjr x3VwqvH9tol0wxscyTJRQl0vYvJ/gopOR7JAD4cSA6ewRWhr5mDTPFUwRJpXAmKcvu5r i6/Q== X-Gm-Message-State: APjAAAUts2LujvKt6NzbKx+BWGkJjDRItpfg6uFPGyH7AvGuXzKtfXJM QKUwGTpe7EeXORhE1SMKdKCfkYfe X-Google-Smtp-Source: APXvYqxRTfpE4zPeSWeFDPqBntN5gyvn2nYYf9N1Fa/H22t8rI13Yh5GkBvvfpTBr7xCNlu2XTtZQg== X-Received: by 2002:a37:2751:: with SMTP id n78mr31905754qkn.177.1579148121165; Wed, 15 Jan 2020 20:15:21 -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 m68sm9481709qke.17.2020.01.15.20.15.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jan 2020 20:15:20 -0800 (PST) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Wed, 15 Jan 2020 23:14:51 -0500 Message-Id: <20200116041451.31552-1-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] 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 | 27 +++++++++++++++++++++++++++ doc/encoders.texi | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/doc/decoders.texi b/doc/decoders.texi index f18226b3504..7827a055408 100644 --- a/doc/decoders.texi +++ b/doc/decoders.texi @@ -86,6 +86,33 @@ AVS2-P2/IEEE1857.4 video decoder wrapper. This decoder allows libavcodec to decode AVS2 streams with davs2 library. +@section v4l2m2m + +libavcodec 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 + +The following options are supported: +@table @option +@item num_output_buffers +Number of memory mapped buffers to store the input packets. +This value is only a suggestion to the hardware device. The device will attempt to +allocate the number of buffers, but the actual value may be smaller/larger and +ultimately depends on the device. The default for the option is 16, minimum is +6, and any large value (representable by an int) is accepted for the max. + +@item num_capture_buffers +Number of memory mapped buffers to store the decompressed frames. The allocation +description is the same as above. Default is 20, minimum is 20, and any large +value (representable by an int) is accepted for the max. +@end table + @c man end VIDEO DECODERS @chapter Audio Decoders diff --git a/doc/encoders.texi b/doc/encoders.texi index 61e674cf968..a600e76b1b9 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -3117,6 +3117,48 @@ required to produce a stream usable with all decoders. @end table +@section v4l2m2m + +libavcodec supports a set of v4l2m2m wrappers for interfacing with hardware encoders. +Depending on the hardware's capabilities 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}. This is required if the pixel format of the input does not +match the format of the encoder. If there is a mismatch, libavcodec will +exit and specify the required pixfmt to use. + +The following options are supported: +@table @option +@item num_output_buffers +Number of memory mapped buffers to store the input frames. +This value is only a suggestion to the hardware device. The device will attempt to +allocate the number of buffers, but the actual value may be smaller/larger and +ultimately depends on the device. The default for the option is 16, minimum is +6, and any large value (representable by an int) is accepted for the max. + +@item num_capture_buffers +Number of memory mapped buffers to store the compressed packets. The allocation +description is the same as above. Default is 4, minimum is 4, and any large +value (representable by an int) is accepted for the max. +@end table + +Standard libavcodec options that can be set are: +@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