On 2019-10-26 21:15, Michael Niedermayer wrote:
On Sat, Oct 26, 2019 at 02:05:27PM +0300, Andrey Semashev wrote:
The decoder never marks pictures as I-frames, which results in no
keyframe indication and incorrect frame skipping, in cases when
keyframes should be decoded.

This commit works around this decoder limitation and marks I-frames
and keyframes based on "freeze picture release" bit in h261 picture
header. This reflects h261enc behavior.
---
  libavcodec/h261.h    |  1 +
  libavcodec/h261dec.c | 27 ++++++++++++++++++---------
  2 files changed, 19 insertions(+), 9 deletions(-)

If the goal is correctly recognizing I frames then checking if all
blocks are intra should be the most reliable

In my case, the goal is to know when a keyframe is received, i.e. when the receiver can be reasonably sure it can start displaying/processing received frames. Including after some frames lost in transmission.

According to H.261 spec, "freeze picture release" bit is what is intended to mark keyframes. To quote section 4.3.3:

<quote>
A signal from an encoder which has responded to a fast update request and allows a decoder to exit from its freeze picture mode and display decoded pictures in the normal manner.
</quote>

I'll reiterate that h261enc marks keyframes with this bit.

that wont work for skiping though as it requires decoding

Right.
_______________________________________________
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".

Reply via email to