XDM Video Interface


Detailed Description

This is the XDM video interface shared between the various codecs.


Data Structures

struct  IVIDEO_BufDesc
 Buffer descriptor for video buffers. More...
struct  IVIDEO1_BufDescIn
 Buffer descriptor for input video buffers. More...
struct  IVIDEO1_BufDesc
 Detailed buffer descriptor for video buffers. More...

Defines

#define IVIDEO_MAX_YUV_BUFFERS   3
 Max YUV buffers - one each for 'Y', 'U', and 'V'.

Enumerations

enum  IVIDEO_FrameSkip {
  IVIDEO_NO_SKIP = 0,
  IVIDEO_SKIP_P = 1,
  IVIDEO_SKIP_B = 2,
  IVIDEO_SKIP_I = 3,
  IVIDEO_SKIP_IP = 4,
  IVIDEO_SKIP_IB = 5,
  IVIDEO_SKIP_PB = 6,
  IVIDEO_SKIP_IPB = 7,
  IVIDEO_SKIP_IDR = 8,
  IVIDEO_SKIP_DEFAULT = IVIDEO_NO_SKIP
}
 Video frame skip features for video decoder. More...
enum  IVIDEO_FrameType {
  IVIDEO_NA_FRAME = -1,
  IVIDEO_I_FRAME = 0,
  IVIDEO_P_FRAME = 1,
  IVIDEO_B_FRAME = 2,
  IVIDEO_IDR_FRAME = 3,
  IVIDEO_II_FRAME = 4,
  IVIDEO_IP_FRAME = 5,
  IVIDEO_IB_FRAME = 6,
  IVIDEO_PI_FRAME = 7,
  IVIDEO_PP_FRAME = 8,
  IVIDEO_PB_FRAME = 9,
  IVIDEO_BI_FRAME = 10,
  IVIDEO_BP_FRAME = 11,
  IVIDEO_BB_FRAME = 12,
  IVIDEO_MBAFF_I_FRAME = 13,
  IVIDEO_MBAFF_P_FRAME = 14,
  IVIDEO_MBAFF_B_FRAME = 15,
  IVIDEO_MBAFF_IDR_FRAME = 16,
  IVIDEO_FRAMETYPE_DEFAULT = IVIDEO_I_FRAME
}
 Video frame types. More...
enum  IVIDEO_ContentType {
  IVIDEO_CONTENTTYPE_NA = -1,
  IVIDEO_PROGRESSIVE = 0,
  IVIDEO_PROGRESSIVE_FRAME = IVIDEO_PROGRESSIVE,
  IVIDEO_INTERLACED = 1,
  IVIDEO_INTERLACED_FRAME = IVIDEO_INTERLACED,
  IVIDEO_INTERLACED_TOPFIELD = 2,
  IVIDEO_INTERLACED_BOTTOMFIELD = 3,
  IVIDEO_CONTENTTYPE_DEFAULT = IVIDEO_PROGRESSIVE
}
 Video content types. More...
enum  IVIDEO_RateControlPreset {
  IVIDEO_LOW_DELAY = 1,
  IVIDEO_STORAGE = 2,
  IVIDEO_TWOPASS = 3,
  IVIDEO_NONE = 4,
  IVIDEO_USER_DEFINED = 5,
  IVIDEO_RATECONTROLPRESET_DEFAULT = IVIDEO_LOW_DELAY
}
 Video rate control presets. More...
enum  IVIDEO_SkipMode {
  IVIDEO_FRAME_ENCODED = 0,
  IVIDEO_FRAME_SKIPPED = 1,
  IVIDEO_SKIPMODE_DEFAULT = IVIDEO_FRAME_ENCODED
}
 Video frame skipping modes. More...
enum  IVIDEO_OutputFrameStatus {
  IVIDEO_FRAME_NOERROR = 0,
  IVIDEO_FRAME_NOTAVAILABLE = 1,
  IVIDEO_FRAME_ERROR = 2,
  IVIDEO_OUTPUTFRAMESTATUS_DEFAULT = IVIDEO_FRAME_NOERROR
}
 Video output buffer status. More...
enum  IVIDEO_PictureType {
  IVIDEO_NA_PICTURE = -1,
  IVIDEO_I_PICTURE = 0,
  IVIDEO_P_PICTURE = 1,
  IVIDEO_B_PICTURE = 2,
  IVIDEO_PICTURE_TYPE_DEFAULT = IVIDEO_I_PICTURE
}
 Video Picture types. More...
enum  IVIDEO_Format {
  IVIDEO_MPEG1 = 1,
  IVIDEO_MPEG2SP = 2,
  IVIDEO_MPEG2MP = 3,
  IVIDEO_MPEG2HP = 4,
  IVIDEO_MPEG4SP = 5,
  IVIDEO_MPEG4ASP = 6,
  IVIDEO_H264BP = 7,
  IVIDEO_H264MP = 8,
  IVIDEO_H264HP = 9,
  IVIDEO_VC1SP = 10,
  IVIDEO_VC1MP = 11,
  IVIDEO_VC1AP = 12
}
 Video Format types. More...


