XDM Video Interface

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...

Detailed Description

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


Define Documentation

#define IVIDEO_MAX_YUV_BUFFERS   3

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


Enumeration Type Documentation

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.

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.

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.

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.

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.

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.

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.

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

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2010, Texas Instruments Incorporated