40#define VIDEO_PALETTE_COLORS_MAX 256
51#define AUDIO_REPLAY_GAIN_MAX (2)
52#define AUDIO_REPLAY_GAIN_TRACK (0)
53#define AUDIO_REPLAY_GAIN_ALBUM (1)
116#define AOUT_CHAN_CENTER 0x1
117#define AOUT_CHAN_LEFT 0x2
118#define AOUT_CHAN_RIGHT 0x4
119#define AOUT_CHAN_REARCENTER 0x10
120#define AOUT_CHAN_REARLEFT 0x20
121#define AOUT_CHAN_REARRIGHT 0x40
122#define AOUT_CHAN_MIDDLELEFT 0x100
123#define AOUT_CHAN_MIDDLERIGHT 0x200
124#define AOUT_CHAN_LFE 0x1000
126#define AOUT_CHANS_FRONT (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)
127#define AOUT_CHANS_MIDDLE (AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT)
128#define AOUT_CHANS_REAR (AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT)
129#define AOUT_CHANS_CENTER (AOUT_CHAN_CENTER | AOUT_CHAN_REARCENTER)
131#define AOUT_CHANS_STEREO AOUT_CHANS_2_0
132#define AOUT_CHANS_2_0 (AOUT_CHANS_FRONT)
133#define AOUT_CHANS_2_1 (AOUT_CHANS_FRONT | AOUT_CHAN_LFE)
134#define AOUT_CHANS_3_0 (AOUT_CHANS_FRONT | AOUT_CHAN_CENTER)
135#define AOUT_CHANS_3_1 (AOUT_CHANS_3_0 | AOUT_CHAN_LFE)
136#define AOUT_CHANS_4_0 (AOUT_CHANS_FRONT | AOUT_CHANS_REAR)
137#define AOUT_CHANS_4_1 (AOUT_CHANS_4_0 | AOUT_CHAN_LFE)
138#define AOUT_CHANS_5_0 (AOUT_CHANS_4_0 | AOUT_CHAN_CENTER)
139#define AOUT_CHANS_5_1 (AOUT_CHANS_5_0 | AOUT_CHAN_LFE)
140#define AOUT_CHANS_6_0 (AOUT_CHANS_4_0 | AOUT_CHANS_MIDDLE)
141#define AOUT_CHANS_7_0 (AOUT_CHANS_6_0 | AOUT_CHAN_CENTER)
142#define AOUT_CHANS_7_1 (AOUT_CHANS_5_1 | AOUT_CHANS_MIDDLE)
143#define AOUT_CHANS_8_1 (AOUT_CHANS_7_1 | AOUT_CHAN_REARCENTER)
145#define AOUT_CHANS_4_0_MIDDLE (AOUT_CHANS_FRONT | AOUT_CHANS_MIDDLE)
146#define AOUT_CHANS_4_CENTER_REAR (AOUT_CHANS_FRONT | AOUT_CHANS_CENTER)
147#define AOUT_CHANS_5_0_MIDDLE (AOUT_CHANS_4_0_MIDDLE | AOUT_CHAN_CENTER)
148#define AOUT_CHANS_6_1_MIDDLE (AOUT_CHANS_5_0_MIDDLE | AOUT_CHAN_REARCENTER | AOUT_CHAN_LFE)
152#define AOUT_CHAN_MAX 9
154#define INPUT_CHAN_MAX 64
171#define AOUT_CHANMODE_DUALMONO 0x1
172#define AOUT_CHANMODE_DOLBYSTEREO 0x2
173#define AOUT_CHANMODE_BINAURAL 0x4
188#define ORIENT_MAX ((size_t)ORIENT_RIGHT_BOTTOM)
200#define ORIENT_FROM_EXIF(exif) ((0x57642310U >> (4 * ((exif) - 1))) & 7)
202#define ORIENT_TO_EXIF(orient) ((0x76853421U >> (4 * (orient))) & 15)
204#define ORIENT_IS_MIRROR(orient) vlc_parity(orient)
206#define ORIENT_IS_SWAP(orient) (((orient) & 4) != 0)
208#define ORIENT_HFLIP(orient) ((orient) ^ 1)
210#define ORIENT_VFLIP(orient) ((orient) ^ 2)
212#define ORIENT_ROTATE_180(orient) ((orient) ^ 3)
249#define MULTIVIEW_STEREO_MAX MULTIVIEW_STEREO_CHECKERBOARD
275#define COLOR_PRIMARIES_SRGB COLOR_PRIMARIES_BT709
276#define COLOR_PRIMARIES_SMTPE_170 COLOR_PRIMARIES_BT601_525
277#define COLOR_PRIMARIES_SMTPE_240 COLOR_PRIMARIES_BT601_525
278#define COLOR_PRIMARIES_SMTPE_RP145 COLOR_PRIMARIES_BT601_525
279#define COLOR_PRIMARIES_EBU_3213 COLOR_PRIMARIES_BT601_625
280#define COLOR_PRIMARIES_BT470_BG COLOR_PRIMARIES_BT601_625
281#define COLOR_PRIMARIES_BT470_M COLOR_PRIMARIES_FCC1953
282#define COLOR_PRIMARIES_MAX COLOR_PRIMARIES_FCC1953
299#define TRANSFER_FUNC_BT2020 TRANSFER_FUNC_BT709
300#define TRANSFER_FUNC_SMPTE_170 TRANSFER_FUNC_BT709
301#define TRANSFER_FUNC_SMPTE_274 TRANSFER_FUNC_BT709
302#define TRANSFER_FUNC_SMPTE_293 TRANSFER_FUNC_BT709
303#define TRANSFER_FUNC_SMPTE_296 TRANSFER_FUNC_BT709
304#define TRANSFER_FUNC_ARIB_B67 TRANSFER_FUNC_HLG
305#define TRANSFER_FUNC_MAX TRANSFER_FUNC_HLG
317#define COLOR_SPACE_SRGB COLOR_SPACE_BT709
318#define COLOR_SPACE_SMPTE_170 COLOR_SPACE_BT601
319#define COLOR_SPACE_SMPTE_240 COLOR_SPACE_SMPTE_170
320#define COLOR_SPACE_MAX COLOR_SPACE_BT2020
335#define CHROMA_LOCATION_MAX CHROMA_LOCATION_BOTTOM_CENTER
343#define COLOR_RANGE_STUDIO COLOR_RANGE_LIMITED
344#define COLOR_RANGE_MAX COLOR_RANGE_LIMITED
426 memcpy( p_dst, p_src,
sizeof( *p_dst ) );
489 int i_width,
int i_height,
int i_visible_width,
int i_visible_height,
490 int i_sar_num,
int i_sar_den );
599#define SPU_PALETTE_DEFINED 0xbeefbeef
619#define ES_CATEGORY_COUNT (DATA_ES + 1)
624#define ES_PRIORITY_NOT_SELECTABLE -2
625#define ES_PRIORITY_NOT_DEFAULTABLE -1
626#define ES_PRIORITY_SELECTABLE_MIN 0
627#define ES_PRIORITY_MIN ES_PRIORITY_NOT_SELECTABLE
bool vlc_fourcc_IsYUV(vlc_fourcc_t fcc)
It returns true if the given fourcc is YUV and false otherwise.
Definition: fourcc.c:680
#define VLC_API
Definition: fourcc_gen.c:31
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:33
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:507
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:503
vlc_fourcc_t i_codec
Definition: image.c:589
static void transform(MD5_CONTEXT *ctx, const unsigned char *data)
Definition: md5.c:84
int i_entries
number of in-use palette entries
Definition: vlc_es.h:45
uint8_t palette[256][4]
4-byte RGBA/YUVA palette
Definition: vlc_es.h:46
Opaque structure representing an ES (Elementary Stream) track.
Definition: es_out.c:98
VLC object common members.
Definition: vlc_objects.h:45
Viewpoints.
Definition: vlc_viewpoint.h:41
This file is a collection of common definitions and types.
static video_transform_t transform_Inverse(video_transform_t transform)
Definition: vlc_es.h:546
video_projection_mode_t
Video projection mode.
Definition: vlc_es.h:257
@ PROJECTION_MODE_EQUIRECTANGULAR
Definition: vlc_es.h:259
@ PROJECTION_MODE_CUBEMAP_LAYOUT_STANDARD
Definition: vlc_es.h:261
@ PROJECTION_MODE_RECTANGULAR
Definition: vlc_es.h:258
video_chroma_location_t
Video chroma location.
Definition: vlc_es.h:328
@ CHROMA_LOCATION_CENTER
Most common in MPEG-1 Video, JPEG.
Definition: vlc_es.h:331
@ CHROMA_LOCATION_TOP_LEFT
Definition: vlc_es.h:332
@ CHROMA_LOCATION_LEFT
Most common in MPEG-2 Video, H.264/265.
Definition: vlc_es.h:330
@ CHROMA_LOCATION_UNDEF
Definition: vlc_es.h:329
@ CHROMA_LOCATION_TOP_CENTER
Definition: vlc_es.h:333
@ CHROMA_LOCATION_BOTTOM_CENTER
Definition: vlc_es.h:335
@ CHROMA_LOCATION_BOTTOM_LEFT
Definition: vlc_es.h:334
#define AOUT_CHANS_7_0
Definition: vlc_es.h:142
video_color_space_t
Video color space (i.e.
Definition: vlc_es.h:313
@ COLOR_SPACE_BT2020
Definition: vlc_es.h:317
@ COLOR_SPACE_BT601
Definition: vlc_es.h:315
@ COLOR_SPACE_BT709
Definition: vlc_es.h:316
@ COLOR_SPACE_UNDEF
Definition: vlc_es.h:314
#define AOUT_CHANS_5_0
Definition: vlc_es.h:139
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.
Definition: es_format.c:339
es_format_category_e
ES Categories.
Definition: vlc_es.h:613
@ SPU_ES
Definition: vlc_es.h:617
@ UNKNOWN_ES
Definition: vlc_es.h:614
@ DATA_ES
Definition: vlc_es.h:618
@ AUDIO_ES
Definition: vlc_es.h:616
@ VIDEO_ES
Definition: vlc_es.h:615
#define AOUT_CHANS_3_0
Definition: vlc_es.h:135
void es_format_Init(es_format_t *, int i_cat, vlc_fourcc_t i_codec)
This function will initialize a es_format_t structure.
Definition: es_format.c:410
void video_format_ScaleCropAr(video_format_t *, const video_format_t *)
It will compute the crop/ar properties when scaling.
Definition: es_format.c:191
video_orientation_t
Picture orientation.
Definition: vlc_es.h:180
@ ORIENT_NORMAL
Definition: vlc_es.h:191
@ ORIENT_LEFT_TOP
Transposed.
Definition: vlc_es.h:185
@ ORIENT_RIGHT_TOP
Rotated 90 degrees clockwise.
Definition: vlc_es.h:187
@ ORIENT_VFLIPPED
Definition: vlc_es.h:195
@ ORIENT_ROTATED_180
Definition: vlc_es.h:196
@ ORIENT_ANTI_TRANSPOSED
Definition: vlc_es.h:193
@ ORIENT_RIGHT_BOTTOM
Anti-transposed.
Definition: vlc_es.h:188
@ ORIENT_ROTATED_270
Definition: vlc_es.h:197
@ ORIENT_TRANSPOSED
Definition: vlc_es.h:192
@ ORIENT_BOTTOM_RIGHT
Rotated 180 degrees.
Definition: vlc_es.h:184
@ ORIENT_TOP_RIGHT
Flipped horizontally.
Definition: vlc_es.h:182
@ ORIENT_HFLIPPED
Definition: vlc_es.h:194
@ ORIENT_ROTATED_90
Definition: vlc_es.h:198
@ ORIENT_LEFT_BOTTOM
Rotated 90 degrees anti-clockwise.
Definition: vlc_es.h:186
@ ORIENT_BOTTOM_LEFT
Flipped vertically.
Definition: vlc_es.h:183
@ ORIENT_TOP_LEFT
Top line represents top, left column left.
Definition: vlc_es.h:181
#define AOUT_CHANS_8_1
Definition: vlc_es.h:144
vlc_es_id_t * vlc_es_id_Hold(vlc_es_id_t *es)
Increase the ES track id reference count.
Definition: es_out.c:4636
void video_format_ApplyRotation(video_format_t *out, const video_format_t *in)
This function "normalizes" the formats orientation, by switching the a/r according to the orientation...
void video_format_Print(vlc_object_t *, const char *, const video_format_t *)
It prints details about the given video_format_t.
Definition: es_format.c:391
const char * vlc_es_id_GetStrId(vlc_es_id_t *id)
Get the unique string identifier.
Definition: es_out.c:4661
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.
Definition: es_format.c:533
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'.
Definition: vlc_es.h:413
audio_channel_type_t
Audio channel type.
Definition: vlc_es.h:73
@ AUDIO_CHANNEL_TYPE_AMBISONICS
Definition: vlc_es.h:75
@ AUDIO_CHANNEL_TYPE_BITMAP
Definition: vlc_es.h:74
void video_format_CopyCrop(video_format_t *, const video_format_t *)
It will copy the crop properties from a video_format_t to another.
Definition: es_format.c:183
video_multiview_mode_t
Definition: vlc_es.h:228
@ MULTIVIEW_STEREO_TB
Definition: vlc_es.h:236
@ MULTIVIEW_STEREO_ROW
Definition: vlc_es.h:239
@ MULTIVIEW_STEREO_CHECKERBOARD
Definition: vlc_es.h:248
@ MULTIVIEW_STEREO_SBS
Definition: vlc_es.h:233
@ MULTIVIEW_2D
Definition: vlc_es.h:230
@ MULTIVIEW_STEREO_COL
Definition: vlc_es.h:242
@ MULTIVIEW_STEREO_FRAME
Definition: vlc_es.h:245
video_color_range_t
Definition: vlc_es.h:340
@ COLOR_RANGE_FULL
Definition: vlc_es.h:342
@ COLOR_RANGE_LIMITED
Definition: vlc_es.h:343
@ COLOR_RANGE_UNDEF
Definition: vlc_es.h:341
video_color_primaries_t
Video color primaries (a.k.a.
Definition: vlc_es.h:268
@ COLOR_PRIMARIES_BT601_625
Definition: vlc_es.h:271
@ COLOR_PRIMARIES_BT601_525
Definition: vlc_es.h:270
@ COLOR_PRIMARIES_FCC1953
Definition: vlc_es.h:275
@ COLOR_PRIMARIES_BT2020
Definition: vlc_es.h:273
@ COLOR_PRIMARIES_DCI_P3
Definition: vlc_es.h:274
@ COLOR_PRIMARIES_UNDEF
Definition: vlc_es.h:269
@ COLOR_PRIMARIES_BT709
Definition: vlc_es.h:272
enum es_format_category_e vlc_es_id_GetCat(vlc_es_id_t *id)
Get the ES category.
Definition: es_out.c:4667
video_transfer_func_t
Video transfer functions.
Definition: vlc_es.h:290
@ TRANSFER_FUNC_BT709
Definition: vlc_es.h:296
@ TRANSFER_FUNC_LINEAR
Definition: vlc_es.h:292
@ TRANSFER_FUNC_BT470_M
Definition: vlc_es.h:295
@ TRANSFER_FUNC_SRGB
Gamma 2.2.
Definition: vlc_es.h:293
@ TRANSFER_FUNC_UNDEF
Definition: vlc_es.h:291
@ TRANSFER_FUNC_HLG
Definition: vlc_es.h:299
@ TRANSFER_FUNC_SMPTE_240
Definition: vlc_es.h:298
@ TRANSFER_FUNC_BT470_BG
Definition: vlc_es.h:294
@ TRANSFER_FUNC_SMPTE_ST2084
Definition: vlc_es.h:297
static void video_format_AdjustColorSpace(video_format_t *p_fmt)
Definition: vlc_es.h:438
static int video_format_Copy(video_format_t *p_dst, const video_format_t *p_src)
Copy video_format_t including the palette.
Definition: vlc_es.h:425
void video_format_FixRgb(video_format_t *)
This function will fill all RGB shift from RGB masks.
Definition: es_format.c:37
void video_format_TransformBy(video_format_t *fmt, video_transform_t transform)
This function applies the transform operation to fmt.
Definition: es_format.c:270
#define AOUT_CHANS_5_1
Definition: vlc_es.h:140
static const uint16_t vlc_chan_maps[]
Definition: vlc_es.h:157
void video_format_Setup(video_format_t *, vlc_fourcc_t i_chroma, int i_width, int i_height, int i_visible_width, int i_visible_height, int i_sar_num, int i_sar_den)
It will fill up a video_format_t using the given arguments.
Definition: es_format.c:73
struct extra_languages_t extra_languages_t
ES language definition.
int es_format_Copy(es_format_t *p_dst, const es_format_t *p_src)
This functions will copy a es_format_t.
#define AOUT_CHANS_7_1
Definition: vlc_es.h:143
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.
Definition: es_format.c:431
void es_format_Clean(es_format_t *fmt)
This function will clean up a es_format_t and release all associated resources.
Definition: es_format.c:510
#define VIDEO_PALETTE_COLORS_MAX
video palette data
Definition: vlc_es.h:41
bool vlc_es_id_IsStrIdStable(vlc_es_id_t *id)
Return whether the ES track identifier is stable.
Definition: es_out.c:4655
static void es_format_Change(es_format_t *fmt, int i_cat, vlc_fourcc_t i_codec)
Changes ES format to another category Format must have been properly initialized.
Definition: vlc_es.h:711
#define AOUT_CHANS_4_0
Definition: vlc_es.h:137
void video_format_TransformTo(video_format_t *fmt, video_orientation_t dst_orientation)
This function applies the transforms necessary to fmt so that the resulting fmt has the dst_orientati...
video_transform_t video_format_GetTransform(video_orientation_t src, video_orientation_t dst)
Returns the operation required to transform src into dst.
Definition: es_format.c:254
void vlc_es_id_Release(vlc_es_id_t *id)
Decrease the ES track id reference count.
Definition: es_out.c:4643
static void video_format_Clean(video_format_t *p_src)
Cleanup and free palette of this video_format_t.
Definition: vlc_es.h:479
static void video_format_CopyCropAr(video_format_t *dst, const video_format_t *src)
Definition: vlc_es.h:498
#define AOUT_CHANS_2_0
Definition: vlc_es.h:133
#define AUDIO_REPLAY_GAIN_MAX
audio replay gain description
Definition: vlc_es.h:52
video_transform_t
Definition: vlc_es.h:216
@ TRANSFORM_HFLIP
Definition: vlc_es.h:218
@ TRANSFORM_R180
Definition: vlc_es.h:220
@ TRANSFORM_TRANSPOSE
Definition: vlc_es.h:223
@ TRANSFORM_ANTI_TRANSPOSE
Definition: vlc_es.h:224
@ TRANSFORM_R90
Definition: vlc_es.h:222
@ TRANSFORM_VFLIP
Definition: vlc_es.h:219
@ TRANSFORM_IDENTITY
Definition: vlc_es.h:217
@ TRANSFORM_R270
Definition: vlc_es.h:221
int vlc_es_id_GetInputId(vlc_es_id_t *id)
Get the ES track input id.
Definition: es_out.c:4649
#define AOUT_CHAN_CENTER
Definition: vlc_es.h:117
Video and audio viewpoint struct and helpers.
static void vlc_viewpoint_init(vlc_viewpoint_t *p_vp)
Definition: vlc_viewpoint.h:48