64 # define pl_unused __attribute__((unused))
70 #define PL_STRINGIFY(s) #s
71 #define PL_TOSTRING(s) PL_STRINGIFY(s)
73 #define PL_VERSION_INT(a, b, c) (a << 16 | b << 8 | c)
74 #define PL_VERSION_DOT(a, b, c) a ##.## b ##.## c
75 #define PL_VERSION(a, b, c) PL_VERSION_DOT(a, b, c)
77 #define LIBPLAYER_VERSION_MAJOR 2
78 #define LIBPLAYER_VERSION_MINOR 0
79 #define LIBPLAYER_VERSION_MICRO 1
81 #define LIBPLAYER_VERSION_INT PL_VERSION_INT(LIBPLAYER_VERSION_MAJOR, \
82 LIBPLAYER_VERSION_MINOR, \
83 LIBPLAYER_VERSION_MICRO)
84 #define LIBPLAYER_VERSION PL_VERSION(LIBPLAYER_VERSION_MAJOR, \
85 LIBPLAYER_VERSION_MINOR, \
86 LIBPLAYER_VERSION_MICRO)
87 #define LIBPLAYER_VERSION_STR PL_TOSTRING(LIBPLAYER_VERSION)
88 #define LIBPLAYER_BUILD LIBPLAYER_VERSION_INT
91 #include <sys/types.h>
114 typedef enum player_type {
118 PLAYER_TYPE_GSTREAMER,
123 typedef enum player_vo {
137 typedef enum player_ao {
146 typedef enum player_event {
147 PLAYER_EVENT_UNKNOWN,
148 PLAYER_EVENT_PLAYBACK_START,
149 PLAYER_EVENT_PLAYBACK_STOP,
150 PLAYER_EVENT_PLAYBACK_FINISHED,
151 PLAYER_EVENT_PLAYLIST_FINISHED,
152 PLAYER_EVENT_PLAYBACK_PAUSE,
153 PLAYER_EVENT_PLAYBACK_UNPAUSE,
167 PLAYER_QUALITY_NORMAL,
169 PLAYER_QUALITY_LOWEST,
170 } player_quality_level_t;
173 typedef struct player_init_param_s {
272 typedef enum mrl_type {
286 typedef enum mrl_resource {
287 MRL_RESOURCE_UNKNOWN,
324 typedef struct mrl_resource_local_args_s {
330 typedef struct mrl_resource_cd_args_s {
338 typedef struct mrl_resource_videodisc_args_s {
344 uint8_t chapter_start;
354 typedef struct mrl_resource_tv_args_s {
367 typedef struct mrl_resource_network_args_s {
375 typedef enum mrl_snapshot {
383 typedef enum mrl_metadata_type {
390 MRL_METADATA_COMMENT,
394 typedef enum mrl_metadata_cd_type {
395 MRL_METADATA_CD_DISCID,
396 MRL_METADATA_CD_TRACKS,
400 typedef enum mrl_metadata_dvd_type {
401 MRL_METADATA_DVD_TITLE_CHAPTERS,
402 MRL_METADATA_DVD_TITLE_ANGLES,
403 MRL_METADATA_DVD_TITLE_LENGTH,
407 typedef enum mrl_properties_type {
408 MRL_PROPERTY_SEEKABLE,
410 MRL_PROPERTY_AUDIO_BITRATE,
411 MRL_PROPERTY_AUDIO_BITS,
412 MRL_PROPERTY_AUDIO_CHANNELS,
413 MRL_PROPERTY_AUDIO_SAMPLERATE,
414 MRL_PROPERTY_VIDEO_BITRATE,
415 MRL_PROPERTY_VIDEO_WIDTH,
416 MRL_PROPERTY_VIDEO_HEIGHT,
417 MRL_PROPERTY_VIDEO_ASPECT,
418 MRL_PROPERTY_VIDEO_CHANNELS,
419 MRL_PROPERTY_VIDEO_STREAMS,
420 MRL_PROPERTY_VIDEO_FRAMEDURATION,
423 #define PLAYER_VIDEO_ASPECT_RATIO_MULT 10000.0
424 #define PLAYER_VIDEO_FRAMEDURATION_RATIO_DIV 90000.0
525 mrl_t *mrl,
int trackid, uint32_t *length);
602 uint32_t *
id,
char **name,
char **lang);
642 uint32_t *
id,
char **name,
char **lang);
745 typedef enum player_mrl_add {
848 typedef enum player_pb {
849 PLAYER_PB_SINGLE = 0,
854 typedef enum player_loop {
855 PLAYER_LOOP_DISABLE = 0,
857 PLAYER_LOOP_PLAYLIST,
861 typedef enum player_framedrop {
862 PLAYER_FRAMEDROP_DISABLE,
863 PLAYER_FRAMEDROP_SOFT,
864 PLAYER_FRAMEDROP_HARD,
868 typedef enum player_x_window_flags {
869 PLAYER_X_WINDOW_AUTO = 0,
870 PLAYER_X_WINDOW_X = (1 << 0),
871 PLAYER_X_WINDOW_Y = (1 << 1),
872 PLAYER_X_WINDOW_W = (1 << 2),
873 PLAYER_X_WINDOW_H = (1 << 3),
988 int x,
int y,
int w,
int h,
int flags);
1007 const char *text,
int x,
int y,
int duration);
1035 typedef enum player_pb_state {
1036 PLAYER_PB_STATE_IDLE,
1037 PLAYER_PB_STATE_PAUSE,
1038 PLAYER_PB_STATE_PLAY,
1042 typedef enum player_pb_seek {
1043 PLAYER_PB_SEEK_RELATIVE,
1044 PLAYER_PB_SEEK_ABSOLUTE,
1045 PLAYER_PB_SEEK_PERCENT,
1148 typedef enum player_mute {
1149 PLAYER_MUTE_UNKNOWN,
1271 typedef enum player_video_aspect {
1272 PLAYER_VIDEO_ASPECT_BRIGHTNESS,
1273 PLAYER_VIDEO_ASPECT_CONTRAST,
1274 PLAYER_VIDEO_ASPECT_GAMMA,
1275 PLAYER_VIDEO_ASPECT_HUE,
1276 PLAYER_VIDEO_ASPECT_SATURATION,
1297 int8_t value,
int absolute);
1335 typedef enum player_sub_alignment {
1336 PLAYER_SUB_ALIGNMENT_TOP,
1337 PLAYER_SUB_ALIGNMENT_CENTER,
1338 PLAYER_SUB_ALIGNMENT_BOTTOM,
1460 typedef enum player_dvdnav {
1463 PLAYER_DVDNAV_RIGHT,
1466 PLAYER_DVDNAV_SELECT,
1467 PLAYER_DVDNAV_PREVMENU,
1468 PLAYER_DVDNAV_MOUSECLICK,
1688 PLAYER_VDR_CHANNELPLUS,
1689 PLAYER_VDR_CHANNELMINUS,
1701 PLAYER_VDR_SCHEDULE,
1702 PLAYER_VDR_CHANNELS,
1704 PLAYER_VDR_RECORDINGS,
1707 PLAYER_VDR_COMMANDS,
1728 PLAYER_VDR_VOLMINUS,
1732 PLAYER_VDR_CHANNELPREVIOUS,
1734 PLAYER_VDR_PREVIOUS,
1735 PLAYER_VDR_SUBTITLES,