Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp369767pxa; Fri, 14 Aug 2020 06:39:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxivzEbNedE+vac5dukS1NWReJRFf7HqLdP/rR6o36Xy5drcvAMY3PyE4/JjYXqt74ishIl X-Received: by 2002:aa7:d285:: with SMTP id w5mr2342823edq.125.1597412361242; Fri, 14 Aug 2020 06:39:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597412361; cv=none; d=google.com; s=arc-20160816; b=egKBHnfjhSNP3fUQ0UdUsFGwCZPshObJlbI/aL7croCFGQOxALdOUyW/AdiZuZzWxg 7OanIBteimLfQfLObwZI/E9is2gO+gVlHPXumPaCWINtyHLWXofy5VrWd68HOrtROqzF vWmm8Wxq3IcSsJ5eKeCppp3xE7Q93AqriCXRHS9Tu2TpXjOonLt1bCCycTaTUHHt2HRs 5i3AKbGnvufIgxU+PamEMZOVgpHN40FjnSw7VTOrikiQkh050rEakssyJf3YpJTQJ1fE 5/PnyuAxwfuzxWyNM51xZIvRCsqV2mXRNQpMQXWBVAXAdgAuv+4aZ/wIKwtDNk+TsPib UFLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=hjZzpY20R07Yu6Q/tAh3NSbq3Ffuwk/d7X09q0cx9oI=; b=VZ3nolbx1Fi3YxM/ia/yRfO4xgW7QLTuuPbGmXa1l+mSJUTsiALeWFqKT3p0++HM+I ijap6ITQGJLueTFXqRb0VDvm2CTNIfCqL4zrcUwFAKqknl+jl5uQyKMHaFjkkEB6EZ/U /6+PHa6sIs7u4IgQnehsSN0whmN5gEGAQRumBvW/k+vPbTQ5UqUdfpGzksLqpKzxWu5V weSqg84WZnBaa/JSF7pxFXDgL8vhrIt0u3/wL5xsURhjcwYHfDac2+jSKuk5eA0WpH2N oC0mFjN+7DvR758fqgXnHiD7vsgSfUpxDuIxs+YhUh75yDmDidCzfocLoZRqeyDXjv2+ 0UCA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t12si5266906ejj.713.2020.08.14.06.38.58; Fri, 14 Aug 2020 06:39:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728678AbgHNNgs (ORCPT + 99 others); Fri, 14 Aug 2020 09:36:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57804 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728611AbgHNNgs (ORCPT ); Fri, 14 Aug 2020 09:36:48 -0400 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6879C061384; Fri, 14 Aug 2020 06:36:47 -0700 (PDT) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: ezequiel) with ESMTPSA id 8446629A807 From: Ezequiel Garcia To: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Tomasz Figa , kernel@collabora.com, Jonas Karlman , Hans Verkuil , Alexandre Courbot , Jeffrey Kardatzke , Nicolas Dufresne , Philipp Zabel , Maxime Ripard , Paul Kocialkowski , Jernej Skrabec , Ezequiel Garcia Subject: [PATCH v3 00/19] Clean H264 stateless uAPI Date: Fri, 14 Aug 2020 10:36:15 -0300 Message-Id: <20200814133634.95665-1-ezequiel@collabora.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org One more round for the H.264 uAPI cleanup, which as discussed aims at being stabilized and promoted as a first-class public uAPI soon. The biggest change here is the rename (and implementation in drivers) of the V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT flag. The semantics of this flag are now properly specified and implemented as discussed on the mailing list, https://lkml.org/lkml/2020/8/11/888. Note that your favourite rabbit's video may omit a scaling matrix, as well as any video with a profile lower than High. So, proper testing of these patches requires a video that specifies some (non-flat) scaling matrix. It should be noted that there is already GStreamer native support for this interface, which will be part of 1.18, once it's released. I have pushed a branch porting GStreamer to support these interface changes: https://gitlab.freedesktop.org/ezequielgarcia/gst-plugins-bad/-/commits/for_h264_uapi_v4 Changelog: v2->v3: * Clarify SCALING_MATRIX present flag. * Implement optional scaling matrix on hantro, rkvdec and cedrus. * Make prediction weight table properly optional on cedrus. * Rename field reference types. v1->v2: * Clean SLICE_PARAMS documentation, which we don't expect to be part of an array anymore. * Clarify how frame-based and slice-based modes are expected to work. * Add Cedrus patches to fix field references, as requested by Jernej. * Fix wrongly removed SPS in rkvdec. * Fix rkvdec DPB reference implementation. * Fix missing Cedrus and missing control member, for prediction weight table control. * Say "raster scan" instead of "matrix" in the docs. * Drop duplicated macros and use v4l2_h264_dpb_reference for the DPB reference signalling. RFC->v1: * Split prediction weight table to a separate control. * Increase size of first_mb_in_slice field. * Cleanup DPB entry interface, to support field coding. * Increase of DPB entry pic_num field. * Move slice invariant fields to the per-frame control. Ezequiel Garcia (15): media: uapi: h264: Further clarify scaling lists order media: uapi: h264: Split prediction weight parameters media: uapi: h264: Increase size of 'first_mb_in_slice' field media: uapi: h264: Clean DPB entry interface media: uapi: h264: Increase size of DPB entry pic_num media: uapi: h264: Drop SLICE_PARAMS 'size' field media: uapi: h264: Clarify SLICE_BASED mode media: uapi: h264: Clean slice invariants syntax elements media: uapi: h264: Rename and clarify PPS_FLAG_SCALING_MATRIX_PRESENT media: hantro: Don't require unneeded H264_SLICE_PARAMS media: rkvdec: Don't require unneeded H264_SLICE_PARAMS media: rkvdec: Drop unneeded per_request driver-specific control flag media: rkvdec: Use H264_SCALING_MATRIX only when required media: hantro: Use H264_SCALING_MATRIX only when required media: cedrus: Use H264_SCALING_MATRIX only when required Jernej Skrabec (3): media: uapi: h264: Update reference lists media: cedrus: h264: Properly configure reference field media: cedrus: h264: Fix frame list construction Philipp Zabel (1): media: uapi: h264: Clarify pic_order_cnt_bit_size field .../media/v4l/ext-ctrls-codec.rst | 229 ++++++++++-------- drivers/media/v4l2-core/v4l2-ctrls.c | 28 +++ drivers/media/v4l2-core/v4l2-h264.c | 12 +- drivers/staging/media/hantro/hantro_drv.c | 5 - .../staging/media/hantro/hantro_g1_h264_dec.c | 26 +- drivers/staging/media/hantro/hantro_h264.c | 12 +- drivers/staging/media/hantro/hantro_hw.h | 2 - drivers/staging/media/rkvdec/rkvdec-h264.c | 37 ++- drivers/staging/media/rkvdec/rkvdec.c | 12 +- drivers/staging/media/rkvdec/rkvdec.h | 1 - drivers/staging/media/sunxi/cedrus/cedrus.c | 9 +- drivers/staging/media/sunxi/cedrus/cedrus.h | 1 + .../staging/media/sunxi/cedrus/cedrus_dec.c | 2 + .../staging/media/sunxi/cedrus/cedrus_h264.c | 61 +++-- include/media/h264-ctrls.h | 89 ++++--- include/media/v4l2-ctrls.h | 2 + include/media/v4l2-h264.h | 3 +- 17 files changed, 290 insertions(+), 241 deletions(-) -- 2.27.0