This file is indexed.

/usr/include/mlt/framework/mlt_types.h is in libmlt-dev 6.4.1-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
/**
 * \file mlt_types.h
 * \brief Provides forward definitions of all public types
 *
 * Copyright (C) 2003-2016 Meltytech, LLC
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

#ifndef MLT_TYPES_H
#define MLT_TYPES_H

#ifndef GCC_VERSION
#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif

#include <inttypes.h>
#include <limits.h>
#include "mlt_pool.h"

#ifndef PATH_MAX
#define PATH_MAX 4096
#endif

/** The set of supported image formats */

typedef enum
{
	mlt_image_none = 0,/**< image not available */
	mlt_image_rgb24,   /**< 8-bit RGB */
	mlt_image_rgb24a,  /**< 8-bit RGB with alpha channel */
	mlt_image_yuv422,  /**< 8-bit YUV 4:2:2 packed */
	mlt_image_yuv420p, /**< 8-bit YUV 4:2:0 planar */
	mlt_image_opengl,  /**< (deprecated) suitable for OpenGL texture */
	mlt_image_glsl,    /**< for opengl module internal use only */
	mlt_image_glsl_texture /**< an OpenGL texture name */
}
mlt_image_format;

/** The set of supported audio formats */

typedef enum
{
	mlt_audio_none = 0,/**< audio not available */
	mlt_audio_pcm = 1, /**< \deprecated signed 16-bit interleaved PCM */
	mlt_audio_s16 = 1, /**< signed 16-bit interleaved PCM */
	mlt_audio_s32,     /**< signed 32-bit non-interleaved PCM */
	mlt_audio_float,   /**< 32-bit non-interleaved floating point */
	mlt_audio_s32le,   /**< signed 32-bit interleaved PCM */
	mlt_audio_f32le,   /**< 32-bit interleaved floating point */
	mlt_audio_u8       /**< unsigned 8-bit interleaved PCM */
}
mlt_audio_format;

/** The time string formats */

typedef enum
{
	mlt_time_frames = 0, /**< frame count */
	mlt_time_clock,      /**< SMIL clock-value as [[hh:]mm:]ss[.fraction] */
	mlt_time_smpte_df,   /**< SMPTE timecode as [[[hh:]mm:]ss{:|;}]frames */
	mlt_time_smpte = mlt_time_smpte_df,   /**< Deprecated */
	mlt_time_smpte_ndf   /**< SMPTE NDF timecode as [[[hh:]mm:]ss:]frames */
}
mlt_time_format;

/** Interpolation methods for animation keyframes */

typedef enum {
	mlt_keyframe_discrete = 0, /**< non-interpolated; value changes instantaneously at the key frame */
	mlt_keyframe_linear,       /**< simple, constant pace from this key frame to the next */
	mlt_keyframe_smooth        /**< eased pacing from this keyframe to the next using a Catmull-Rom spline */
}
mlt_keyframe_type;

/** The relative time qualifiers */

typedef enum
{
	mlt_whence_relative_start = 0, /**< relative to the beginning */
	mlt_whence_relative_current,   /**< relative to the current position */
	mlt_whence_relative_end        /**< relative to the end */
}
mlt_whence;

/** The recognized subclasses of mlt_service */

typedef enum
{
	invalid_type = 0,           /**< invalid service */
	unknown_type,               /**< unknown class */
	producer_type,              /**< Producer class */
	tractor_type,               /**< Tractor class */
	playlist_type,              /**< Playlist class */
	multitrack_type,            /**< Multitrack class */
	filter_type,                /**< Filter class */
	transition_type,            /**< Transition class */
	consumer_type,              /**< Consumer class */
	field_type                  /**< Field class */
}
mlt_service_type;

/* I don't want to break anyone's applications without warning. -Zach */
#ifdef DOUBLE_MLT_POSITION
#define MLT_POSITION_FMT "%f"
#define MLT_POSITION_MOD(A, B) (A - B * ((int)(A / B)))
typedef double mlt_position;
#else
#define MLT_POSITION_MOD(A, B) A % B
#define MLT_POSITION_FMT "%d"
typedef int32_t mlt_position;
#endif

/** A rectangle type with coordinates, size, and opacity */

typedef struct {
	double x; /**< X coordinate */
	double y; /**< Y coordinate */
	double w; /**< width */
	double h; /**< height */
	double o; /**< opacity / mix-level */
}
mlt_rect;