Define Documentation

#define IVIDEO_MAX_YUV_BUFFERS   3

Max YUV buffers - one each for 'Y', 'U', and 'V'.


Enumeration Type Documentation

enum IVIDEO_FrameSkip

Video frame skip features for video decoder.

Remarks:
This enumeration data type should not be used for storage, but rather only for its constant values.

This enumeration defines a base set of values. Algorithms which require proprietary enumeration values may define them - much like extended fields in base structures. These extended enums should be between XDM_CUSTOMENUMBASE and 0x7FFF.

See also:
XDM_CUSTOMENUMBASE
Enumerator:
IVIDEO_NO_SKIP  Do not skip any frame types.
IVIDEO_SKIP_P  Decode the P frame/skip frames internally, but do not copy the decoded output to the output buffers. This should be indicated by setting the output buffers to NULL.

Remarks:
For example, if a B frame is dependant on the previously decoded P frame, the B frame shall be decoded and displayed successfully. For this, the P frame needs to be decoded, but not copied to the output buffer.
IVIDEO_SKIP_B  Skip B, BI frames. For B frames, the decoder will decode the frame bitstream, and return as soon as the frame type is decisively decoded. Internally, the algorithm will modify its state, so that subsequent decoding of other frames is possible.
IVIDEO_SKIP_I  Skip intra coded frame.
IVIDEO_SKIP_IP  Skip I and P frame/field(s).
IVIDEO_SKIP_IB  Skip I and B frame/field(s).
IVIDEO_SKIP_PB  Skip P and B frame/field(s).
IVIDEO_SKIP_IPB  Skip I/P/B/BI frames.
IVIDEO_SKIP_IDR  Skip IDR Frame.
IVIDEO_SKIP_DEFAULT  Default settings.

enum IVIDEO_FrameType

Video frame types.

Remarks:
For the various IVIDEO_xy_FRAME values, this frame type is interlaced where both top and bottom fields are provided in a single frame. The first field is an "x" frame, the second field is "y" field.

This enumeration data type should not be used for storage, but rather only for its constant values.

This enumeration defines a base set of values. Algorithms which require proprietary enumeration values may define them - much like extended fields in base structures. These extended enums should be between XDM_CUSTOMENUMBASE and 0x7FFF.

See also:
XDM_CUSTOMENUMBASE
Enumerator:
IVIDEO_NA_FRAME  Frame type not available.
IVIDEO_I_FRAME  Intra coded frame.
IVIDEO_P_FRAME  Forward inter coded frame.
IVIDEO_B_FRAME  Bi-directional inter coded frame.
IVIDEO_IDR_FRAME  Intra coded frame that can be used for refreshing video content.
IVIDEO_II_FRAME  Interlaced Frame, both fields are I frames
IVIDEO_IP_FRAME  Interlaced Frame, first field is an I frame, second field is a P frame.
IVIDEO_IB_FRAME  Interlaced Frame, first field is an I frame, second field is a B frame.
IVIDEO_PI_FRAME  Interlaced Frame, first field is a P frame, second field is a I frame.
IVIDEO_PP_FRAME  Interlaced Frame, both fields are P frames.
IVIDEO_PB_FRAME  Interlaced Frame, first field is a P frame, second field is a B frame.
IVIDEO_BI_FRAME  Interlaced Frame, first field is a B frame, second field is an I frame.
IVIDEO_BP_FRAME  Interlaced Frame, first field is a B frame, second field is a P frame.
IVIDEO_BB_FRAME  Interlaced Frame, both fields are B frames.
IVIDEO_MBAFF_I_FRAME  Intra coded MBAFF frame.
IVIDEO_MBAFF_P_FRAME  Forward inter coded MBAFF frame.
IVIDEO_MBAFF_B_FRAME  Bi-directional inter coded MBAFF frame.
IVIDEO_MBAFF_IDR_FRAME  Intra coded MBAFF frame that can be used for refreshing video content.
IVIDEO_FRAMETYPE_DEFAULT  Default setting.

enum IVIDEO_ContentType

Video content types.

Remarks:
This enumeration data type should not be used for storage, but rather only for its constant values.

This enumeration defines a base set of values. Algorithms which require proprietary enumeration values may define them - much like extended fields in base structures. These extended enums should be between XDM_CUSTOMENUMBASE and 0x7FFF.

See also:
XDM_CUSTOMENUMBASE
Enumerator:
IVIDEO_CONTENTTYPE_NA  Frame type is not available.
IVIDEO_PROGRESSIVE  Progressive frame.
IVIDEO_PROGRESSIVE_FRAME  Progressive Frame.
IVIDEO_INTERLACED  Interlaced frame.
IVIDEO_INTERLACED_FRAME  Interlaced frame.
IVIDEO_INTERLACED_TOPFIELD  Interlaced picture, top field.
IVIDEO_INTERLACED_BOTTOMFIELD  Interlaced picture, bottom field.
IVIDEO_CONTENTTYPE_DEFAULT  Default setting.

