I have an application that uses NVENC.
We recently noticed some strange behavior while trying to change gop length.
Whatever we create the encoder with essentially becomes the max gop length.
For example, starting out with a gop length of 50 for a 250 frame video gives us 5 I-frames as expected.
Changing gop length [by calling NvEncReconfigureEncoder()] to 25 then gives us 10 I-frames.
However, changing this to 100 gives us 5 I-frames again (as opposed to 3).
In general, if we start with a gop of x, we get frames/x I-frames as expected.
We can then reconfigure it to anything below x and receive the proper number of I-frames,
but any gop length greater than x still gives frames/x.
Reading the doc, (NvEncodeAPI_v.7.1.pdf), we found that NvEncReconfigureEncoder does not support
a change in GOP structure. Is this the exact reason why we can’t reconfigure to something larger?
If so, why does NvEncReconfigureEncoder work for smaller numbers?
If not, what could the issue be? Is there another parameter we have to change in unison?