MPEG and Progressive Content

MPEG-2 syntax provides the information necessary to identify progressive content and 3:2 pulldown. This information is stored in the header for each frame in the following 1-bit flags:

  • PROGRESSIVE_FRAME: When TRUE, this indicates that the two fields (of the frame) are actually from the same time instant (progressive film). When FALSE, this indicates that the fields might be one-half of a frame time apart (interlaced video).

  • TOP_FIELD_FIRST: Indicates which field comes first in time.

  • REPEAT_FIRST_FIELD: Indicates whether a field should be repeated for 3:2 pulldown.

With VPE and DirectDraw under the latest DirectX release, video can always be displayed with the best-possible quality if these flags or a signal derived from these flags can be conveyed to the system on a per-field basis. Interlaced video can also be supported by DirectShow, with new flags in the media sample to indicate whether an uncompressed video media sample is either a full frame or a field, plus any other information. As described in the Displaying Interleaved Video with VPE section, DirectShow can be instructed to switch between display modes on a per-frame basis by using either frame-based media samples or field-based media samples.