3 typedef enum TrackType
{
15 WORD Size
; // Size of this structure
16 BYTE Type
; // See TrackType
17 BOOL FlagDefault
; // Set if the track is the default for its TrackType.
18 BOOL FlagLacing
; // Set if the track may contain blocks using lacing.
19 UINT MinCache
; // The minimum number of frames a player should be able to cache during playback.
20 UINT MaxCache
; // The maximum cache size required to store referenced frames in and the current frame. 0 means no cache is needed.
21 CHAR Language
[4]; // Specifies the language of the track, in the ISO-639-2 form. (end with '\0')
24 struct TrackExtendedInfoVideo
{
25 WORD Size
; // Size of this structure
26 BOOL Interlaced
; // Set if the video is interlaced.
27 UINT PixelWidth
; // Width of the encoded video frames in pixels.
28 UINT PixelHeight
; // Height of the encoded video frames in pixels.
29 UINT DisplayWidth
; // Width of the video frames to display.
30 UINT DisplayHeight
; // Height of the video frames to display.
31 BYTE DisplayUnit
; // Type of the unit for DisplayWidth/Height (0: pixels, 1: centimeters, 2: inches).
32 BYTE AspectRatioType
; // Specify the possible modifications to the aspect ratio (0: free resizing, 1: keep aspect ratio, 2: fixed).
35 struct TrackExtendedInfoAudio
{
36 WORD Size
; // Size of this structure
37 FLOAT SamplingFreq
; // Sampling frequency in Hz.
38 FLOAT OutputSamplingFrequency
; // Real output sampling frequency in Hz (used for SBR techniques).
39 UINT Channels
; // Numbers of channels in the track.
40 UINT BitDepth
; // Bits per sample, mostly used for PCM.
45 [uuid("03E98D51-DDE7-43aa-B70C-42EF84A3A23D")]
46 interface ITrackInfo
: public IUnknown
48 STDMETHOD_(UINT
, GetTrackCount
) () = 0;
50 // \param aTrackIdx the track index (from 0 to GetTrackCount()-1)
51 STDMETHOD_(BOOL
, GetTrackInfo
) (UINT aTrackIdx
, struct TrackElement
* pStructureToFill
) = 0;
53 // Get an extended information struct relative to the track type
54 STDMETHOD_(BOOL
, GetTrackExtendedInfo
) (UINT aTrackIdx
, void* pStructureToFill
) = 0;
56 STDMETHOD_(BSTR
, GetTrackCodecID
) (UINT aTrackIdx
) = 0;
57 STDMETHOD_(BSTR
, GetTrackName
) (UINT aTrackIdx
) = 0;
58 STDMETHOD_(BSTR
, GetTrackCodecName
) (UINT aTrackIdx
) = 0;
59 STDMETHOD_(BSTR
, GetTrackCodecInfoURL
) (UINT aTrackIdx
) = 0;
60 STDMETHOD_(BSTR
, GetTrackCodecDownloadURL
) (UINT aTrackIdx
) = 0;