enum IVIDEO_RateControlPreset

Video rate control presets.

Remarks:
This enumeration data type should not be used for storage, but rather only for its constant values.

This enumeration defines a base set of values. Algorithms which require proprietary enumeration values may define them - much like extended fields in base structures. These extended enums should be between XDM_CUSTOMENUMBASE and 0x7FFF.

See also:
XDM_CUSTOMENUMBASE
Enumerator:
IVIDEO_LOW_DELAY  CBR rate control for video conferencing.
IVIDEO_STORAGE  VBR rate control for local storage (DVD) recording.
IVIDEO_TWOPASS  Two pass rate control for non real time applications.
IVIDEO_NONE  No configurable video rate control mechanism.
IVIDEO_USER_DEFINED  User defined configuration using extended parameters.
IVIDEO_RATECONTROLPRESET_DEFAULT  Default setting.

enum IVIDEO_SkipMode

Video frame skipping modes.

Remarks:
This enumeration data type should not be used for storage, but rather only for its constant values.

This enumeration defines a base set of values. Algorithms which require proprietary enumeration values may define them - much like extended fields in base structures. These extended enums should be between XDM_CUSTOMENUMBASE and 0x7FFF.

See also:
XDM_CUSTOMENUMBASE
Enumerator:
IVIDEO_FRAME_ENCODED  Input video frame successfully encoded.
IVIDEO_FRAME_SKIPPED  Input video frame dropped. There is no encoded bitstream corresponding to the input frame.
IVIDEO_SKIPMODE_DEFAULT  Default setting.

enum IVIDEO_OutputFrameStatus

Video output buffer status.

Remarks:
Ownership of the buffers, either by application or algorithm, is conveyed via these values.

This reflects the status of ALL output buffers. For example, if video decoded output is in 4:2:0 format, all the 3 output buffers' status is described by this value. Similarly, for 4:2:2 formatted buffers, this value describes the single buffer's status.

This enumeration data type should not be used for storage, but rather only for its constant values.

This enumeration defines a base set of values. Algorithms which require proprietary enumeration values may define them - much like extended fields in base structures. These extended enums should be between XDM_CUSTOMENUMBASE and 0x7FFF.

See also:
XDM_CUSTOMENUMBASE
Enumerator:
IVIDEO_FRAME_NOERROR  The output buffer is available.
IVIDEO_FRAME_NOTAVAILABLE  The codec doesn't have any output buffers.
IVIDEO_FRAME_ERROR  The output buffer is available and corrupted.

Remarks:
For example, if a bitstream is erroneous and partially decoded, a portion of the decoded image may be available for display. Another example is if the bitstream for a given frame decode may be decoded without error, but the previously decoded dependant frames weren't successfully decoded. This would result in an incorrectly decoded frame.
IVIDEO_OUTPUTFRAMESTATUS_DEFAULT  Default setting.

enum IVIDEO_PictureType

Video Picture types.

Remarks:
This enumeration data type should not be used for storage, but rather only for its constant values.

This enumeration defines a base set of values. Algorithms which require proprietary enumeration values may define them - much like extended fields in base structures. These extended enums should be between XDM_CUSTOMENUMBASE and 0x7FFF.

See also:
XDM_CUSTOMENUMBASE
Enumerator:
IVIDEO_NA_PICTURE  Frame type not available.
IVIDEO_I_PICTURE  Intra coded picture.
IVIDEO_P_PICTURE  Forward inter coded picture.
IVIDEO_B_PICTURE  Bi-directional inter coded picture.
IVIDEO_PICTURE_TYPE_DEFAULT  Default setting.

enum IVIDEO_Format

Video Format types.

Remarks:
This enumeration data type should not be used for storage, but rather only for its constant values.

This enumeration defines a base set of values. Algorithms which require proprietary enumeration values may define them - much like extended fields in base structures. These extended enums should be between XDM_CUSTOMENUMBASE and 0x7FFF.

See also:
XDM_CUSTOMENUMBASE
Enumerator:
IVIDEO_MPEG1  Video format is Mpeg1 stream
IVIDEO_MPEG2SP  Video format is Mpeg2/H.262 stream, Simple Profile
IVIDEO_MPEG2MP  Video format is Mpeg2/H.262 stream, Main Profile
IVIDEO_MPEG2HP  Video format is Mpeg2/H.262 stream, High Profile
IVIDEO_MPEG4SP  Video format is Mpeg4 stream, Simple Profile
IVIDEO_MPEG4ASP  Video format is Mpeg4 stream, Advanced Simple Profile
IVIDEO_H264BP  Video format is H.264 stream, Base Profile
IVIDEO_H264MP  Video format is H.264 stream, Main Profile
IVIDEO_H264HP  Video format is H.264 stream, High Profile
IVIDEO_VC1SP  Video format is VC1/WMV9 stream, Simple Profile
IVIDEO_VC1MP  Video format is VC1/WMV9 stream, Main Profile
IVIDEO_VC1AP  Video format is VC1 stream, Advanced Profile


Copyright 2009, Texas Instruments Incorporated