/** A tuple of color components */

typedef struct {
	uint8_t r; /**< red */
	uint8_t g; /**< green */
	uint8_t b; /**< blue */
	uint8_t a; /**< alpha */
}
mlt_color;

typedef struct mlt_frame_s *mlt_frame, **mlt_frame_ptr; /**< pointer to Frame object */
typedef struct mlt_property_s *mlt_property;            /**< pointer to Property object */
typedef struct mlt_properties_s *mlt_properties;        /**< pointer to Properties object */
typedef struct mlt_event_struct *mlt_event;             /**< pointer to Event object */
typedef struct mlt_service_s *mlt_service;              /**< pointer to Service object */
typedef struct mlt_producer_s *mlt_producer;            /**< pointer to Producer object */
typedef struct mlt_playlist_s *mlt_playlist;            /**< pointer to Playlist object */
typedef struct mlt_multitrack_s *mlt_multitrack;        /**< pointer to Multitrack object */
typedef struct mlt_filter_s *mlt_filter;                /**< pointer to Filter object */
typedef struct mlt_transition_s *mlt_transition;        /**< pointer to Transition object */
typedef struct mlt_tractor_s *mlt_tractor;              /**< pointer to Tractor object */
typedef struct mlt_field_s *mlt_field;                  /**< pointer to Field object */
typedef struct mlt_consumer_s *mlt_consumer;            /**< pointer to Consumer object */
typedef struct mlt_parser_s *mlt_parser;                /**< pointer to Properties object */
typedef struct mlt_deque_s *mlt_deque;                  /**< pointer to Deque object */
typedef struct mlt_geometry_s *mlt_geometry;            /**< pointer to Geometry object */
typedef struct mlt_geometry_item_s *mlt_geometry_item;  /**< pointer to Geometry Item object */
typedef struct mlt_profile_s *mlt_profile;              /**< pointer to Profile object */
typedef struct mlt_repository_s *mlt_repository;        /**< pointer to Repository object */
typedef struct mlt_cache_s *mlt_cache;                  /**< pointer to Cache object */
typedef struct mlt_cache_item_s *mlt_cache_item;        /**< pointer to CacheItem object */
typedef struct mlt_animation_s *mlt_animation;          /**< pointer to Property Animation object */

typedef void ( *mlt_destructor )( void * );             /**< pointer to destructor function */
typedef char *( *mlt_serialiser )( void *, int length );/**< pointer to serialization function */

#define MLT_SERVICE(x)    ( ( mlt_service )( x ) )      /**< Cast to a Service pointer */
#define MLT_PRODUCER(x)   ( ( mlt_producer )( x ) )     /**< Cast to a Producer pointer */
#define MLT_MULTITRACK(x) ( ( mlt_multitrack )( x ) )   /**< Cast to a Multitrack pointer */
#define MLT_PLAYLIST(x)   ( ( mlt_playlist )( x ) )     /**< Cast to a Playlist pointer */
#define MLT_TRACTOR(x)    ( ( mlt_tractor )( x ) )      /**< Cast to a Tractor pointer */
#define MLT_FILTER(x)     ( ( mlt_filter )( x ) )       /**< Cast to a Filter pointer */
#define MLT_TRANSITION(x) ( ( mlt_transition )( x ) )   /**< Cast to a Transition pointer */
#define MLT_CONSUMER(x) ( ( mlt_consumer )( x ) )       /**< Cast to a Consumer pointer */
#define MLT_FRAME(x)      ( ( mlt_frame )( x ) )        /**< Cast to a Frame pointer */

#ifndef MIN
#define MIN(x, y) ((x) < (y) ? (x) : (y))
#endif
#ifndef MAX
#define MAX(x, y) ((x) > (y) ? (x) : (y))
#endif
#ifndef CLAMP
#define CLAMP(x, min, max) ((x) < (min) ? (min) : (x) > (max) ? (max) : (x))
#endif

#ifdef _WIN32
#include <pthread.h>
/* Win32 compatibility function declarations */
extern int usleep(unsigned int useconds);
#ifndef WIN_PTHREADS_TIME_H
extern int nanosleep( const struct timespec * rqtp, struct timespec * rmtp );
#endif
extern int setenv(const char *name, const char *value, int overwrite);

#define MLT_DIRLIST_DELIMITER ";"
#else
#define MLT_DIRLIST_DELIMITER ":"
#endif /* ifdef _WIN32 */

#endif