22 #ifndef __BG_PLUGIN_H_
23 #define __BG_PLUGIN_H_
26 #include <gavl/compression.h>
27 #include <gmerlin/parameter.h>
28 #include <gmerlin/streaminfo.h>
29 #include <gmerlin/accelerator.h>
30 #include <gmerlin/edl.h>
102 #define BG_PLUGIN_REMOVABLE (1<<0)
103 #define BG_PLUGIN_FILE (1<<1)
104 #define BG_PLUGIN_RECORDER (1<<2)
105 #define BG_PLUGIN_URL (1<<3)
106 #define BG_PLUGIN_PLAYBACK (1<<4)
107 #define BG_PLUGIN_STDIN (1<<8)
108 #define BG_PLUGIN_TUNER (1<<9)
109 #define BG_PLUGIN_FILTER_1 (1<<10)
110 #define BG_PLUGIN_EMBED_WINDOW (1<<11)
111 #define BG_PLUGIN_VISUALIZE_FRAME (1<<12)
112 #define BG_PLUGIN_VISUALIZE_GL (1<<13)
113 #define BG_PLUGIN_PP (1<<14)
114 #define BG_PLUGIN_CALLBACKS (1<<15)
115 #define BG_PLUGIN_BROADCAST (1<<16)
116 #define BG_PLUGIN_DEVPARAM (1<<17)
118 #define BG_PLUGIN_UNSUPPORTED (1<<24)
121 #define BG_PLUGIN_ALL 0xFFFFFFFF
126 #define BG_PLUGIN_API_VERSION 26
131 #define BG_GET_PLUGIN_API_VERSION \
132 int get_plugin_api_version() __attribute__ ((visibility("default"))); \
133 int get_plugin_api_version() { return BG_PLUGIN_API_VERSION; }
135 #define BG_PLUGIN_PRIORITY_MIN 1
136 #define BG_PLUGIN_PRIORITY_MAX 10
402 char ** username,
char ** password);
416 int pixel_width,
int pixel_height);
452 const char * (*get_protocols)(
void * priv);
457 const char * (*get_mimetypes)(
void * priv);
463 const char * (*get_extensions)(
void * priv);
481 int (*
open)(
void * priv,
const char * arg);
491 int (*
open_fd)(
void * priv,
int fd, int64_t total_bytes,
492 const char * mimetype);
506 int (*read_callback)(
void * priv, uint8_t * data,
int len),
507 int64_t (*seek_callback)(
void * priv, uint64_t pos,
int whence),
508 void * cb_priv,
const char * filename,
const char * mimetype,
509 int64_t total_bytes);
516 const bg_edl_t * (*get_edl)(
void * priv);
525 const char * (*get_disc_name)(
void * priv);
574 int (*
set_track)(
void * priv,
int track);
653 int (*
start)(
void * priv);
689 int (*
has_still)(
void * priv,
int stream);
737 void (*
skip_video)(
void * priv,
int stream, int64_t * time,
int scale,
int exact);
780 char ** text,
int * text_alloc,
781 int64_t * start_time,
782 int64_t * duration,
int stream);
795 void (*
seek)(
void * priv, int64_t * time,
int scale);
804 void (*
stop)(
void * priv);
812 void (*
close)(
void * priv);
854 int (*
start)(
void * priv);
880 void (*
stop)(
void * priv);
888 void (*
close)(
void * priv);
921 const gavl_metadata_t * m);
980 void (*
close)(
void * priv);
1155 void (*
set_window)(
void * priv,
const char * window_id);
1162 const char * (*get_window)(
void * priv);
1287 void (*
update_aspect)(
void * priv,
int pixel_width,
int pixel_height);
1310 void (*
close)(
void * priv);
1430 int (*
open)(
void * data,
const char * filename,
1431 const gavl_metadata_t * metadata,
1518 const gavl_metadata_t * m,
1533 const gavl_metadata_t * m,
1544 const gavl_metadata_t * m,
1560 const gavl_metadata_t * m,
1628 int (*
set_video_pass)(
void * priv,
int stream,
int pass,
int total_passes,
1629 const char * stats_file);
1639 int (*
start)(
void * priv);
1734 int64_t duration,
int stream);
1755 const gavl_metadata_t * m);
1765 int (*
close)(
void * data,
int do_delete);
1795 void (*action_callback)(
void * data,
char * action);
1806 void (*progress_callback)(
void * data,
float perc);
1848 int (*
init)(
void * priv);
1866 void (*
add_track)(
void * priv,
const char * filename,
1867 gavl_metadata_t * metadata,
int pp_only);
1878 void (*
run)(
void * priv,
const char * directory,
int cleanup);
1889 void (*
stop)(
void * priv);
1923 int (*
read_header)(
void * priv,
const char * filename,
1931 const gavl_metadata_t * (*get_metadata)(
void * priv);
2011 int (*
write_header)(
void * priv,
const char * filename,
2083 int stream,
int port);
2103 void (*
reset)(
void * priv);
2166 void * data,
int stream,
int port);
2182 void (*
reset)(
void * priv);
2283 const char * window_id);
2324 void (*
close)(
void * priv);
2334 #endif // __BG_PLUGIN_H_