40#define VIDEO_PALETTE_COLORS_MAX 256
41#define VIDEO_PALETTE_CLUT_COUNT 16
52#define AUDIO_REPLAY_GAIN_MAX (2)
53#define AUDIO_REPLAY_GAIN_TRACK (0)
54#define AUDIO_REPLAY_GAIN_ALBUM (1)
117#define AOUT_CHAN_CENTER 0x1
118#define AOUT_CHAN_LEFT 0x2
119#define AOUT_CHAN_RIGHT 0x4
120#define AOUT_CHAN_REARCENTER 0x10
121#define AOUT_CHAN_REARLEFT 0x20
122#define AOUT_CHAN_REARRIGHT 0x40
123#define AOUT_CHAN_MIDDLELEFT 0x100
124#define AOUT_CHAN_MIDDLERIGHT 0x200
125#define AOUT_CHAN_LFE 0x1000
127#define AOUT_CHANS_FRONT (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)
128#define AOUT_CHANS_MIDDLE (AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT)
129#define AOUT_CHANS_REAR (AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT)
130#define AOUT_CHANS_CENTER (AOUT_CHAN_CENTER | AOUT_CHAN_REARCENTER)
132#define AOUT_CHANS_STEREO AOUT_CHANS_2_0
133#define AOUT_CHANS_2_0 (AOUT_CHANS_FRONT)
134#define AOUT_CHANS_2_1 (AOUT_CHANS_FRONT | AOUT_CHAN_LFE)
135#define AOUT_CHANS_3_0 (AOUT_CHANS_FRONT | AOUT_CHAN_CENTER)
136#define AOUT_CHANS_3_1 (AOUT_CHANS_3_0 | AOUT_CHAN_LFE)
137#define AOUT_CHANS_4_0 (AOUT_CHANS_FRONT | AOUT_CHANS_REAR)
138#define AOUT_CHANS_4_1 (AOUT_CHANS_4_0 | AOUT_CHAN_LFE)
139#define AOUT_CHANS_5_0 (AOUT_CHANS_4_0 | AOUT_CHAN_CENTER)
140#define AOUT_CHANS_5_1 (AOUT_CHANS_5_0 | AOUT_CHAN_LFE)
141#define AOUT_CHANS_6_0 (AOUT_CHANS_4_0 | AOUT_CHANS_MIDDLE)
142#define AOUT_CHANS_7_0 (AOUT_CHANS_6_0 | AOUT_CHAN_CENTER)
143#define AOUT_CHANS_7_1 (AOUT_CHANS_5_1 | AOUT_CHANS_MIDDLE)
144#define AOUT_CHANS_8_1 (AOUT_CHANS_7_1 | AOUT_CHAN_REARCENTER)
146#define AOUT_CHANS_4_0_MIDDLE (AOUT_CHANS_FRONT | AOUT_CHANS_MIDDLE)
147#define AOUT_CHANS_4_CENTER_REAR (AOUT_CHANS_FRONT | AOUT_CHANS_CENTER)
148#define AOUT_CHANS_5_0_MIDDLE (AOUT_CHANS_4_0_MIDDLE | AOUT_CHAN_CENTER)
149#define AOUT_CHANS_6_1_MIDDLE (AOUT_CHANS_5_0_MIDDLE | AOUT_CHAN_REARCENTER | AOUT_CHAN_LFE)
153#define AOUT_CHAN_MAX 9
155#define INPUT_CHAN_MAX 64
172#define AOUT_CHANMODE_DUALMONO 0x1
173#define AOUT_CHANMODE_DOLBYSTEREO 0x2
174#define AOUT_CHANMODE_BINAURAL 0x4
189#define ORIENT_MAX ((size_t)ORIENT_RIGHT_BOTTOM)
201#define ORIENT_FROM_EXIF(exif) ((0x57642310U >> (4 * ((exif) - 1))) & 7)
203#define ORIENT_TO_EXIF(orient) ((0x76853421U >> (4 * (orient))) & 15)
205#define ORIENT_IS_MIRROR(orient) vlc_parity(orient)
207#define ORIENT_IS_SWAP(orient) (((orient) & 4) != 0)
209#define ORIENT_HFLIP(orient) ((orient) ^ 1)
211#define ORIENT_VFLIP(orient) ((orient) ^ 2)
213#define ORIENT_ROTATE_180(orient) ((orient) ^ 3)
253#define MULTIVIEW_STEREO_MAX MULTIVIEW_STEREO_CHECKERBOARD
279#define COLOR_PRIMARIES_SRGB COLOR_PRIMARIES_BT709
280#define COLOR_PRIMARIES_SMTPE_170 COLOR_PRIMARIES_BT601_525
281#define COLOR_PRIMARIES_SMTPE_240 COLOR_PRIMARIES_BT601_525
282#define COLOR_PRIMARIES_SMTPE_RP145 COLOR_PRIMARIES_BT601_525
283#define COLOR_PRIMARIES_EBU_3213 COLOR_PRIMARIES_BT601_625
284#define COLOR_PRIMARIES_BT470_BG COLOR_PRIMARIES_BT601_625
285#define COLOR_PRIMARIES_BT470_M COLOR_PRIMARIES_FCC1953
286#define COLOR_PRIMARIES_MAX COLOR_PRIMARIES_FCC1953
303#define TRANSFER_FUNC_BT2020 TRANSFER_FUNC_BT709
304#define TRANSFER_FUNC_SMPTE_170 TRANSFER_FUNC_BT709
305#define TRANSFER_FUNC_SMPTE_274 TRANSFER_FUNC_BT709
306#define TRANSFER_FUNC_SMPTE_293 TRANSFER_FUNC_BT709
307#define TRANSFER_FUNC_SMPTE_296 TRANSFER_FUNC_BT709
308#define TRANSFER_FUNC_ARIB_B67 TRANSFER_FUNC_HLG
309#define TRANSFER_FUNC_MAX TRANSFER_FUNC_HLG
321#define COLOR_SPACE_SRGB COLOR_SPACE_BT709
322#define COLOR_SPACE_SMPTE_170 COLOR_SPACE_BT601
323#define COLOR_SPACE_SMPTE_240 COLOR_SPACE_SMPTE_170
324#define COLOR_SPACE_MAX COLOR_SPACE_BT2020
339#define CHROMA_LOCATION_MAX CHROMA_LOCATION_BOTTOM_CENTER
347#define COLOR_RANGE_STUDIO COLOR_RANGE_LIMITED
348#define COLOR_RANGE_MAX COLOR_RANGE_LIMITED
427 memcpy( p_dst, p_src,
sizeof( *p_dst ) );
490 int i_width,
int i_height,
int i_visible_width,
int i_visible_height,
491 int i_sar_num,
int i_sar_den );
622#define ES_CATEGORY_COUNT (DATA_ES + 1)
627#define ES_PRIORITY_NOT_SELECTABLE -2
628#define ES_PRIORITY_NOT_DEFAULTABLE -1
629#define ES_PRIORITY_SELECTABLE_MIN 0
630#define ES_PRIORITY_MIN ES_PRIORITY_NOT_SELECTABLE
803 uint32_t *gmask, uint32_t *bmask,
bool vlc_fourcc_IsYUV(vlc_fourcc_t fcc)
It returns true if the given fourcc is YUV and false otherwise.
Definition fourcc.c:655
#define VLC_API
Definition fourcc_gen.c:31
uint32_t vlc_fourcc_t
Definition fourcc_gen.c:33
#define VLC_EINVAL
Bad variable value.
Definition vlc_common.h:488
#define VLC_ENOMEM
Not enough memory.
Definition vlc_common.h:482
#define VLC_SUCCESS
No error.
Definition vlc_common.h:478
vlc_fourcc_t i_codec
Definition image.c:568
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:46
uint8_t palette[256][4]
4-byte RGBA/YUVA palette
Definition vlc_es.h:47
Opaque structure representing an ES (Elementary Stream) track.
Definition es_out.c:104
VLC object common members.
Definition vlc_objects.h:53
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:550
video_projection_mode_t
Video projection mode.
Definition vlc_es.h:261
@ PROJECTION_MODE_EQUIRECTANGULAR
Definition vlc_es.h:263
@ PROJECTION_MODE_CUBEMAP_LAYOUT_STANDARD
Definition vlc_es.h:265
@ PROJECTION_MODE_RECTANGULAR
Definition vlc_es.h:262
video_chroma_location_t
Video chroma location.
Definition vlc_es.h:332
@ CHROMA_LOCATION_CENTER
Most common in MPEG-1 Video, JPEG.
Definition vlc_es.h:335
@ CHROMA_LOCATION_TOP_LEFT
Definition vlc_es.h:336
@ CHROMA_LOCATION_LEFT
Most common in MPEG-2 Video, H.264/265.
Definition vlc_es.h:334
@ CHROMA_LOCATION_UNDEF
Definition vlc_es.h:333
@ CHROMA_LOCATION_TOP_CENTER
Definition vlc_es.h:337
@ CHROMA_LOCATION_BOTTOM_CENTER
Definition vlc_es.h:339
@ CHROMA_LOCATION_BOTTOM_LEFT
Definition vlc_es.h:338
#define AOUT_CHANS_7_0
Definition vlc_es.h:143
video_color_space_t
Video color space (i.e.
Definition vlc_es.h:317
@ COLOR_SPACE_BT2020
Definition vlc_es.h:321
@ COLOR_SPACE_BT601
Definition vlc_es.h:319
@ COLOR_SPACE_BT709
Definition vlc_es.h:320
@ COLOR_SPACE_UNDEF
Definition vlc_es.h:318
#define AOUT_CHANS_5_0
Definition vlc_es.h:140
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:218
es_format_category_e
ES Categories.
Definition vlc_es.h:616
@ SPU_ES
Definition vlc_es.h:620
@ UNKNOWN_ES
Definition vlc_es.h:617
@ DATA_ES
Definition vlc_es.h:621
@ AUDIO_ES
Definition vlc_es.h:619
@ VIDEO_ES
Definition vlc_es.h:618
#define AOUT_CHANS_3_0
Definition vlc_es.h:136
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:301
void video_format_ScaleCropAr(video_format_t *, const video_format_t *)
It will compute the crop/ar properties when scaling.
Definition es_format.c:61
video_orientation_t
Picture orientation.
Definition vlc_es.h:181
@ ORIENT_NORMAL
Definition vlc_es.h:192
@ ORIENT_LEFT_TOP
Transposed.
Definition vlc_es.h:186
@ ORIENT_RIGHT_TOP
Rotated 90 degrees clockwise.
Definition vlc_es.h:188
@ ORIENT_VFLIPPED
Definition vlc_es.h:196
@ ORIENT_ROTATED_180
Definition vlc_es.h:197
@ ORIENT_ANTI_TRANSPOSED
Definition vlc_es.h:194
@ ORIENT_RIGHT_BOTTOM
Anti-transposed.
Definition vlc_es.h:189
@ ORIENT_ROTATED_270
Definition vlc_es.h:198
@ ORIENT_TRANSPOSED
Definition vlc_es.h:193
@ ORIENT_BOTTOM_RIGHT
Rotated 180 degrees.
Definition vlc_es.h:185
@ ORIENT_TOP_RIGHT
Flipped horizontally.
Definition vlc_es.h:183
@ ORIENT_HFLIPPED
Definition vlc_es.h:195
@ ORIENT_ROTATED_90
Definition vlc_es.h:199
@ ORIENT_LEFT_BOTTOM
Rotated 90 degrees anti-clockwise.
Definition vlc_es.h:187
@ ORIENT_BOTTOM_LEFT
Flipped vertically.
Definition vlc_es.h:184
@ ORIENT_TOP_LEFT
Top line represents top, left column left.
Definition vlc_es.h:182
#define AOUT_CHANS_8_1
Definition vlc_es.h:145
vlc_es_id_t * vlc_es_id_Hold(vlc_es_id_t *es)
Increase the ES track id reference count.
Definition es_out.c:4618
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:283
const char * vlc_es_id_GetStrId(vlc_es_id_t *id)
Get the unique string identifier.
Definition es_out.c:4643
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:424
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:414
audio_channel_type_t
Audio channel type.
Definition vlc_es.h:74
@ AUDIO_CHANNEL_TYPE_AMBISONICS
Definition vlc_es.h:76
@ AUDIO_CHANNEL_TYPE_BITMAP
Definition vlc_es.h:75
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:53
video_multiview_mode_t
Definition vlc_es.h:232
@ MULTIVIEW_STEREO_TB
Definition vlc_es.h:240
@ MULTIVIEW_STEREO_ROW
Definition vlc_es.h:243
@ MULTIVIEW_STEREO_CHECKERBOARD
Definition vlc_es.h:252
@ MULTIVIEW_STEREO_SBS
Definition vlc_es.h:237
@ MULTIVIEW_2D
Definition vlc_es.h:234
@ MULTIVIEW_STEREO_COL
Definition vlc_es.h:246
@ MULTIVIEW_STEREO_FRAME
Definition vlc_es.h:249
video_color_range_t
Definition vlc_es.h:344
@ COLOR_RANGE_FULL
Definition vlc_es.h:346
@ COLOR_RANGE_LIMITED
Definition vlc_es.h:347
@ COLOR_RANGE_UNDEF
Definition vlc_es.h:345
void video_format_LogDifferences(struct vlc_logger *log, const char *name_a, const video_format_t *a, const char *name_b, const video_format_t *b)
Log differences between 2 video format.
Definition es_format.c:242
video_color_primaries_t
Video color primaries (a.k.a.
Definition vlc_es.h:272
@ COLOR_PRIMARIES_BT601_625
Definition vlc_es.h:275
@ COLOR_PRIMARIES_BT601_525
Definition vlc_es.h:274
@ COLOR_PRIMARIES_FCC1953
Definition vlc_es.h:279
@ COLOR_PRIMARIES_BT2020
Definition vlc_es.h:277
@ COLOR_PRIMARIES_DCI_P3
Definition vlc_es.h:278
@ COLOR_PRIMARIES_UNDEF
Definition vlc_es.h:273
@ COLOR_PRIMARIES_BT709
Definition vlc_es.h:276
enum es_format_category_e vlc_es_id_GetCat(vlc_es_id_t *id)
Get the ES category.
Definition es_out.c:4649
video_transfer_func_t
Video transfer functions.
Definition vlc_es.h:294
@ TRANSFER_FUNC_BT709
Definition vlc_es.h:300
@ TRANSFER_FUNC_LINEAR
Definition vlc_es.h:296
@ TRANSFER_FUNC_BT470_M
Definition vlc_es.h:299
@ TRANSFER_FUNC_SRGB
Gamma 2.2.
Definition vlc_es.h:297
@ TRANSFER_FUNC_UNDEF
Definition vlc_es.h:295
@ TRANSFER_FUNC_HLG
Definition vlc_es.h:303
@ TRANSFER_FUNC_SMPTE_240
Definition vlc_es.h:302
@ TRANSFER_FUNC_BT470_BG
Definition vlc_es.h:298
@ TRANSFER_FUNC_SMPTE_ST2084
Definition vlc_es.h:301
static void video_format_AdjustColorSpace(video_format_t *p_fmt)
Definition vlc_es.h:439
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:426
void video_format_TransformBy(video_format_t *fmt, video_transform_t transform)
This function applies the transform operation to fmt.
Definition es_format.c:140
#define AOUT_CHANS_5_1
Definition vlc_es.h:141
static const uint16_t vlc_chan_maps[]
Definition vlc_es.h:158
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:36
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:144
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:322
bool video_format_IsSameChroma(const video_format_t *, const video_format_t *)
Checks whether the video formats have the same chroma and mask.
Definition es_format.c:209
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:401
#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:4637
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:724
void es_format_LogDifferences(struct vlc_logger *, const char *name_a, const es_format_t *a, const char *name_b, const es_format_t *b)
Log differences between 2 ES format.
Definition es_format.c:471
#define AOUT_CHANS_4_0
Definition vlc_es.h:138
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:124
void vlc_viewpoint_from_orientation(vlc_viewpoint_t *vp, video_orientation_t orient)
Definition viewpoint.c:74
void vlc_es_id_Release(vlc_es_id_t *id)
Decrease the ES track id reference count.
Definition es_out.c:4625
static void video_format_Clean(video_format_t *p_src)
Cleanup and free palette of this video_format_t.
Definition vlc_es.h:480
#define VIDEO_PALETTE_CLUT_COUNT
Definition vlc_es.h:42
static void video_format_CopyCropAr(video_format_t *dst, const video_format_t *src)
Definition vlc_es.h:499
static int vlc_RGBChromaToMask(vlc_fourcc_t fcc, uint32_t *rmask, uint32_t *gmask, uint32_t *bmask, uint32_t *amask)
Get the native endianness mask for a RGB fourcc.
Definition vlc_es.h:803
#define AOUT_CHANS_2_0
Definition vlc_es.h:134
#define AUDIO_REPLAY_GAIN_MAX
audio replay gain description
Definition vlc_es.h:53
video_transform_t
Definition vlc_es.h:220
@ TRANSFORM_HFLIP
Definition vlc_es.h:222
@ TRANSFORM_R180
Definition vlc_es.h:224
@ TRANSFORM_TRANSPOSE
Definition vlc_es.h:227
@ TRANSFORM_ANTI_TRANSPOSE
Definition vlc_es.h:228
@ TRANSFORM_R90
Definition vlc_es.h:226
@ TRANSFORM_VFLIP
Definition vlc_es.h:223
@ TRANSFORM_IDENTITY
Definition vlc_es.h:221
@ TRANSFORM_R270
Definition vlc_es.h:225
int vlc_es_id_GetInputId(vlc_es_id_t *id)
Get the ES track input id.
Definition es_out.c:4631
#define AOUT_CHAN_CENTER
Definition vlc_es.h:118
#define VLC_CODEC_RGBA
Definition vlc_fourcc.h:406
#define VLC_CODEC_XBGR
Definition vlc_fourcc.h:348
#define VLC_CODEC_ABGR
Definition vlc_fourcc.h:412
#define VLC_CODEC_BGRA
Definition vlc_fourcc.h:410
#define VLC_CODEC_ARGB
Definition vlc_fourcc.h:408
#define VLC_CODEC_RGBX
Definition vlc_fourcc.h:344
#define VLC_CODEC_XRGB
Definition vlc_fourcc.h:342
#define VLC_CODEC_BGRX
Definition vlc_fourcc.h:346
Video and audio viewpoint struct and helpers.
static void vlc_viewpoint_init(vlc_viewpoint_t *p_vp)
Definition vlc_viewpoint.h:48