gavl
connectors.h
1 /*****************************************************************
2  * gavl - a general purpose audio/video processing library
3  *
4  * Copyright (c) 2001 - 2012 Members of the Gmerlin project
5  * gmerlin-general@lists.sourceforge.net
6  * http://gmerlin.sourceforge.net
7  *
8  * This program is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <http://www.gnu.org/licenses/>.
20  * *****************************************************************/
21 
27 #ifndef GAVL_CONNECTORS_H_INCLUDED
28 #define GAVL_CONNECTORS_H_INCLUDED
29 
30 #include <gavl/gavl.h>
31 #include <gavl/compression.h>
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
54 typedef void (*gavl_connector_lock_func_t)(void * priv);
55 
56 
85 typedef enum
86  {
89  GAVL_SOURCE_AGAIN = 2,
91 
101 (*gavl_audio_source_func_t)(void * priv, gavl_audio_frame_t ** frame);
102 
112 (*gavl_video_source_func_t)(void * priv, gavl_video_frame_t ** frame);
113 
123 (*gavl_packet_source_func_t)(void * priv, gavl_packet_t ** p);
124 
125 
129 #define GAVL_SOURCE_SRC_ALLOC (1<<0)
130 
131 
136 #define GAVL_SOURCE_SRC_FRAMESIZE_MAX (1<<2)
137 
142 #define GAVL_SOURCE_SRC_DISCONTINUOUS (1<<3)
143 
144 
145 /* Called by the source */
146 
155 GAVL_PUBLIC
158  void * priv, int src_flags,
159  const gavl_video_format_t * src_format);
160 
172 GAVL_PUBLIC
175  void * priv, int src_flags,
176  gavl_video_source_t * src);
177 
185 GAVL_PUBLIC void
187  gavl_connector_lock_func_t lock_func,
188  gavl_connector_lock_func_t unlock_func,
189  void * priv);
190 
191 
198 GAVL_PUBLIC
200 
207 GAVL_PUBLIC
209 
217 GAVL_PUBLIC
219 
220 /* Called by the destination */
221 
227 GAVL_PUBLIC
228 const gavl_video_format_t *
230 
236 GAVL_PUBLIC
237 const gavl_video_format_t *
239 
255 GAVL_PUBLIC
256 void
258  const gavl_video_format_t * dst_format);
259 
270 GAVL_PUBLIC
273 
274 /* Called by source */
275 
284 GAVL_PUBLIC
287  void * priv, int src_flags,
288  const gavl_audio_format_t * src_format);
289 
301 GAVL_PUBLIC
304  void * priv, int src_flags,
305  gavl_audio_source_t * src);
306 
307 
315 GAVL_PUBLIC void
317  gavl_connector_lock_func_t lock_func,
318  gavl_connector_lock_func_t unlock_func,
319  void * priv);
320 
321 
327 GAVL_PUBLIC
328 const gavl_audio_format_t *
330 
336 GAVL_PUBLIC
337 const gavl_audio_format_t *
339 
356 GAVL_PUBLIC
357 void
359  const gavl_audio_format_t * dst_format);
360 
375 GAVL_PUBLIC
378 
388 GAVL_PUBLIC
389 void
390 gavl_audio_source_skip_src(gavl_audio_source_t * s, int num_samples);
391 
401 GAVL_PUBLIC
403  int num_samples);
404 
410 GAVL_PUBLIC
412 
419 GAVL_PUBLIC
421 
429 GAVL_PUBLIC
431 
432 
433 /* Packet source */
434 
443 GAVL_PUBLIC
446  void * priv, int src_flags,
447  const gavl_compression_info_t * ci,
448  const gavl_audio_format_t * afmt);
449 
458 GAVL_PUBLIC
461  void * priv, int src_flags,
462  const gavl_compression_info_t * ci,
463  const gavl_video_format_t * vfmt);
464 
472 GAVL_PUBLIC
475  void * priv, int src_flags, int timescale);
476 
484 GAVL_PUBLIC
487  void * priv, int src_flags,
488  gavl_packet_source_t * src);
489 
490 
498 GAVL_PUBLIC void
500  gavl_connector_lock_func_t lock_func,
501  gavl_connector_lock_func_t unlock_func,
502  void * priv);
503 
504 
510 GAVL_PUBLIC const gavl_compression_info_t *
512 
518 GAVL_PUBLIC const gavl_audio_format_t *
520 
526 GAVL_PUBLIC const gavl_video_format_t *
528 
534 GAVL_PUBLIC int
536 
542 GAVL_PUBLIC gavl_source_status_t
544 
549 GAVL_PUBLIC void
551 
573 typedef enum
574  {
576  GAVL_SINK_OK,
578 
579 
589 (*gavl_audio_sink_get_func)(void * priv);
590 
598 (*gavl_audio_sink_put_func)(void * priv, gavl_audio_frame_t * f);
599 
608 GAVL_PUBLIC gavl_audio_sink_t *
610  gavl_audio_sink_put_func put_func,
611  void * priv,
612  const gavl_audio_format_t * format);
613 
621 GAVL_PUBLIC void
623  gavl_connector_lock_func_t lock_func,
624  gavl_connector_lock_func_t unlock_func,
625  void * priv);
626 
627 
633 GAVL_PUBLIC const gavl_audio_format_t *
635 
645 GAVL_PUBLIC gavl_audio_frame_t *
647 
657 GAVL_PUBLIC gavl_sink_status_t
659 
664 GAVL_PUBLIC void
666 
667 
668 
678 (*gavl_video_sink_get_func)(void * priv);
679 
687 (*gavl_video_sink_put_func)(void * priv, gavl_video_frame_t * f);
688 
697 GAVL_PUBLIC gavl_video_sink_t *
699  gavl_video_sink_put_func put_func,
700  void * priv,
701  const gavl_video_format_t * format);
702 
710 GAVL_PUBLIC void
712  gavl_connector_lock_func_t lock_func,
713  gavl_connector_lock_func_t unlock_func,
714  void * priv);
715 
721 GAVL_PUBLIC const gavl_video_format_t *
723 
733 GAVL_PUBLIC gavl_video_frame_t *
735 
745 GAVL_PUBLIC gavl_sink_status_t
747 
752 GAVL_PUBLIC void
754 
755 
756 
765 typedef gavl_packet_t *
766 (*gavl_packet_sink_get_func)(void * priv);
767 
775 (*gavl_packet_sink_put_func)(void * priv, gavl_packet_t * p);
776 
784 GAVL_PUBLIC gavl_packet_sink_t *
786  gavl_packet_sink_put_func put_func,
787  void * priv);
788 
796 GAVL_PUBLIC void
798  gavl_connector_lock_func_t lock_func,
799  gavl_connector_lock_func_t unlock_func,
800  void * priv);
801 
802 
812 GAVL_PUBLIC gavl_packet_t *
814 
824 GAVL_PUBLIC gavl_sink_status_t
826 
831 GAVL_PUBLIC void
833 
834 
854 typedef struct gavl_audio_connector_s gavl_audio_connector_t;
855 
861 typedef struct gavl_video_connector_s gavl_video_connector_t;
862 
868 typedef struct gavl_packet_connector_s gavl_packet_connector_t;
869 
881 typedef void
882 (*gavl_audio_connector_process_func)(void * priv,
883  gavl_audio_frame_t * frame);
884 
896 typedef void
897 (*gavl_video_connector_process_func)(void * priv,
898  gavl_video_frame_t * frame);
899 
908 typedef void
910  gavl_packet_t * p);
911 
917 GAVL_PUBLIC gavl_audio_connector_t *
919 
927 GAVL_PUBLIC gavl_audio_options_t *
929 
934 GAVL_PUBLIC void
936 
942 GAVL_PUBLIC void
944  gavl_audio_sink_t * sink);
945 
952 GAVL_PUBLIC void
955  void * priv);
956 
964 GAVL_PUBLIC void
966 
972 GAVL_PUBLIC const gavl_audio_format_t *
974 
984 GAVL_PUBLIC int
986 
993 GAVL_PUBLIC
995 
1001 GAVL_PUBLIC gavl_source_status_t
1003 
1004 
1005 /* */
1006 
1012 GAVL_PUBLIC gavl_video_connector_t *
1014 
1022 GAVL_PUBLIC gavl_video_options_t *
1024 
1029 GAVL_PUBLIC void
1031 
1037 GAVL_PUBLIC void
1039  gavl_video_sink_t * sink);
1040 
1047 GAVL_PUBLIC void
1050  void * priv);
1051 
1059 GAVL_PUBLIC void
1061 
1067 GAVL_PUBLIC const gavl_video_format_t *
1069 
1079 GAVL_PUBLIC int
1081 
1088 GAVL_PUBLIC
1090 
1096 GAVL_PUBLIC gavl_source_status_t
1098 
1099 /* */
1100 
1106 GAVL_PUBLIC gavl_packet_connector_t *
1108 
1113 GAVL_PUBLIC void
1115 
1121 GAVL_PUBLIC void
1123  gavl_packet_sink_t * sink);
1124 
1131 GAVL_PUBLIC void
1134  void * priv);
1135 
1143 GAVL_PUBLIC int
1145 
1151 GAVL_PUBLIC gavl_source_status_t
1153 
1154 
1155 
1160 #ifdef __cplusplus
1161 }
1162 #endif
1163 
1164 #endif // GAVL_CONNECTORS_H_INCLUDED
gavl_video_sink_get_func
gavl_video_frame_t *(* gavl_video_sink_get_func)(void *priv)
Prototype for getting a frame buffer.
Definition: connectors.h:677
gavl_packet_connector_connect
GAVL_PUBLIC void gavl_packet_connector_connect(gavl_packet_connector_t *c, gavl_packet_sink_t *sink)
Connect a sink.
gavl_packet_source_get_timescale
GAVL_PUBLIC int gavl_packet_source_get_timescale(gavl_packet_source_t *s)
Get the time scale.
GAVL_SINK_OK
Frame was successfully processed.
Definition: connectors.h:575
gavl_video_source_func_t
gavl_source_status_t(* gavl_video_source_func_t)(void *priv, gavl_video_frame_t **frame)
Prototype for obtaining one video frame.
Definition: connectors.h:111
gavl_video_source_get_src_format
const GAVL_PUBLIC gavl_video_format_t * gavl_video_source_get_src_format(gavl_video_source_t *s)
Get the native format.
gavl_source_status_t
gavl_source_status_t
Return value of the source function.
Definition: connectors.h:84
gavl_video_connector_process_func
void(* gavl_video_connector_process_func)(void *priv, gavl_video_frame_t *frame)
Callback for processing a video frame.
Definition: connectors.h:896
gavl_packet_sink_destroy
GAVL_PUBLIC void gavl_packet_sink_destroy(gavl_packet_sink_t *s)
Destroy a packet sink.
gavl_packet_sink_t
struct gavl_packet_sink_s gavl_packet_sink_t
Packet sink.
Definition: gavl.h:89
gavl_video_connector_get_process_format
const GAVL_PUBLIC gavl_video_format_t * gavl_video_connector_get_process_format(gavl_video_connector_t *c)
Get process format.
gavl_packet_source_create_text
GAVL_PUBLIC gavl_packet_source_t * gavl_packet_source_create_text(gavl_packet_source_func_t func, void *priv, int src_flags, int timescale)
Create a text packet source.
gavl_packet_source_get_video_format
const GAVL_PUBLIC gavl_video_format_t * gavl_packet_source_get_video_format(gavl_packet_source_t *s)
Get the video format.
gavl_video_sink_get_format
const GAVL_PUBLIC gavl_video_format_t * gavl_video_sink_get_format(gavl_video_sink_t *s)
Get the format.
gavl_audio_connector_t
struct gavl_audio_connector_s gavl_audio_connector_t
Opaque structure for the audio connector.
Definition: connectors.h:853
gavl_audio_connector_destroy
GAVL_PUBLIC void gavl_audio_connector_destroy(gavl_audio_connector_t *c)
Destroy an audio connector.
gavl_video_frame_s
Definition: gavl.h:2412
gavl_packet_connector_t
struct gavl_packet_connector_s gavl_packet_connector_t
Opaque structure for the packet connector.
Definition: connectors.h:867
gavl_audio_source_skip_src
GAVL_PUBLIC void gavl_audio_source_skip_src(gavl_audio_source_t *s, int num_samples)
Skip audio samples at the input.
gavl_packet_source_read_packet
GAVL_PUBLIC gavl_source_status_t gavl_packet_source_read_packet(void *s, gavl_packet_t **p)
Read one packet.
gavl_audio_sink_get_frame
GAVL_PUBLIC gavl_audio_frame_t * gavl_audio_sink_get_frame(gavl_audio_sink_t *s)
Get a buffer for a frame.
gavl_packet_sink_get_packet
GAVL_PUBLIC gavl_packet_t * gavl_packet_sink_get_packet(gavl_packet_sink_t *s)
Get a buffer for a packet.
gavl_packet_connector_get_source_status
GAVL_PUBLIC gavl_source_status_t gavl_packet_connector_get_source_status(gavl_packet_connector_t *c)
Get the status of the last read call.
gavl_video_source_get_dst_format
const GAVL_PUBLIC gavl_video_format_t * gavl_video_source_get_dst_format(gavl_video_source_t *s)
Get the output format.
gavl_video_connector_destroy
GAVL_PUBLIC void gavl_video_connector_destroy(gavl_video_connector_t *c)
Destroy a video connector.
gavl_packet_connector_create
GAVL_PUBLIC gavl_packet_connector_t * gavl_packet_connector_create(gavl_packet_source_t *src)
Create a packet connector.
gavl_audio_source_set_lock_funcs
GAVL_PUBLIC void gavl_audio_source_set_lock_funcs(gavl_audio_source_t *src, gavl_connector_lock_func_t lock_func, gavl_connector_lock_func_t unlock_func, void *priv)
Set lock functions.
gavl_video_source_read_frame
GAVL_PUBLIC gavl_source_status_t gavl_video_source_read_frame(void *s, gavl_video_frame_t **frame)
Read a video frame.
gavl_audio_connector_get_options
GAVL_PUBLIC gavl_audio_options_t * gavl_audio_connector_get_options(gavl_audio_connector_t *c)
Get conversion options.
gavl_audio_connector_get_source_status
GAVL_PUBLIC gavl_source_status_t gavl_audio_connector_get_source_status(gavl_audio_connector_t *c)
Get the status of the last read call.
gavl_packet_source_func_t
gavl_source_status_t(* gavl_packet_source_func_t)(void *priv, gavl_packet_t **p)
Prototype for obtaining one packet.
Definition: connectors.h:122
gavl_audio_source_get_src_format
const GAVL_PUBLIC gavl_audio_format_t * gavl_audio_source_get_src_format(gavl_audio_source_t *s)
Get the native format.
gavl_video_sink_put_func
gavl_sink_status_t(* gavl_video_sink_put_func)(void *priv, gavl_video_frame_t *f)
Prototype for putting a frame.
Definition: connectors.h:686
gavl_packet_connector_process
GAVL_PUBLIC int gavl_packet_connector_process(gavl_packet_connector_t *c)
Process one packet.
gavl_packet_connector_process_func
void(* gavl_packet_connector_process_func)(void *priv, gavl_packet_t *p)
Callback for processing a packet.
Definition: connectors.h:908
gavl_video_source_set_dst
GAVL_PUBLIC void gavl_video_source_set_dst(gavl_video_source_t *s, int dst_flags, const gavl_video_format_t *dst_format)
Set the destination mode.
gavl_audio_source_destroy
GAVL_PUBLIC void gavl_audio_source_destroy(gavl_audio_source_t *s)
Destroy an audio source.
gavl_audio_source_read_frame
GAVL_PUBLIC gavl_source_status_t gavl_audio_source_read_frame(void *s, gavl_audio_frame_t **frame)
Read an audio frame.
gavl_packet_sink_set_lock_funcs
GAVL_PUBLIC void gavl_packet_sink_set_lock_funcs(gavl_packet_sink_t *sink, gavl_connector_lock_func_t lock_func, gavl_connector_lock_func_t unlock_func, void *priv)
Set lock functions.
gavl_video_connector_reset
GAVL_PUBLIC void gavl_video_connector_reset(gavl_video_connector_t *c)
Reset a video connector.
gavl_audio_sink_destroy
GAVL_PUBLIC void gavl_audio_sink_destroy(gavl_audio_sink_t *s)
Destroy an audio sink.
gavl_video_source_t
struct gavl_video_source_s gavl_video_source_t
Forward declaration of the video source.
Definition: gavl.h:47
GAVL_SOURCE_AGAIN
No frame available right now, might try later.
Definition: connectors.h:88
GAVL_SINK_ERROR
Something went wrong.
Definition: connectors.h:574
gavl_video_connector_start
GAVL_PUBLIC void gavl_video_connector_start(gavl_video_connector_t *c)
Start a video connector.
gavl_audio_sink_set_lock_funcs
GAVL_PUBLIC void gavl_audio_sink_set_lock_funcs(gavl_audio_sink_t *sink, gavl_connector_lock_func_t lock_func, gavl_connector_lock_func_t unlock_func, void *priv)
Set lock functions.
gavl_audio_source_read_samples
GAVL_PUBLIC int gavl_audio_source_read_samples(void *s, gavl_audio_frame_t *frame, int num_samples)
Read audio samples.
gavl_audio_source_get_options
GAVL_PUBLIC gavl_audio_options_t * gavl_audio_source_get_options(gavl_audio_source_t *s)
Get coversion options of an audio source.
gavl_packet_source_get_ci
const GAVL_PUBLIC gavl_compression_info_t * gavl_packet_source_get_ci(gavl_packet_source_t *s)
Get the compression info.
gavl_packet_connector_set_process_func
GAVL_PUBLIC void gavl_packet_connector_set_process_func(gavl_packet_connector_t *c, gavl_packet_connector_process_func func, void *priv)
Set process callback.
gavl_audio_connector_create
GAVL_PUBLIC gavl_audio_connector_t * gavl_audio_connector_create(gavl_audio_source_t *src)
Create an audio connector.
gavl_video_sink_get_frame
GAVL_PUBLIC gavl_video_frame_t * gavl_video_sink_get_frame(gavl_video_sink_t *s)
Get a buffer for a frame.
gavl_video_connector_set_process_func
GAVL_PUBLIC void gavl_video_connector_set_process_func(gavl_video_connector_t *c, gavl_video_connector_process_func func, void *priv)
Set process callback.
gavl_audio_connector_process_func
void(* gavl_audio_connector_process_func)(void *priv, gavl_audio_frame_t *frame)
Callback for processing an audio frame.
Definition: connectors.h:881
gavl_packet_source_destroy
GAVL_PUBLIC void gavl_packet_source_destroy(gavl_packet_source_t *s)
Destroy a packet source.
gavl_compression_info_t
Compression format.
Definition: compression.h:118
gavl_audio_source_create_source
GAVL_PUBLIC gavl_audio_source_t * gavl_audio_source_create_source(gavl_audio_source_func_t func, void *priv, int src_flags, gavl_audio_source_t *src)
Create an audio source from another source.
gavl_packet_source_create_video
GAVL_PUBLIC gavl_packet_source_t * gavl_packet_source_create_video(gavl_packet_source_func_t func, void *priv, int src_flags, const gavl_compression_info_t *ci, const gavl_video_format_t *vfmt)
Create a video packet source.
gavl_packet_source_create_source
GAVL_PUBLIC gavl_packet_source_t * gavl_packet_source_create_source(gavl_packet_source_func_t func, void *priv, int src_flags, gavl_packet_source_t *src)
Create a packet source from another packet source.
GAVL_SOURCE_OK
Frame available.
Definition: connectors.h:87
gavl_video_source_create
GAVL_PUBLIC gavl_video_source_t * gavl_video_source_create(gavl_video_source_func_t func, void *priv, int src_flags, const gavl_video_format_t *src_format)
Create a video source.
gavl_video_sink_put_frame
GAVL_PUBLIC gavl_sink_status_t gavl_video_sink_put_frame(gavl_video_sink_t *s, gavl_video_frame_t *f)
Output a frame.
gavl_packet_sink_get_func
gavl_packet_t *(* gavl_packet_sink_get_func)(void *priv)
Prototype for getting a packet buffer.
Definition: connectors.h:765
gavl_video_source_destroy
GAVL_PUBLIC void gavl_video_source_destroy(gavl_video_source_t *s)
Destroy a video source.
gavl_audio_source_func_t
gavl_source_status_t(* gavl_audio_source_func_t)(void *priv, gavl_audio_frame_t **frame)
Prototype for obtaining one audio frame.
Definition: connectors.h:100
gavl_video_source_get_options
GAVL_PUBLIC gavl_video_options_t * gavl_video_source_get_options(gavl_video_source_t *s)
Get coversion options of a video source.
gavl_video_connector_get_options
GAVL_PUBLIC gavl_video_options_t * gavl_video_connector_get_options(gavl_video_connector_t *c)
Get conversion options.
gavl_audio_source_get_dst_format
const GAVL_PUBLIC gavl_audio_format_t * gavl_audio_source_get_dst_format(gavl_audio_source_t *s)
Get the output format.
gavl_packet_connector_destroy
GAVL_PUBLIC void gavl_packet_connector_destroy(gavl_packet_connector_t *c)
Destroy a packet connector.
gavl_audio_source_create
GAVL_PUBLIC gavl_audio_source_t * gavl_audio_source_create(gavl_audio_source_func_t func, void *priv, int src_flags, const gavl_audio_format_t *src_format)
Create an audio source.
gavl_audio_sink_create
GAVL_PUBLIC gavl_audio_sink_t * gavl_audio_sink_create(gavl_audio_sink_get_func get_func, gavl_audio_sink_put_func put_func, void *priv, const gavl_audio_format_t *format)
Create an audio sink.
gavl_audio_source_reset
GAVL_PUBLIC void gavl_audio_source_reset(gavl_audio_source_t *s)
Reset an audio source.
gavl_audio_sink_get_func
gavl_audio_frame_t *(* gavl_audio_sink_get_func)(void *priv)
Prototype for getting a frame buffer.
Definition: connectors.h:588
gavl_video_options_t
struct gavl_video_options_s gavl_video_options_t
Definition: gavl.h:2986
gavl_video_connector_connect
GAVL_PUBLIC void gavl_video_connector_connect(gavl_video_connector_t *c, gavl_video_sink_t *sink)
Connect a sink.
gavl_packet_sink_put_func
gavl_sink_status_t(* gavl_packet_sink_put_func)(void *priv, gavl_packet_t *p)
Prototype for putting a frame.
Definition: connectors.h:774
gavl_video_connector_get_source_status
GAVL_PUBLIC gavl_source_status_t gavl_video_connector_get_source_status(gavl_video_connector_t *c)
Get the status of the last read call.
gavl_packet_source_create_audio
GAVL_PUBLIC gavl_packet_source_t * gavl_packet_source_create_audio(gavl_packet_source_func_t func, void *priv, int src_flags, const gavl_compression_info_t *ci, const gavl_audio_format_t *afmt)
Create an audio packet source.
gavl_video_connector_t
struct gavl_video_connector_s gavl_video_connector_t
Opaque structure for the audio connector.
Definition: connectors.h:860
gavl_audio_connector_set_process_func
GAVL_PUBLIC void gavl_audio_connector_set_process_func(gavl_audio_connector_t *c, gavl_audio_connector_process_func func, void *priv)
Set process callback.
gavl_audio_connector_process
GAVL_PUBLIC int gavl_audio_connector_process(gavl_audio_connector_t *c)
Process one frame.
gavl_video_source_set_lock_funcs
GAVL_PUBLIC void gavl_video_source_set_lock_funcs(gavl_video_source_t *src, gavl_connector_lock_func_t lock_func, gavl_connector_lock_func_t unlock_func, void *priv)
Set lock functions.
gavl_audio_sink_t
struct gavl_audio_sink_s gavl_audio_sink_t
Audio sink.
Definition: gavl.h:71
gavl_packet_source_get_audio_format
const GAVL_PUBLIC gavl_audio_format_t * gavl_packet_source_get_audio_format(gavl_packet_source_t *s)
Get the audio format.
gavl_video_connector_create
GAVL_PUBLIC gavl_video_connector_t * gavl_video_connector_create(gavl_video_source_t *src)
Create a video connector.
gavl_audio_connector_start
GAVL_PUBLIC void gavl_audio_connector_start(gavl_audio_connector_t *c)
Start an audio connector.
gavl_video_sink_destroy
GAVL_PUBLIC void gavl_video_sink_destroy(gavl_video_sink_t *s)
Destroy a video sink.
gavl_packet_sink_create
GAVL_PUBLIC gavl_packet_sink_t * gavl_packet_sink_create(gavl_packet_sink_get_func get_func, gavl_packet_sink_put_func put_func, void *priv)
Create a packet sink.
gavl_video_connector_process
GAVL_PUBLIC int gavl_video_connector_process(gavl_video_connector_t *c)
Process one frame.
gavl_packet_sink_put_packet
GAVL_PUBLIC gavl_sink_status_t gavl_packet_sink_put_packet(gavl_packet_sink_t *s, gavl_packet_t *p)
Output a frame.
gavl_video_source_create_source
GAVL_PUBLIC gavl_video_source_t * gavl_video_source_create_source(gavl_video_source_func_t func, void *priv, int src_flags, gavl_video_source_t *src)
Create a video source from another source.
GAVL_SOURCE_EOF
End of file, no more frames available.
Definition: connectors.h:86
gavl_audio_source_t
struct gavl_audio_source_s gavl_audio_source_t
Forward declaration of the audio source.
Definition: gavl.h:55
gavl_audio_sink_put_frame
GAVL_PUBLIC gavl_sink_status_t gavl_audio_sink_put_frame(gavl_audio_sink_t *s, gavl_audio_frame_t *f)
Output a frame.
gavl_audio_format_t
Audio Format.
Definition: gavl.h:310
gavl_audio_options_t
struct gavl_audio_options_s gavl_audio_options_t
Opaque container for audio conversion options.
Definition: gavl.h:944
gavl_video_format_s
Video format.
Definition: gavl.h:2211
gavl_video_source_reset
GAVL_PUBLIC void gavl_video_source_reset(gavl_video_source_t *s)
Reset a video source.
gavl_audio_connector_reset
GAVL_PUBLIC void gavl_audio_connector_reset(gavl_audio_connector_t *c)
Reset an audio connector.
gavl_audio_sink_get_format
const GAVL_PUBLIC gavl_audio_format_t * gavl_audio_sink_get_format(gavl_audio_sink_t *s)
Get the format.
gavl_video_sink_create
GAVL_PUBLIC gavl_video_sink_t * gavl_video_sink_create(gavl_video_sink_get_func get_func, gavl_video_sink_put_func put_func, void *priv, const gavl_video_format_t *format)
Create a video sink.
gavl_audio_frame_t
Generic container for audio samples.
Definition: gavl.h:593
gavl_audio_sink_put_func
gavl_sink_status_t(* gavl_audio_sink_put_func)(void *priv, gavl_audio_frame_t *f)
Prototype for putting a frame.
Definition: connectors.h:597
gavl.h
gavl_packet_source_t
struct gavl_packet_source_s gavl_packet_source_t
Forward declaration of the packet source.
Definition: gavl.h:63
gavl_audio_source_set_dst
GAVL_PUBLIC void gavl_audio_source_set_dst(gavl_audio_source_t *s, int dst_flags, const gavl_audio_format_t *dst_format)
Set the destination mode.
gavl_packet_t
Packet structure.
Definition: compression.h:338
gavl_sink_status_t
gavl_sink_status_t
Return status of the sink functions.
Definition: connectors.h:572
gavl_video_sink_set_lock_funcs
GAVL_PUBLIC void gavl_video_sink_set_lock_funcs(gavl_video_sink_t *sink, gavl_connector_lock_func_t lock_func, gavl_connector_lock_func_t unlock_func, void *priv)
Set lock functions.
gavl_packet_source_set_lock_funcs
GAVL_PUBLIC void gavl_packet_source_set_lock_funcs(gavl_packet_source_t *src, gavl_connector_lock_func_t lock_func, gavl_connector_lock_func_t unlock_func, void *priv)
Set lock functions.
gavl_audio_connector_get_process_format
const GAVL_PUBLIC gavl_audio_format_t * gavl_audio_connector_get_process_format(gavl_audio_connector_t *c)
Get process format.
gavl_audio_connector_connect
GAVL_PUBLIC void gavl_audio_connector_connect(gavl_audio_connector_t *c, gavl_audio_sink_t *sink)
Connect a sink.
gavl_video_sink_t
struct gavl_video_sink_s gavl_video_sink_t
Video sink.
Definition: gavl.h:80