[FFmpeg-devel] [PATCH] Add NVENC encoder

Philip Langdale philipl at overt.org
Sun Nov 30 00:52:00 CET 2014

On Sun, 30 Nov 2014 00:04:37 +0100
Timo Rothenpieler <timo at rothenpieler.org> wrote:

> Did some refactoring, now using a dynamic ring-buffer for both the
> surface lists as well as the timestamp list.
> There should be no thread safety problem anymore, as there are no
> non-constant static global variables anymore.
> I think i addressed most of the issues now, new patch is attached.

I agree with Nicholas that the dynamically allocated buffer list is
overkill. You can just allocate a fixed length 20 entry array and use
circular indexing (16 bframes + 4 extra as claimed by API docs).

Speaking of bframes, you're not allowing them to be selected as flexibly
as the hardware allows. According to docs, and reading the nvidia
patch, you should read the number of bframes requested by the user
(-bf) and set frameIntervalP equal to that number + 1 (so 17 in the
pathological case). From my limited testing, you really can request an
arbitrary number of bframes up to 16 and it will encode them. But
you're not respecting that config option.


More information about the ffmpeg-devel mailing list