VLC  2.1.0-git
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
vlc_es.h File Reference

This file defines the elementary streams format types. More...

Include dependency graph for vlc_es.h:

Go to the source code of this file.

Data Structures

struct  video_palette_t
 video palette data More...
struct  audio_replay_gain_t
struct  audio_format_t
 audio format description More...
struct  video_format_t
 video format description More...
struct  subs_format_t
 subtitles format description More...
struct  extra_languages_t
 ES language definition. More...
struct  es_format_t
 ES format definition. More...

Macros

#define AUDIO_REPLAY_GAIN_MAX   (2)
 audio replay gain description
#define AUDIO_REPLAY_GAIN_TRACK   (0)
#define AUDIO_REPLAY_GAIN_ALBUM   (1)
#define AOUT_CHAN_CENTER   0x1
#define AOUT_CHAN_LEFT   0x2
#define AOUT_CHAN_RIGHT   0x4
#define AOUT_CHAN_REARCENTER   0x10
#define AOUT_CHAN_REARLEFT   0x20
#define AOUT_CHAN_REARRIGHT   0x40
#define AOUT_CHAN_MIDDLELEFT   0x100
#define AOUT_CHAN_MIDDLERIGHT   0x200
#define AOUT_CHAN_LFE   0x1000
#define AOUT_CHANS_FRONT   (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)
#define AOUT_CHANS_MIDDLE   (AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT)
#define AOUT_CHANS_REAR   (AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT)
#define AOUT_CHANS_CENTER   (AOUT_CHAN_CENTER | AOUT_CHAN_REARCENTER)
#define AOUT_CHANS_STEREO   AOUT_CHANS_2_0
#define AOUT_CHANS_2_0   (AOUT_CHANS_FRONT)
#define AOUT_CHANS_2_1   (AOUT_CHANS_FRONT | AOUT_CHAN_LFE)
#define AOUT_CHANS_3_0   (AOUT_CHANS_FRONT | AOUT_CHAN_CENTER)
#define AOUT_CHANS_3_1   (AOUT_CHANS_3_0 | AOUT_CHAN_LFE)
#define AOUT_CHANS_4_0   (AOUT_CHANS_FRONT | AOUT_CHANS_REAR)
#define AOUT_CHANS_4_1   (AOUT_CHANS_4_0 | AOUT_CHAN_LFE)
#define AOUT_CHANS_5_0   (AOUT_CHANS_4_0 | AOUT_CHAN_CENTER)
#define AOUT_CHANS_5_1   (AOUT_CHANS_5_0 | AOUT_CHAN_LFE)
#define AOUT_CHANS_6_0   (AOUT_CHANS_4_0 | AOUT_CHANS_MIDDLE)
#define AOUT_CHANS_7_0   (AOUT_CHANS_6_0 | AOUT_CHAN_CENTER)
#define AOUT_CHANS_7_1   (AOUT_CHANS_5_1 | AOUT_CHANS_MIDDLE)
#define AOUT_CHANS_8_1   (AOUT_CHANS_7_1 | AOUT_CHAN_REARCENTER)
#define AOUT_CHANS_4_0_MIDDLE   (AOUT_CHANS_FRONT | AOUT_CHANS_MIDDLE)
#define AOUT_CHANS_4_CENTER_REAR   (AOUT_CHANS_FRONT | AOUT_CHANS_CENTER)
#define AOUT_CHANS_5_0_MIDDLE   (AOUT_CHANS_4_0_MIDDLE | AOUT_CHAN_CENTER)
#define AOUT_CHAN_DOLBYSTEREO   0x10000
#define AOUT_CHAN_DUALMONO   0x20000
#define AOUT_CHAN_REVERSESTEREO   0x40000
#define AOUT_CHAN_PHYSMASK   0xFFFF
#define AOUT_CHAN_MAX   9
#define ORIENT_FROM_EXIF(exif)   ((0x01324675U >> (4 * ((exif) - 1))) & 7)
 Convert EXIF orientation to enum video_orientation_t.
