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.gel...@gmail.com> > > > > > > > > Signed-off-by: Andriy Gelman <andriy.gel...@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, -- Andriy _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".