diff mbox series

[FFmpeg-devel,v2] doc/v4l2_m2m: Add documentation

Message ID 20200116041451.31552-1-andriy.gelman@gmail.com
State New
Headers show
Series [FFmpeg-devel,v2] doc/v4l2_m2m: Add documentation
Related show

Checks

Context Check Description
andriy/ffmpeg-patchwork pending
andriy/ffmpeg-patchwork success Applied patch
andriy/ffmpeg-patchwork success Configure finished
andriy/ffmpeg-patchwork success Make finished
andriy/ffmpeg-patchwork success Make fate finished

Commit Message

Andriy Gelman Jan. 16, 2020, 4:14 a.m. UTC
From: Andriy Gelman <andriy.gelman@gmail.com>

Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
---
 doc/decoders.texi | 27 +++++++++++++++++++++++++++
 doc/encoders.texi | 42 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+)

Comments

Gyan Doshi Jan. 16, 2020, 5:21 a.m. UTC | #1
On 16-01-2020 09:44 am, Andriy Gelman wrote:
> From: Andriy Gelman <andriy.gelman@gmail.com>
>
> Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
> ---
>   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.

capabilties --> capabilities



> +
> +To use a specifix decoder append a  _v4l2m2m suffix. For example to select h264

specifix --> specific

> +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.

Restate the description, don't reference another option entry, since in 
theory, more may be inserted or shuffled around.

For both options, what's the significance and tradeoff? Latency?

> +@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.

Restate the description, don't reference another option entry.

  Significance and tradeoff?

> +@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}

Where in the code is the lavc qmin/qmax applied?

You may note that bitrate is also read.

> +@end itemize
> +
>   @section vc2
>   
>   SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed at

Thanks,
Gyan
Andriy Gelman Jan. 16, 2020, 8:17 p.m. UTC | #2
On Thu, 16. Jan 10:51, Gyan wrote:
> 
> 
> On 16-01-2020 09:44 am, Andriy Gelman wrote:
> > From: Andriy Gelman <andriy.gelman@gmail.com>
> > 
> > Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
> > ---
> >   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.

> 
> capabilties --> capabilities
> 
> 
> > +
> > +To use a specifix decoder append a  _v4l2m2m suffix. For example to select h264
> 
> specifix --> specific
> 

Fixed both spelling mistakes.

> > +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.
> 
> Restate the description, don't reference another option entry, since in
> theory, more may be inserted or shuffled around.

ok done.

> 
> For both options, what's the significance and tradeoff? Latency?
> 

These options don't affect latency. Having a large buffer could be useful if
there is a lot of jitter in dequeuing the decoded frames from the hardware
device. If the internal buffer is full you will end up dropping frames. 

> > +@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.
> 
> Restate the description, don't reference another option entry.
> 
>  Significance and tradeoff?
> 
> > +@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}

> 
> Where in the code is the lavc qmin/qmax applied?

These options are set in v4l2_prepare_encoder().

> 
> You may note that bitrate is also read.

yep, I've added bitrate.

Thanks,
Gyan Doshi Jan. 17, 2020, 5:59 a.m. UTC | #3
On 17-01-2020 01:47 am, Andriy Gelman wrote:
> On Thu, 16. Jan 10:51, Gyan wrote:
>>
>> On 16-01-2020 09:44 am, Andriy Gelman wrote:
>>> From: Andriy Gelman <andriy.gelman@gmail.com>
>>>
>>> Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
>>> ---
>>>    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.
>> capabilties --> capabilities
>>
>>
>>> +
>>> +To use a specifix decoder append a  _v4l2m2m suffix. For example to select h264
>> specifix --> specific
>>
> Fixed both spelling mistakes.
>
>>> +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.
>> Restate the description, don't reference another option entry, since in
>> theory, more may be inserted or shuffled around.
> ok done.
>
>> For both options, what's the significance and tradeoff? Latency?
>>
> These options don't affect latency. Having a large buffer could be useful if
> there is a lot of jitter in dequeuing the decoded frames from the hardware
> device. If the internal buffer is full you will end up dropping frames.

The docs should mention this. The reader should know when they may want 
to set these options manually and why.

>>> +@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.
>> Restate the description, don't reference another option entry.
>>
>>   Significance and tradeoff?
>>
>>> +@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}
>> Where in the code is the lavc qmin/qmax applied?
> These options are set in v4l2_prepare_encoder().
I don't see where the user-set values are picked up. I see a debug-level 
log where they are printed. Then based on codec id, qmin and qmax are 
set to hardcoded values. After that, if those values don't match the 
user values, a warning is printed. But I don't see the user-set values 
being conveyed to the encoder. For ref, I'm seeing the function as of 
ab9627223e630390a

>> You may note that bitrate is also read.
> yep, I've added bitrate.
>
> Thanks,

Thanks,
Gyan
Andriy Gelman Jan. 17, 2020, 2:16 p.m. UTC | #4
On Fri, 17. Jan 11:29, Gyan wrote:
> 
> 
> On 17-01-2020 01:47 am, Andriy Gelman wrote:
> > On Thu, 16. Jan 10:51, Gyan wrote:
> > > 
> > > On 16-01-2020 09:44 am, Andriy Gelman wrote:
> > > > From: Andriy Gelman <andriy.gelman@gmail.com>
> > > > 
> > > > Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
> > > > ---
> > > >    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.
> > > capabilties --> capabilities
> > > 
> > > 
> > > > +
> > > > +To use a specifix decoder append a  _v4l2m2m suffix. For example to select h264
> > > specifix --> specific
> > > 
> > Fixed both spelling mistakes.
> > 
> > > > +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.
> > > Restate the description, don't reference another option entry, since in
> > > theory, more may be inserted or shuffled around.
> > ok done.

> > 
> > > For both options, what's the significance and tradeoff? Latency?
> > > 
> > These options don't affect latency. Having a large buffer could be useful if
> > there is a lot of jitter in dequeuing the decoded frames from the hardware
> > device. If the internal buffer is full you will end up dropping frames.
> 
> The docs should mention this. The reader should know when they may want to
> set these options manually and why.

ok, I'll add it to the next version.

> 
> > > > +@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.
> > > Restate the description, don't reference another option entry.
> > > 
> > >   Significance and tradeoff?
> > > 
> > > > +@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}

> > > Where in the code is the lavc qmin/qmax applied?
> > These options are set in v4l2_prepare_encoder().
> I don't see where the user-set values are picked up. I see a debug-level log
> where they are printed. Then based on codec id, qmin and qmax are set to
> hardcoded values. After that, if those values don't match the user values, a
> warning is printed. But I don't see the user-set values being conveyed to
> the encoder. For ref, I'm seeing the function as of ab9627223e630390a

ah, good point. It makes sense to fix this before the documentation.

Thanks,
diff mbox series

Patch

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