#define ORIENT_TO_EXIF(orient)   ((0x12435867U >> (4 * (orient))) & 15)
 Convert enum video_orientation_t to EXIF.
#define ORIENT_IS_MIRROR(orient)   parity(orient)
 If the orientation is natural or mirrored.
#define ORIENT_IS_SWAP(orient)   (((orient) & 4) != 0)
 If the orientation swaps dimensions.
#define ORIENT_HFLIP(orient)   ((orient) ^ 1)
 Applies horizontal flip to an orientation.
#define ORIENT_VFLIP(orient)   ((orient) ^ 2)
 Applies vertical flip to an orientation.
#define ORIENT_ROTATE_180(orient)   ((orient) ^ 3)
 Applies horizontal flip to an orientation.

Typedefs

typedef enum video_orientation_t video_orientation_t
 Picture orientation.
typedef struct extra_languages_t extra_languages_t
 ES language definition.

Enumerations

enum  video_orientation_t {
  ORIENT_TOP_LEFT = 0, ORIENT_TOP_RIGHT, ORIENT_BOTTOM_LEFT, ORIENT_BOTTOM_RIGHT,
  ORIENT_LEFT_TOP, ORIENT_LEFT_BOTTOM, ORIENT_RIGHT_TOP, ORIENT_RIGHT_BOTTOM,
  ORIENT_NORMAL = ORIENT_TOP_LEFT, ORIENT_HFLIPPED = ORIENT_TOP_RIGHT, ORIENT_VFLIPPED = ORIENT_BOTTOM_LEFT, ORIENT_ROTATED_180 = ORIENT_BOTTOM_RIGHT,
  ORIENT_ROTATED_270 = ORIENT_LEFT_BOTTOM, ORIENT_ROTATED_90 = ORIENT_RIGHT_TOP
}
 Picture orientation. More...
enum  es_format_category_e {
  UNKNOWN_ES = 0x00, VIDEO_ES = 0x01, AUDIO_ES = 0x02, SPU_ES = 0x03,
  NAV_ES = 0x04
}
 ES Categories. More...

Functions

static void video_format_Init (video_format_t *p_src, vlc_fourcc_t i_chroma)
 Initialize a video_format_t structure with chroma 'i_chroma'.
static int video_format_Copy (video_format_t *p_dst, const video_format_t *p_src)
 Copy video_format_t including the palette.
static void video_format_Clean (video_format_t *p_src)
 Cleanup and free palette of this video_format_t.
void video_format_Setup (video_format_t *, vlc_fourcc_t i_chroma, int i_width, int i_height, int i_sar_num, int i_sar_den)
 It will fill up a video_format_t using the given arguments.
void video_format_CopyCrop (video_format_t *, const video_format_t *)
 It will copy the crop properties from a video_format_t to another.
void video_format_ScaleCropAr (video_format_t *, const video_format_t *)
 It will compute the crop/ar properties when scaling.
bool video_format_IsSimilar (const video_format_t *, const video_format_t *)
 This function will check if the first video format is similar to the second one.
void video_format_Print (vlc_object_t *, const char *, const video_format_t *)
 It prints details about the given video_format_t.
void video_format_FixRgb (video_format_t *)
 This function will fill all RGB shift from RGB masks.
void es_format_Init (es_format_t *, int i_cat, vlc_fourcc_t i_codec)
 This function will initialize a es_format_t structure.
void es_format_InitFromVideo (es_format_t *, const video_format_t *)
 This function will initialize a es_format_t structure from a video_format_t.
int es_format_Copy (es_format_t *p_dst, const es_format_t *p_src)
 This functions will copy a es_format_t.
void es_format_Clean (es_format_t *fmt)
 This function will clean up a es_format_t and release all associated resources.
bool es_format_IsSimilar (const es_format_t *, const es_format_t *)
 This function will check if the first ES format is similar to the second one.

Detailed Description

This file defines the elementary streams format types.

Macro Definition Documentation

