[FFmpeg-trac] #1679(undetermined:new): Ability to identify progressive segmented frame material in h.264

FFmpeg trac at avcodec.org
Sat Aug 25 10:48:58 CEST 2012


#1679: Ability to identify progressive segmented frame material in h.264
-------------------------------------+-------------------------------------
             Reporter:  rmk          |                     Type:
               Status:  new          |  enhancement
            Component:               |                 Priority:  normal
  undetermined                       |                  Version:
             Keywords:               |  unspecified
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------
 It is desirable to be able to identify progressive segmented frame (PsF)
 material (i.e. a progressively scanned frame encoded as two fields with
 the same timestamp) in an h.264 stream as that gives applications using
 libavcodec the possibility to correctly report to the user that the
 underlying material is really progressive and no deinterlacing makes
 sense.

 From the h.264 spec:
 clock_timestamp_flag[ i ] equal to 1 indicates that a number of clock
 timestamp syntax elements are present and follow immediately.
 clock_timestamp_flag[ i ] equal to 0 indicates that the associated clock
 timestamp syntax elements are not present. When NumClockTS is greater than
 1 and clock_timestamp_flag[ i ] is equal to 1 for more than one value of
 i, the value of clockTimestamp shall be non-decreasing with increasing
 value of i.
 ct_type indicates the scan type (interlaced or progressive) of the source
 material as follows:
 Two fields of a coded frame may have different values of ct_type.
 When clockTimestamp is equal for two fields of opposite parity that are
 consecutive in output order, both with ct_type equal to 0 (progressive) or
 ct_type equal to 2 (unknown), the two fields are indicated to have come
 from the same original progressive frame. Two consecutive fields in output
 order shall have different values of clockTimestamp when the value of
 ct_type for either field is 1 (interlaced).

 AFAICS in the code in h264.c the information required to make that
 determination is not parsed, which should not be difficult to add.
 However, once one has that information, how do I give this back to the API
 user? Currently there is only the field top_field_first in AVFrame.

 What would be the recommended/accepted way of modeling this? If no API
 change would be accepted for this, would it be ok to sets this as frame
 metadata via av_frame_set_metadata?

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1679>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list