diff mbox series

[v2,3/3] media: docs: dev-stateless-decoder: Document frame type flags

Message ID 20220116185556.10657-4-digetx@gmail.com
State Changes Requested
Headers show
Series Add V4L stateless video decoder API support to NVIDIA Tegra driver | expand

Commit Message

Dmitry Osipenko Jan. 16, 2022, 6:55 p.m. UTC
Document that frame type flags must be set for the coded buffer.
Decoders, like NVIDIA Tegra h264 decoder for example, won't work
properly without these flags.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 .../userspace-api/media/v4l/dev-stateless-decoder.rst          | 3 +++
 1 file changed, 3 insertions(+)

Comments

Nicolas Dufresne Jan. 25, 2022, 8:37 p.m. UTC | #1
Le dimanche 16 janvier 2022 à 21:55 +0300, Dmitry Osipenko a écrit :
> Document that frame type flags must be set for the coded buffer.
> Decoders, like NVIDIA Tegra h264 decoder for example, won't work
> properly without these flags.
> 
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  .../userspace-api/media/v4l/dev-stateless-decoder.rst          | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst b/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst
> index 4a26646eeec5..845f4481d34f 100644
> --- a/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst
> +++ b/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst
> @@ -271,6 +271,9 @@ A typical frame would thus be decoded using the following sequence:
>            we are not sure that the current decode request is the last one needed
>            to produce a fully decoded frame, then
>            ``V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF`` must also be set.
> +          ``V4L2_BUF_FLAG_KEYFRAME``, ``V4L2_BUF_FLAG_PFRAME`` and
> +          ``V4L2_BUF_FLAG_BFRAME`` must be set if relevant to the coded
> +          format.

I think I would rather keep this in the CODEC specific APIs (BFrame being an
MPEG specific concept). If I knew about this before we made the API final, I
would have added the slice_type bitstream parameter in the
v4l2_h264_decode_params structure. But as the types are rather limited, I would
preserve our "reservered" space and make that part of the
V4L2_H264_DECODE_PARAM_FLAGS_{} instead. Do you also need that for HEVC ? (do
you have HEVC on that generation of tegra ?)

>  
>        ``request_fd``
>            must be set to the file descriptor of the decoding request.
Dmitry Osipenko Jan. 26, 2022, 12:33 p.m. UTC | #2
25.01.2022 23:37, Nicolas Dufresne пишет:
> Le dimanche 16 janvier 2022 à 21:55 +0300, Dmitry Osipenko a écrit :
>> Document that frame type flags must be set for the coded buffer.
>> Decoders, like NVIDIA Tegra h264 decoder for example, won't work
>> properly without these flags.
>>
>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>> ---
>>  .../userspace-api/media/v4l/dev-stateless-decoder.rst          | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst b/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst
>> index 4a26646eeec5..845f4481d34f 100644
>> --- a/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst
>> +++ b/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst
>> @@ -271,6 +271,9 @@ A typical frame would thus be decoded using the following sequence:
>>            we are not sure that the current decode request is the last one needed
>>            to produce a fully decoded frame, then
>>            ``V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF`` must also be set.
>> +          ``V4L2_BUF_FLAG_KEYFRAME``, ``V4L2_BUF_FLAG_PFRAME`` and
>> +          ``V4L2_BUF_FLAG_BFRAME`` must be set if relevant to the coded
>> +          format.
> 
> I think I would rather keep this in the CODEC specific APIs (BFrame being an
> MPEG specific concept). If I knew about this before we made the API final, I
> would have added the slice_type bitstream parameter in the
> v4l2_h264_decode_params structure. But as the types are rather limited, I would
> preserve our "reservered" space and make that part of the
> V4L2_H264_DECODE_PARAM_FLAGS_{} instead. Do you also need that for HEVC ? (do
> you have HEVC on that generation of tegra ?)

That generation of Tegra doesn't support HEVC. I'll try to move frame
type to v4l2_h264_decode_params, thank you.
diff mbox series

Patch

diff --git a/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst b/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst
index 4a26646eeec5..845f4481d34f 100644
--- a/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst
+++ b/Documentation/userspace-api/media/v4l/dev-stateless-decoder.rst
@@ -271,6 +271,9 @@  A typical frame would thus be decoded using the following sequence:
           we are not sure that the current decode request is the last one needed
           to produce a fully decoded frame, then
           ``V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF`` must also be set.
+          ``V4L2_BUF_FLAG_KEYFRAME``, ``V4L2_BUF_FLAG_PFRAME`` and
+          ``V4L2_BUF_FLAG_BFRAME`` must be set if relevant to the coded
+          format.
 
       ``request_fd``
           must be set to the file descriptor of the decoding request.