#define AOUT_CHAN_CENTER   0x1
#define AOUT_CHAN_DOLBYSTEREO   0x10000
#define AOUT_CHAN_DUALMONO   0x20000
#define AOUT_CHAN_LEFT   0x2
#define AOUT_CHAN_LFE   0x1000
#define AOUT_CHAN_MAX   9
#define AOUT_CHAN_MIDDLELEFT   0x100
#define AOUT_CHAN_MIDDLERIGHT   0x200
#define AOUT_CHAN_PHYSMASK   0xFFFF

Referenced by aout_new_buffer(), and aout_OutputNew().

#define AOUT_CHAN_REARCENTER   0x10
#define AOUT_CHAN_REARLEFT   0x20
#define AOUT_CHAN_REARRIGHT   0x40
#define AOUT_CHAN_REVERSESTEREO   0x40000
#define AOUT_CHAN_RIGHT   0x4
#define AOUT_CHANS_2_0   (AOUT_CHANS_FRONT)
#define AOUT_CHANS_2_1   (AOUT_CHANS_FRONT | AOUT_CHAN_LFE)
#define AOUT_CHANS_3_0   (AOUT_CHANS_FRONT | AOUT_CHAN_CENTER)
#define AOUT_CHANS_3_1   (AOUT_CHANS_3_0 | AOUT_CHAN_LFE)
#define AOUT_CHANS_4_0   (AOUT_CHANS_FRONT | AOUT_CHANS_REAR)
#define AOUT_CHANS_4_0_MIDDLE   (AOUT_CHANS_FRONT | AOUT_CHANS_MIDDLE)
#define AOUT_CHANS_4_1   (AOUT_CHANS_4_0 | AOUT_CHAN_LFE)
#define AOUT_CHANS_4_CENTER_REAR   (AOUT_CHANS_FRONT | AOUT_CHANS_CENTER)
#define AOUT_CHANS_5_0   (AOUT_CHANS_4_0 | AOUT_CHAN_CENTER)
#define AOUT_CHANS_5_0_MIDDLE   (AOUT_CHANS_4_0_MIDDLE | AOUT_CHAN_CENTER)
#define AOUT_CHANS_5_1   (AOUT_CHANS_5_0 | AOUT_CHAN_LFE)
#define AOUT_CHANS_6_0   (AOUT_CHANS_4_0 | AOUT_CHANS_MIDDLE)
#define AOUT_CHANS_7_0   (AOUT_CHANS_6_0 | AOUT_CHAN_CENTER)
#define AOUT_CHANS_7_1   (AOUT_CHANS_5_1 | AOUT_CHANS_MIDDLE)
#define AOUT_CHANS_8_1   (AOUT_CHANS_7_1 | AOUT_CHAN_REARCENTER)
#define AOUT_CHANS_CENTER   (AOUT_CHAN_CENTER | AOUT_CHAN_REARCENTER)
#define AOUT_CHANS_FRONT   (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)
#define AOUT_CHANS_MIDDLE   (AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT)
#define AOUT_CHANS_REAR   (AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT)
#define AOUT_CHANS_STEREO   AOUT_CHANS_2_0

Referenced by aout_OutputNew().

#define AUDIO_REPLAY_GAIN_ALBUM   (1)
#define AUDIO_REPLAY_GAIN_MAX   (2)

audio replay gain description

Referenced by aout_ReplayGainSelect(), CreateDecoder(), EsOutAdd(), and EsOutUpdateInfo().

#define AUDIO_REPLAY_GAIN_TRACK   (0)
#define ORIENT_FROM_EXIF (   exif)    ((0x01324675U >> (4 * ((exif) - 1))) & 7)

Convert EXIF orientation to enum video_orientation_t.

#define ORIENT_HFLIP (   orient)    ((orient) ^ 1)

Applies horizontal flip to an orientation.

#define ORIENT_IS_MIRROR (   orient)    parity(orient)

If the orientation is natural or mirrored.

#define ORIENT_IS_SWAP (   orient)    (((orient) & 4) != 0)

