41#define VIDEO_PALETTE_COLORS_MAX 256
42#define VIDEO_PALETTE_CLUT_COUNT 16
98#define AOUT_CHAN_CENTER 0x1
99#define AOUT_CHAN_LEFT 0x2
100#define AOUT_CHAN_RIGHT 0x4
101#define AOUT_CHAN_REARCENTER 0x10
102#define AOUT_CHAN_REARLEFT 0x20
103#define AOUT_CHAN_REARRIGHT 0x40
104#define AOUT_CHAN_MIDDLELEFT 0x100
105#define AOUT_CHAN_MIDDLERIGHT 0x200
106#define AOUT_CHAN_LFE 0x1000
108#define AOUT_CHANS_FRONT (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)
109#define AOUT_CHANS_MIDDLE (AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT)
110#define AOUT_CHANS_REAR (AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT)
111#define AOUT_CHANS_CENTER (AOUT_CHAN_CENTER | AOUT_CHAN_REARCENTER)
113#define AOUT_CHANS_STEREO AOUT_CHANS_2_0
114#define AOUT_CHANS_2_0 (AOUT_CHANS_FRONT)
115#define AOUT_CHANS_2_1 (AOUT_CHANS_FRONT | AOUT_CHAN_LFE)
116#define AOUT_CHANS_3_0 (AOUT_CHANS_FRONT | AOUT_CHAN_CENTER)
117#define AOUT_CHANS_3_1 (AOUT_CHANS_3_0 | AOUT_CHAN_LFE)
118#define AOUT_CHANS_4_0 (AOUT_CHANS_FRONT | AOUT_CHANS_REAR)
119#define AOUT_CHANS_4_1 (AOUT_CHANS_4_0 | AOUT_CHAN_LFE)
120#define AOUT_CHANS_5_0 (AOUT_CHANS_4_0 | AOUT_CHAN_CENTER)
121#define AOUT_CHANS_5_1 (AOUT_CHANS_5_0 | AOUT_CHAN_LFE)
122#define AOUT_CHANS_6_0 (AOUT_CHANS_4_0 | AOUT_CHANS_MIDDLE)
123#define AOUT_CHANS_7_0 (AOUT_CHANS_6_0 | AOUT_CHAN_CENTER)
124#define AOUT_CHANS_7_1 (AOUT_CHANS_5_1 | AOUT_CHANS_MIDDLE)
125#define AOUT_CHANS_8_1 (AOUT_CHANS_7_1 | AOUT_CHAN_REARCENTER)
127#define AOUT_CHANS_4_0_MIDDLE (AOUT_CHANS_FRONT | AOUT_CHANS_MIDDLE)
128#define AOUT_CHANS_4_CENTER_REAR (AOUT_CHANS_FRONT | AOUT_CHANS_CENTER)
129#define AOUT_CHANS_5_0_MIDDLE (AOUT_CHANS_4_0_MIDDLE | AOUT_CHAN_CENTER)
130#define AOUT_CHANS_6_1_MIDDLE (AOUT_CHANS_5_0_MIDDLE | AOUT_CHAN_REARCENTER | AOUT_CHAN_LFE)
134#define AOUT_CHAN_MAX 9
136#define INPUT_CHAN_MAX 64
153#define AOUT_CHANMODE_DUALMONO 0x1
154#define AOUT_CHANMODE_DOLBYSTEREO 0x2
155#define AOUT_CHANMODE_BINAURAL 0x4
170#define ORIENT_MAX ((size_t)ORIENT_RIGHT_BOTTOM)
182#define ORIENT_FROM_EXIF(exif) ((0x57642310U >> (4 * ((exif) - 1))) & 7)
184#define ORIENT_TO_EXIF(orient) ((0x76853421U >> (4 * (orient))) & 15)
186#define ORIENT_IS_MIRROR(orient) vlc_parity(orient)
188#define ORIENT_IS_SWAP(orient) (((orient) & 4) != 0)
190#define ORIENT_HFLIP(orient) ((orient) ^ 1)
192#define ORIENT_VFLIP(orient) ((orient) ^ 2)
194#define ORIENT_ROTATE_180(orient) ((orient) ^ 3)
234#define MULTIVIEW_STEREO_MAX MULTIVIEW_STEREO_CHECKERBOARD
260#define COLOR_PRIMARIES_SRGB COLOR_PRIMARIES_BT709
261#define COLOR_PRIMARIES_SMTPE_170 COLOR_PRIMARIES_BT601_525
262#define COLOR_PRIMARIES_SMTPE_240 COLOR_PRIMARIES_BT601_525
263#define COLOR_PRIMARIES_SMTPE_RP145 COLOR_PRIMARIES_BT601_525
264#define COLOR_PRIMARIES_EBU_3213 COLOR_PRIMARIES_BT601_625
265#define COLOR_PRIMARIES_BT470_BG COLOR_PRIMARIES_BT601_625
266#define COLOR_PRIMARIES_BT470_M COLOR_PRIMARIES_FCC1953
267#define COLOR_PRIMARIES_MAX COLOR_PRIMARIES_FCC1953
284#define TRANSFER_FUNC_BT2020 TRANSFER_FUNC_BT709
285#define TRANSFER_FUNC_SMPTE_170 TRANSFER_FUNC_BT709
286#define TRANSFER_FUNC_SMPTE_274 TRANSFER_FUNC_BT709
287#define TRANSFER_FUNC_SMPTE_293 TRANSFER_FUNC_BT709
288#define TRANSFER_FUNC_SMPTE_296 TRANSFER_FUNC_BT709
289#define TRANSFER_FUNC_ARIB_B67 TRANSFER_FUNC_HLG
290#define TRANSFER_FUNC_MAX TRANSFER_FUNC_HLG
302#define COLOR_SPACE_SRGB COLOR_SPACE_BT709
303#define COLOR_SPACE_SMPTE_170 COLOR_SPACE_BT601
304#define COLOR_SPACE_SMPTE_240 COLOR_SPACE_SMPTE_170
305#define COLOR_SPACE_MAX COLOR_SPACE_BT2020
320#define CHROMA_LOCATION_MAX CHROMA_LOCATION_BOTTOM_CENTER
328#define COLOR_RANGE_STUDIO COLOR_RANGE_LIMITED
329#define COLOR_RANGE_MAX COLOR_RANGE_LIMITED
408 memcpy( p_dst, p_src,
sizeof( *p_dst ) );
471 int i_width,
int i_height,
int i_visible_width,
int i_visible_height,
472 int i_sar_num,
int i_sar_den );
603#define ES_CATEGORY_COUNT (DATA_ES + 1)
608#define ES_PRIORITY_NOT_SELECTABLE -2
609#define ES_PRIORITY_NOT_DEFAULTABLE -1
610#define ES_PRIORITY_SELECTABLE_MIN 0
611#define ES_PRIORITY_MIN ES_PRIORITY_NOT_SELECTABLE
784 uint32_t *gmask, uint32_t *bmask,
784 uint32_t *gmask, uint32_t *bmask, {
…}
#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
Audio replay gain.
Definition vlc_replay_gain.h:48
int i_entries
number of in-use palette entries
Definition vlc_es.h:47
uint8_t palette[256][4]
4-byte RGBA/YUVA palette
Definition vlc_es.h:48
Opaque structure representing an ES (Elementary Stream) track.
Definition es_out.c:105
Definition vlc_messages.h:125
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:531
video_projection_mode_t
Video projection mode.
Definition vlc_es.h:242
@ PROJECTION_MODE_EQUIRECTANGULAR
Definition vlc_es.h:244
@ PROJECTION_MODE_CUBEMAP_LAYOUT_STANDARD
Definition vlc_es.h:246
@ PROJECTION_MODE_RECTANGULAR
Definition vlc_es.h:243
video_chroma_location_t
Video chroma location.
Definition vlc_es.h:313
@ CHROMA_LOCATION_CENTER
Most common in MPEG-1 Video, JPEG.
Definition vlc_es.h:316
@ CHROMA_LOCATION_TOP_LEFT
Definition vlc_es.h:317
@ CHROMA_LOCATION_LEFT
Most common in MPEG-2 Video, H.264/265.
Definition vlc_es.h:315
@ CHROMA_LOCATION_UNDEF
Definition vlc_es.h:314
@ CHROMA_LOCATION_TOP_CENTER
Definition vlc_es.h:318
@ CHROMA_LOCATION_BOTTOM_CENTER
Definition vlc_es.h:320
@ CHROMA_LOCATION_BOTTOM_LEFT
Definition vlc_es.h:319
#define AOUT_CHANS_7_0
Definition vlc_es.h:124
video_color_space_t
Video color space (i.e.
Definition vlc_es.h:298
@ COLOR_SPACE_BT2020
Definition vlc_es.h:302
@ COLOR_SPACE_BT601
Definition vlc_es.h:300
@ COLOR_SPACE_BT709
Definition vlc_es.h:301
@ COLOR_SPACE_UNDEF
Definition vlc_es.h:299
#define AOUT_CHANS_5_0
Definition vlc_es.h:121
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:597
@ SPU_ES
Definition vlc_es.h:601
@ UNKNOWN_ES
Definition vlc_es.h:598
@ DATA_ES
Definition vlc_es.h:602
@ AUDIO_ES
Definition vlc_es.h:600
@ VIDEO_ES
Definition vlc_es.h:599
#define AOUT_CHANS_3_0
Definition vlc_es.h:117
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:162
@ ORIENT_NORMAL
Definition vlc_es.h:173
@ ORIENT_LEFT_TOP
Transposed.
Definition vlc_es.h:167
@ ORIENT_RIGHT_TOP
Rotated 90 degrees clockwise.
Definition vlc_es.h:169
@ ORIENT_VFLIPPED
Definition vlc_es.h:177
@ ORIENT_ROTATED_180
Definition vlc_es.h:178
@ ORIENT_ANTI_TRANSPOSED
Definition vlc_es.h:175
@ ORIENT_RIGHT_BOTTOM
Anti-transposed.
Definition vlc_es.h:170
@ ORIENT_ROTATED_270
Definition vlc_es.h:179
@ ORIENT_TRANSPOSED
Definition vlc_es.h:174
@ ORIENT_BOTTOM_RIGHT
Rotated 180 degrees.
Definition vlc_es.h:166
@ ORIENT_TOP_RIGHT
Flipped horizontally.
Definition vlc_es.h:164
@ ORIENT_HFLIPPED
Definition vlc_es.h:176
@ ORIENT_ROTATED_90
Definition vlc_es.h:180
@ ORIENT_LEFT_BOTTOM
Rotated 90 degrees anti-clockwise.
Definition vlc_es.h:168
@ ORIENT_BOTTOM_LEFT
Flipped vertically.
Definition vlc_es.h:165
@ ORIENT_TOP_LEFT
Top line represents top, left column left.
Definition vlc_es.h:163
#define AOUT_CHANS_8_1
Definition vlc_es.h:126
vlc_es_id_t * vlc_es_id_Hold(vlc_es_id_t *es)
Increase the ES track id reference count.
Definition es_out.c:4687
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:4712
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:395
audio_channel_type_t
Audio channel type.
Definition vlc_es.h:55
@ AUDIO_CHANNEL_TYPE_AMBISONICS
Definition vlc_es.h:57
@ AUDIO_CHANNEL_TYPE_BITMAP
Definition vlc_es.h:56
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:213
@ MULTIVIEW_STEREO_TB
Definition vlc_es.h:221
@ MULTIVIEW_STEREO_ROW
Definition vlc_es.h:224
@ MULTIVIEW_STEREO_CHECKERBOARD
Definition vlc_es.h:233
@ MULTIVIEW_STEREO_SBS
Definition vlc_es.h:218
@ MULTIVIEW_2D
Definition vlc_es.h:215
@ MULTIVIEW_STEREO_COL
Definition vlc_es.h:227
@ MULTIVIEW_STEREO_FRAME
Definition vlc_es.h:230
video_color_range_t
Definition vlc_es.h:325
@ COLOR_RANGE_FULL
Definition vlc_es.h:327
@ COLOR_RANGE_LIMITED
Definition vlc_es.h:328
@ COLOR_RANGE_UNDEF
Definition vlc_es.h:326
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:253
@ COLOR_PRIMARIES_BT601_625
Definition vlc_es.h:256
@ COLOR_PRIMARIES_BT601_525
Definition vlc_es.h:255
@ COLOR_PRIMARIES_FCC1953
Definition vlc_es.h:260
@ COLOR_PRIMARIES_BT2020
Definition vlc_es.h:258
@ COLOR_PRIMARIES_DCI_P3
Definition vlc_es.h:259
@ COLOR_PRIMARIES_UNDEF
Definition vlc_es.h:254
@ COLOR_PRIMARIES_BT709
Definition vlc_es.h:257
enum es_format_category_e vlc_es_id_GetCat(vlc_es_id_t *id)
Get the ES category.
Definition es_out.c:4718
video_transfer_func_t
Video transfer functions.
Definition vlc_es.h:275
@ TRANSFER_FUNC_BT709
Definition vlc_es.h:281
@ TRANSFER_FUNC_LINEAR
Definition vlc_es.h:277
@ TRANSFER_FUNC_BT470_M
Definition vlc_es.h:280
@ TRANSFER_FUNC_SRGB
Gamma 2.2.
Definition vlc_es.h:278
@ TRANSFER_FUNC_UNDEF
Definition vlc_es.h:276
@ TRANSFER_FUNC_HLG
Definition vlc_es.h:284
@ TRANSFER_FUNC_SMPTE_240
Definition vlc_es.h:283
@ TRANSFER_FUNC_BT470_BG
Definition vlc_es.h:279
@ TRANSFER_FUNC_SMPTE_ST2084
Definition vlc_es.h:282
static void video_format_AdjustColorSpace(video_format_t *p_fmt)
Definition vlc_es.h:420
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:407
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:122
static const uint16_t vlc_chan_maps[]
Definition vlc_es.h:139
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:125
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:42
bool vlc_es_id_IsStrIdStable(vlc_es_id_t *id)
Return whether the ES track identifier is stable.
Definition es_out.c:4706
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:705
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:119
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:4694
static void video_format_Clean(video_format_t *p_src)
Cleanup and free palette of this video_format_t.
Definition vlc_es.h:461
#define VIDEO_PALETTE_CLUT_COUNT
Definition vlc_es.h:43
static void video_format_CopyCropAr(video_format_t *dst, const video_format_t *src)
Definition vlc_es.h:480
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:784
#define AOUT_CHANS_2_0
Definition vlc_es.h:115
video_transform_t
Definition vlc_es.h:201
@ TRANSFORM_HFLIP
Definition vlc_es.h:203
@ TRANSFORM_R180
Definition vlc_es.h:205
@ TRANSFORM_TRANSPOSE
Definition vlc_es.h:208
@ TRANSFORM_ANTI_TRANSPOSE
Definition vlc_es.h:209
@ TRANSFORM_R90
Definition vlc_es.h:207
@ TRANSFORM_VFLIP
Definition vlc_es.h:204
@ TRANSFORM_IDENTITY
Definition vlc_es.h:202
@ TRANSFORM_R270
Definition vlc_es.h:206
int vlc_es_id_GetInputId(vlc_es_id_t *id)
Get the ES track input id.
Definition es_out.c:4700
#define AOUT_CHAN_CENTER
Definition vlc_es.h:99
#define VLC_CODEC_RGBA
Definition vlc_fourcc.h:408
#define VLC_CODEC_XBGR
Definition vlc_fourcc.h:350
#define VLC_CODEC_ABGR
Definition vlc_fourcc.h:414
#define VLC_CODEC_BGRA
Definition vlc_fourcc.h:412
#define VLC_CODEC_ARGB
Definition vlc_fourcc.h:410
#define VLC_CODEC_RGBX
Definition vlc_fourcc.h:346
static bool vlc_fourcc_IsYUV(vlc_fourcc_t fcc)
It returns true if the given fourcc is YUV and false otherwise.
Definition vlc_fourcc.h:865
#define VLC_CODEC_XRGB
Definition vlc_fourcc.h:344
#define VLC_CODEC_BGRX
Definition vlc_fourcc.h:348
Video and audio viewpoint struct and helpers.
static void vlc_viewpoint_init(vlc_viewpoint_t *p_vp)
Definition vlc_viewpoint.h:48