Opened 5 months ago

Last modified 3 months ago

#8343 open enhancement

h261dec doesn't mark keyframes

Reported by: Lastique Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: h261
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

h261dec does not set AVFrame::key_frame field on keyframes. As a side effect, frame skipping except keyframes doesn't work (all frames are skipped).

In H.261, keyframes are normally indicated by the Freeze Picture Release bit in the Picture Header of a frame, but h261dec ignores that bit. h261enc behavior is to set that bit on keyframes.

The problem was discovered in a client application that uses ffmpeg through its C API. I'm not sure if it can be reproduced through command line.

Attached is a patch that fixes the problem. The patch has been posted on ffmpeg-devel:

https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2019-October/252145.html

Attachments (1)

11_fix_h261dec_keyframe.patch (4.0 KB) - added by Lastique 5 months ago.
A patch to fix keyframe markup in h261dec

Download all attachments as: .zip

Change History (6)

Changed 5 months ago by Lastique

A patch to fix keyframe markup in h261dec

comment:1 follow-up: Changed 5 months ago by cehoyos

  • Blocked By set to h261
  • Priority changed from normal to wish
  • Type changed from defect to enhancement
  • Version changed from 4.2 to git-master

The patch is ignored here and will not be backported.

comment:2 Changed 5 months ago by cehoyos

  • Blocked By h261 deleted
  • Keywords h261 added

comment:3 Changed 5 months ago by Lastique

  • Type changed from enhancement to defect

I disagree with "enhancement" qualification, this is a bug.

comment:4 in reply to: ↑ 1 Changed 5 months ago by Balling

  • Status changed from new to open

Replying to cehoyos:

The patch is ignored here and will not be backported.

The patch is here https://patchwork.ffmpeg.org/patch/15972/

comment:5 Changed 3 months ago by cehoyos

  • Type changed from defect to enhancement
Note: See TracTickets for help on using tickets.