If the orientation swaps dimensions.

#define ORIENT_ROTATE_180 (   orient)    ((orient) ^ 3)

Applies horizontal flip to an orientation.

#define ORIENT_TO_EXIF (   orient)    ((0x12435867U >> (4 * (orient))) & 15)

Convert enum video_orientation_t to EXIF.

#define ORIENT_VFLIP (   orient)    ((orient) ^ 2)

Applies vertical flip to an orientation.

Typedef Documentation

ES language definition.

Picture orientation.

Enumeration Type Documentation

ES Categories.

Enumerator:
UNKNOWN_ES 
VIDEO_ES 
AUDIO_ES 
SPU_ES 
NAV_ES 

Picture orientation.

Enumerator:
ORIENT_TOP_LEFT 

Top line represents top, left column left.

ORIENT_TOP_RIGHT 

Flipped horizontally.

ORIENT_BOTTOM_LEFT 

Flipped vertically.

ORIENT_BOTTOM_RIGHT 

Rotated 180 degrees.

ORIENT_LEFT_TOP 

Transposed.

ORIENT_LEFT_BOTTOM 

Rotated 90 degrees clockwise.

ORIENT_RIGHT_TOP 

Rotated 90 degrees anti-clockwise.

ORIENT_RIGHT_BOTTOM 

Anti-transposed.

ORIENT_NORMAL 
ORIENT_HFLIPPED 
ORIENT_VFLIPPED 
ORIENT_ROTATED_180 
ORIENT_ROTATED_270 
ORIENT_ROTATED_90 

Function Documentation

void es_format_Clean ( es_format_t fmt)
int es_format_Copy ( es_format_t p_dst,
const es_format_t p_src 
)
void es_format_Init ( es_format_t ,
int  i_cat,
vlc_fourcc_t  i_codec 
)
void es_format_InitFromVideo ( es_format_t ,
const video_format_t  
)
bool es_format_IsSimilar ( const es_format_t ,
const es_format_t  
)
static void video_format_Clean ( video_format_t p_src)
inlinestatic

Cleanup and free palette of this video_format_t.

Parameters
p_srcvideo_format_t structure to clean

References video_format_t::p_palette.

Referenced by subpicture_Update(), ThreadChangeFilters(), ThreadStop(), video_splitter_Delete(), VoutCreate(), and VoutDestructor().

static int video_format_Copy ( video_format_t p_dst,
const video_format_t p_src 
)
inlinestatic

Copy video_format_t including the palette.

Parameters
p_dstvideo_format_t to copy to
p_srcvideo_format_t to copy from

< Not enough memory

< No error

References video_format_t::p_palette, VLC_ENOMEM, and VLC_SUCCESS.

Referenced by es_format_InitFromVideo(), subpicture_Update(), ThreadChangeFilters(), ThreadStart(), video_splitter_New(), vout_display_New(), and VoutValidateFormat().

void video_format_CopyCrop ( video_format_t ,
const video_format_t  
)
void video_format_FixRgb ( video_format_t )
static void video_format_Init ( video_format_t p_src,
vlc_fourcc_t  i_chroma 
)
inlinestatic

Initialize a video_format_t structure with chroma 'i_chroma'.

Parameters
p_srcpointer to video_format_t structure
i_chromachroma value to use

References video_format_t::i_chroma, video_format_t::i_sar_den, video_format_t::i_sar_num, and video_format_t::p_palette.

Referenced by OSDRegion(), OSDTextUpdate(), subpicture_New(), vout_OSDEpgSlider(), and vout_OSDEpgText().

bool video_format_IsSimilar ( const video_format_t ,
const video_format_t  
)
void video_format_Print ( vlc_object_t ,
const char *  ,
const video_format_t  
)
void video_format_ScaleCropAr ( video_format_t ,
const video_format_t  
)
void video_format_Setup ( video_format_t ,
vlc_fourcc_t  i_chroma,
int  i_width,
int  i_height,
int  i_sar_num,
int  i_sar_den 
)