From patchwork Fri Mar 31 09:06:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Smitha T Murthy X-Patchwork-Id: 9655735 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 35AE3602BD for ; Fri, 31 Mar 2017 09:06:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 273A0285DB for ; Fri, 31 Mar 2017 09:06:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1B58C28634; Fri, 31 Mar 2017 09:06:30 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5A281285DB for ; Fri, 31 Mar 2017 09:06:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-reply-to:Message-id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=Gyf1Y0eCGMeGGHhbpTNNt6b4h/xwwkMrZr490I7D5r8=; b=IX1IdWAojhYlLBgfHfACvr+2lH J/wkp1JGtgtw58Ujo1Ie+Qb5LBAS/55l6ITOMfC6FzAw0z9tCv+bVc/kklFRpUp7FZ0y9u6LpTmZM 7Pcyh00fJLXejXpPZayWHTbiacA2QRRyV8Y6S6bzntvSrO0mhBQOm6O9NhQDKySiJGty2Rohpn2Ve 3yaZvTeFKRyvadN1pigpdDiHa2zc0IWPUMkUjd7I64/Z0gz8dtQA1iQqeExXQQBsxTGJb/THFZngb +mb1OJFI1Yt1Zpa3KXN5ivh/MCDgjxrp33Eoi3oTV1c2b1xx+OS5Vys8C5x1Y2JbN1DvRHlcZFsdt EcOYJO7Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1ctsVo-0007Ar-1c; Fri, 31 Mar 2017 09:06:28 +0000 Received: from mailout1.samsung.com ([203.254.224.24] helo=epoutp01.samsung.com) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1ctsUe-0004d2-PE for linux-arm-kernel@lists.infradead.org; Fri, 31 Mar 2017 09:05:19 +0000 Received: from epcas5p2.samsung.com (unknown [182.195.41.40]) by epoutp01.samsung.com (KnoxPortal) with ESMTP id 20170331090456epoutp01dd03f0dec659f49e668149265e43c7f9~w7B9bKfR90759607596epoutp01Z; Fri, 31 Mar 2017 09:04:56 +0000 (GMT) Received: from epsmges5p5.samsung.com (unknown [182.195.42.89]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20170331090455epcas5p3aa5e090b84ca6b3d056fce2e1ed56f56~w7B9HqfFM2465024650epcas5p3V; Fri, 31 Mar 2017 09:04:55 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmges5p5.samsung.com (EPCPMTA) with SMTP id B8.65.06094.7BB1ED85; Fri, 31 Mar 2017 18:04:55 +0900 (KST) Received: from epcpsbgm2new.samsung.com (u27.gpu120.samsung.co.kr [203.254.230.27]) by epcas5p4.samsung.com (KnoxPortal) with ESMTP id 20170331090455epcas5p4fef42ffa06d0050130c6e13b91da3a6f~w7B8pJu6z3109031090epcas5p4c; Fri, 31 Mar 2017 09:04:55 +0000 (GMT) X-AuditID: b6c32a59-f79166d0000017ce-bb-58de1bb71f06 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2new.samsung.com (EPCPMTA) with SMTP id 78.79.05013.7BB1ED85; Fri, 31 Mar 2017 18:04:55 +0900 (KST) Received: from smitha-fedora.sisodomain.com ([107.108.83.49]) by mmp2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0ONO0041F976Z3C0@mmp2.samsung.com>; Fri, 31 Mar 2017 18:04:55 +0900 (KST) From: Smitha T Murthy To: linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [Patch v3 11/11] Documention: v4l: Documentation for HEVC CIDs Date: Fri, 31 Mar 2017 14:36:40 +0530 Message-id: <1490951200-32070-12-git-send-email-smitha.t@samsung.com> X-Mailer: git-send-email 1.7.2.3 In-reply-to: <1490951200-32070-1-git-send-email-smitha.t@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFIsWRmVeSWpSXmKPExsWy7bCmuu526XsRBg++alncWneO1eLI2qtM FjNPtLNanD+/gd3ibNMbdotNj6+xWlzeNYfNomfDVlaLtUfuslss2/SHyWLR1i/sFoffABXf 3bON0YHXY9OqTjaPzUvqPfq2rGL0+LxJzuPKkUb2ANYoLpuU1JzMstQifbsEroz/kyewFVxL rVjes5i9gfFxYBcjJ4eEgInEl5/bGCFsMYkL99azdTFycQgJLGWUuD73EwuE084kcfzmFGaY jrUdl1khEnMYJY4838QE4fxnlNgyYQ9YFZuAjsS396fZQGwRgVSJV+vWgnUwC/xglLj17QYL SEJYwF1ix7F7YA0sAqoSbzdvYwexeQVcJXpn7WWDWKcg8erGWrA4J1D89beFYAdKCCxil5h1 djdQggPIkZXYdADqPBeJd6vWskDYwhKvjm9hh7ClJf4uvcUI0dvMKDF3WzNU0QRGiZWtpRC2 vcSBK3PA4swCfBK9v58wQcznlehoE4Io8ZDY/G8vNMAcJe7u/cMO8f0MRone27+YJzDKLGBk WMUollpQnJueWmxaYKpXnJhbXJqXrpecn7uJEZwCtCJ3MF6ZGXSIUYCDUYmH98f9uxFCrIll xZW5hxglOJiVRHiXsNyLEOJNSaysSi3Kjy8qzUktPsQozcGiJM6rsfJahJBAemJJanZqakFq EUyWiYNTqoFxqnGYKt/0nyb1h/TMF1Zay4otfnZno1/ivkeu8/Pa6o282IUOfHo1U7m3r2+7 GbfqM58zyy/0tVdFXItzTem9yfJo3nbLiTcbM/jXMG08w3JLi+fHU9asBSKF80SvRgaaHupY u5Ofr0//2bl9gZ0vLyod3P1O2sCBbfnesysv9LfOF998d8IbJZbijERDLeai4kQA9D2J+/0C AAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupmkeLIzCtJLcpLzFFi42I5/e+xoO526XsRBhNbeSxurTvHanFk7VUm i5kn2lktzp/fwG5xtukNu8Wmx9dYLS7vmsNm0bNhK6vF2iN32S2WbfrDZLFo6xd2i8NvgIrv 7tnG6MDrsWlVJ5vH5iX1Hn1bVjF6fN4k53HlSCN7AGuUm01GamJKapFCal5yfkpmXrqtUmiI m66FkkJeYm6qrVKErm9IkJJCWWJOKZBnZIAGHJwD3IOV9O0S3DL+T57AVnAttWJ5z2L2BsbH gV2MnBwSAiYSazsus0LYYhIX7q1n62Lk4hASmMUo0bPtJTOE08gksaK5lwWkik1AR+Lb+9Ns ILaIQKrE2q3nWUGKmAV+MEo0HXjJDpIQFnCX2HHsHjOIzSKgKvF28zawOK+Aq0TvrL1sEOsU JF7dWAsW5wSKv/62ECwuJOAi8er9UsYJjLwLGBlWMUqkFiQXFCel5xrlpZbrFSfmFpfmpesl 5+duYgRHxDPpHYyHd7kfYhTgYFTi4d0heDdCiDWxrLgy9xCjBAezkgjvEpZ7EUK8KYmVValF +fFFpTmpxYcYTYEOm8gsJZqcD4zWvJJ4QxNzE3NjAwtzS0sTIyVx3sbZz8KFBNITS1KzU1ML Uotg+pg4OKUaGKcZ5L95snBBwMr5U77O1LEyFLnyvWfitQNlv5ZO3OXgVm263r9A/MlEzj4v xv0c3v3Tq7glDucX72hZKPhxkfz0oJdVjL/8HrMltvxZMON026z8lGWh4SxpvRatkzb1J086 /obBduMfxg+8bn/bbtV9Tiw+9yylgsOapeLstWDjLct5XJKXWSqxFGckGmoxFxUnAgBCNsaO ngIAAA== X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170331090455epcas5p4fef42ffa06d0050130c6e13b91da3a6f X-Msg-Generator: CA X-Sender-IP: 203.254.230.27 X-Local-Sender: =?UTF-8?B?U21pdGhhIFQgTXVydGh5G1NTSVItVHVybiBLZXkgU29sdXRp?= =?UTF-8?B?b25zG+yCvOyEseyghOyekBtMZWFkIEVuZ2luZWVy?= X-Global-Sender: =?UTF-8?B?U21pdGhhIFQgTXVydGh5G1NTSVItVHVybiBLZXkgU29sdXRp?= =?UTF-8?B?b25zG1NhbXN1bmcgRWxlY3Ryb25pY3MbTGVhZCBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG1NXQUhRG0MxMElEMDdJRDAxMDk5Nw==?= CMS-TYPE: 105P X-CMS-RootMailID: 20170331090455epcas5p4fef42ffa06d0050130c6e13b91da3a6f X-RootMTR: 20170331090455epcas5p4fef42ffa06d0050130c6e13b91da3a6f References: <1490951200-32070-1-git-send-email-smitha.t@samsung.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170331_020517_244026_11D89B0C X-CRM114-Status: GOOD ( 14.68 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: a.hajda@samsung.com, pankaj.dubey@samsung.com, kamil@wypas.org, krzk@kernel.org, jtp.park@samsung.com, kyungmin.park@samsung.com, s.nawrocki@samsung.com, Smitha T Murthy , mchehab@kernel.org, m.szyprowski@samsung.com MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Added V4l2 controls for HEVC encoder Signed-off-by: Smitha T Murthy --- Documentation/media/uapi/v4l/extended-controls.rst | 355 +++++++++++++++++++++ 1 file changed, 355 insertions(+) diff --git a/Documentation/media/uapi/v4l/extended-controls.rst b/Documentation/media/uapi/v4l/extended-controls.rst index abb1057..c2f3c5e 100644 --- a/Documentation/media/uapi/v4l/extended-controls.rst +++ b/Documentation/media/uapi/v4l/extended-controls.rst @@ -1960,6 +1960,361 @@ enum v4l2_vp8_golden_frame_sel - 1, 2 and 3 corresponding to encoder profiles 0, 1, 2 and 3. +HEVC Control Reference +--------------------- + +The HEVC controls include controls for encoding parameters of HEVC video +codec. + + +.. _hevc-control-id: + +HEVC Control IDs +^^^^^^^^^^^^^^^ + +``V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP`` + Minimum quantization parameter for HEVC. + +``V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP`` + Maximum quantization parameter for HEVC. + +``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP`` + Quantization parameter for an I frame for HEVC. + +``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP`` + Quantization parameter for a P frame for HEVC. + +``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP`` + Quantization parameter for a B frame for HEVC. + +``V4L2_CID_MPEG_VIDEO_HEVC_HIERARCHICAL_QP`` + HIERARCHICAL_QP allows host to specify the quantization parameter values + for each temporal layer through HIERARCHICAL_QP_LAYER. This is valid only + if HIERARCHICAL_CODING_LAYER is greater than 1. + +.. _v4l2-hevc-hierarchical-coding-type: + +``V4L2_CID_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_TYPE`` + (enum) + +enum v4l2_mpeg_video_hevc_hier_coding_type - + Selects the hierarchical coding type for encoding. Possible values are: + +.. raw:: latex + + \begin{adjustbox}{width=\columnwidth} + +.. tabularcolumns:: |p{11.0cm}|p{10.0cm}| + +.. flat-table:: + :header-rows: 0 + :stub-columns: 0 + + * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B`` + - Use the B frame for hierarchical coding. + * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P`` + - Use the P frame for hierarchical coding. + +.. raw:: latex + + \end{adjustbox} + + +``V4L2_CID_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_LAYER`` + Selects the hierarchical coding layer. In normal encoding + (non-hierarchial coding), it should be zero. Possible values are 0 ~ 6. + 0 indicates HIERARCHICAL CODING LAYER 0, 1 indicates HIERARCHICAL CODING + LAYER 1 and so on. + +``V4L2_CID_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_LAYER_QP`` + Indicates the hierarchical coding layer quantization parameter. + For HEVC it can have a value of 0-51. Hence in the control value passed + the LSB 16 bits will indicate the quantization parameter. The MSB 16 bit + will pass the layer(0-6) it is meant for. + +.. _v4l2-hevc-profile: + +``V4L2_CID_MPEG_VIDEO_HEVC_PROFILE`` + (enum) + +enum v4l2_mpeg_video_hevc_profile - + Select the desired profile for HEVC encoder. + +.. raw:: latex + + \begin{adjustbox}{width=\columnwidth} + +.. tabularcolumns:: |p{11.0cm}|p{10.0cm}| + +.. flat-table:: + :header-rows: 0 + :stub-columns: 0 + + * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN`` + - Main profile. + * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE`` + - Main still picture profile. + +.. raw:: latex + + \end{adjustbox} + + +.. _v4l2-hevc-level: + +``V4L2_CID_MPEG_VIDEO_HEVC_LEVEL`` + (enum) + +enum v4l2_mpeg_video_hevc_level - + Select the desired level for HEVC encoder. + +.. raw:: latex + + \begin{adjustbox}{width=\columnwidth} + +.. tabularcolumns:: |p{11.0cm}|p{10.0cm}| + +.. flat-table:: + :header-rows: 0 + :stub-columns: 0 + + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_1`` + - Level 1.0 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_2`` + - Level 2.0 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1`` + - Level 2.1 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_3`` + - Level 3.0 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1`` + - Level 3.1 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_4`` + - Level 4.0 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1`` + - Level 4.1 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_5`` + - Level 5.0 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1`` + - Level 5.1 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2`` + - Level 5.2 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_6`` + - Level 6.0 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1`` + - Level 6.1 + * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2`` + - Level 6.2 + +.. raw:: latex + + \end{adjustbox} + + +``V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION`` + Indicates the number of evenly spaced subintervals, called ticks, within + one modulo time. One modulo time represents the fixed interval of one + second. This is a 16bit unsigned integer and has a maximum value upto + 0xffff. + +``V4L2_CID_MPEG_VIDEO_HEVC_TIER_FLAG`` + TIER_FLAG specifies tier information of the HEVC encoded picture. Tier were + made to deal with applications that differ in terms of maximum bit rate. + Setting the flag to 0 selects HEVC tier_flag as Main tier and setting this + flag to 1 indicates High tier. High tier is for very demanding applications + +``V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH`` + Selects HEVC maximum coding unit depth. + +``V4L2_CID_MPEG_VIDEO_HEVC_REF_NUMBER_FOR_PFRAMES`` + Selects number of P reference picture required for HEVC encoder. + P-Frame can use 1 or 2 frames for reference. + +``V4L2_CID_MPEG_VIDEO_HEVC_LF`` + Indicates loop filtering. Control ID 0 indicates loop filtering + is enabled and when set to 1 indicates no filter. + +``V4L2_CID_MPEG_VIDEO_HEVC_LF_SLICE_BOUNDARY`` + Selects whether to apply the loop filter across the slice boundary or not. + If the value is 0, loop filter will not be applied across the slice boundary. + If the value is 1, loop filter will be applied across the slice boundary. + +``V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2`` + Selects HEVC loop filter beta offset. The valid range is [-6, +6]. + This could be a negative value in the 2's complement expression. + +``V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2`` + Selects HEVC loop filter tc offset. The valid range is [-6, +6]. + This could be a negative value in the 2's complement expression. + +.. _v4l2-hevc-refresh-type: + +``V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE`` + (enum) + +enum v4l2_mpeg_video_hevc_hier_refresh_type - + Selects refresh type for HEVC encoder. + Host has to specify the period into + HEVC_REFRESH_PERIOD. + +.. raw:: latex + + \begin{adjustbox}{width=\columnwidth} + +.. tabularcolumns:: |p{11.0cm}|p{10.0cm}| + +.. flat-table:: + :header-rows: 0 + :stub-columns: 0 + + * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE`` + - Use the B frame for hierarchical coding. + * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA`` + - Use CRA(Clean Random Access Unit) picture encoding. + * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR`` + - Use IDR picture encoding. + +.. raw:: latex + + \end{adjustbox} + + +``V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD`` + Selects the refresh period for HEVC encoder. + This specifies the number of I picture between two CRA/IDR pictures. + This is valid only if REFRESH_TYPE is not 0. + +``V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU`` + Indicates HEVC lossless encoding. Setting it to 0 disables lossless + encoding. Setting it to 1 enables lossless encoding. + +``V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED`` + Indicates constant intra prediction for HEVC encoder. Specifies the + constrained intra prediction in which intra largest coding unit(LCU) + prediction is performed by using residual data and decoded samples of + neighboring intra LCU only. Setting it to 1 enables this control ID and + setting it to 0 disables the control ID. + +``V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT`` + Indicates wavefront parallel processing for HEVC encoder. Setting it to 0 + disables the control ID and setting it to 1 enables the wavefront parallel + processing. + +``V4L2_CID_MPEG_VIDEO_HEVC_SIGN_DATA_HIDING`` + Setting it to 1 indicates sign data hiding for HEVC encoder. Setting it to + 0 disables the control ID. + +``V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB`` + Setting the control ID to 1 enables general picture buffers for HEVC + encoder. + +``V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID`` + Indicates temporal identifier specified as temporal_id in + nal_unit_header_svc_extension() for HEVC encoder which is enabled by + setting the control ID to 1. + +``V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING`` + Indicates bi-linear interpolation is conditionally used in the intra + prediction filtering process in the CVS when set to 1. Indicates bi-linear + interpolation is not used in the CVS when set to 0. + +``V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1`` + Indicates max number of merge candidate motion vectors. + Values are from zero to four. + +``V4L2_CID_MPEG_VIDEO_HEVC_ADAPTIVE_RC_DARK`` + Indicates HEVC dark region adaptive rate control. + +``V4L2_CID_MPEG_VIDEO_HEVC_ADAPTIVE_RC_SMOOTH`` + Indicates HEVC smooth region adaptive rate control. + +``V4L2_CID_MPEG_VIDEO_HEVC_ADAPTIVE_RC_STATIC`` + Indicates HEVC static region adaptive rate control. + +``V4L2_CID_MPEG_VIDEO_HEVC_ADAPTIVE_RC_ACTIVITY`` + Indicates HEVC activity region adaptive rate control. + +``V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT`` + Indicates intra prediction unit split for HEVC Encoder. Setting it to 1 + disables the feature. Setting it to 1 enables the feature. + +``V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION`` + Indicates temporal motion vector prediction for HEVC encoder. Setting it to + 0 enables the prediction. Setting it to 1 disables the prediction. + +``V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE`` + Specifies if HEVC generates a stream with a size of length field instead of + start code pattern. The size of the length field is configurable among 1,2 + or 4 thorugh the SIZE_OF_LENGTH_FIELD. It is not applied at SEQ_START. + Setting it to 0 disables the control ID. Setting it to 1 will enables + the control ID. + +``V4L2_CID_MPEG_VIDEO_HEVC_QP_INDEX_CR`` + Indicates the quantization parameter CR index. + +``V4L2_CID_MPEG_VIDEO_HEVC_QP_INDEX_CB`` + Indicates the quantization parameter CB index. + +.. _v4l2-hevc-size-of-length-field: + +``V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD`` +(enum) + +enum v4l2_mpeg_video_hevc_size_of_length_field - + Indicates the size of length field. + This is valid when encoding WITHOUT_STARTCODE_ENABLE is enabled. + +.. raw:: latex + + \begin{adjustbox}{width=\columnwidth} + +.. tabularcolumns:: |p{11.0cm}|p{10.0cm}| + +.. flat-table:: + :header-rows: 0 + :stub-columns: 0 + + * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_0`` + - Generate start code pattern (Normal). + * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_1`` + - Generate size of length field instead of start code pattern and length is 1. + * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_2`` + - Generate size of length field instead of start code pattern and length is 2. + * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_4`` + - Generate size of length field instead of start code pattern and length is 4. + +.. raw:: latex + + \end{adjustbox} + +``V4L2_CID_MPEG_VIDEO_HEVC_PREPEND_SPSPPS_TO_IDR`` + Indicates whether to generate SPS and PPS at every IDR. Setting it to 0 + disables it and setting it to one enables the feature. + +``V4L2_CID_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_LAYER_CH`` + Indicates hierarchical coding layer change for HEVC encoder. + +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER0_BITRATE`` + Indicates bit rate for hierarchical coding layer 0 for HEVC encoder. + +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER1_BITRATE`` + Indicates bit rate for hierarchical coding layer 1 for HEVC encoder. + +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER2_BITRATE`` + Indicates bit rate for hierarchical coding layer 2 for HEVC encoder. + +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER3_BITRATE`` + Indicates bit rate for hierarchical coding layer 3 for HEVC encoder. + +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER4_BITRATE`` + Indicates bit rate for hierarchical coding layer 4 for HEVC encoder. + +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER5_BITRATE`` + Indicates bit rate for hierarchical coding layer 5 for HEVC encoder. + +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER6_BITRATE`` + Indicates bit rate for hierarchical coding layer 6 for HEVC encoder. + + .. _camera-controls: Camera Control Reference