Go to the documentation of this file.
22 #ifndef LIBVLC_INPUT_SIGNAL_H
23 # define LIBVLC_INPUT_SIGNAL_H 1
25 # include <stdatomic.h>
void decoder_Destroy(decoder_t *p_dec)
Destroy a decoder and reset the structure.
Definition: decoder_helpers.c:70
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
block_t *(* pf_write)(image_handler_t *, picture_t *, const video_format_t *, const video_format_t *)
Definition: vlc_image.h:46
size_t count
Definition: core.c:401
#define sout_EncoderCreate(o, s)
Definition: vlc_sout.h:232
void picture_fifo_Delete(picture_fifo_t *fifo)
It destroys a fifo created by picture_fifo_New.
Definition: picture_fifo.c:121
static void vlc_interrupt_sem(void *opaque)
Definition: interrupt.c:192
image_handler_t * p_image
Definition: image.c:56
static bool cookie_has_attribute(const char *cookie, const char *attr)
Definition: httpcookies.c:70
#define VLC_CODEC_BPG
Definition: vlc_fourcc.h:443
@ VIDEO_ES
Definition: vlc_es.h:603
picture_t *(* filter_video)(filter_t *, picture_t *)
Filter a picture (video filter)
Definition: vlc_filter.h:89
block_t * vlc_stream_Block(stream_t *s, size_t size)
Read data into a block.
Definition: stream.c:729
char * psz_domain
Definition: httpcookies.c:61
static picture_t * ImageReadUrl(image_handler_t *, const char *, video_format_t *)
Definition: image.c:285
void vlc_interrupt_forward_start(vlc_interrupt_t *to, void *data[2])
Enables forwarding of interruption.
Definition: interrupt.c:256
picture_t * picture_fifo_Pop(picture_fifo_t *fifo)
It retreives a picture_t from the fifo.
Definition: picture_fifo.c:75
static int vlc_stream_GetSize(stream_t *s, uint64_t *size)
Get the size of the stream.
Definition: vlc_stream.h:331
void decoder_Init(decoder_t *p_dec, const es_format_t *restrict p_fmt)
Definition: decoder_helpers.c:37
int vlc_sem_wait_i11e(vlc_sem_t *sem)
Interruptible variant of vlc_sem_wait().
Definition: interrupt.c:197
#define vlc_cleanup_push(routine, arg)
Registers a thread cancellation handler.
Definition: vlc_threads.h:1010
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:415
int strcasecmp(const char *, const char *)
const char * psz_name
Definition: text_style.c:53
static vlc_video_context * picture_GetVideoContext(picture_t *pic)
Definition: vlc_picture.h:160
static encoder_t * CreateEncoder(vlc_object_t *, const video_format_t *, const video_format_t *)
Definition: image.c:709
void * data
Definition: interrupt.h:38
static void vlc_array_remove(vlc_array_t *ar, size_t idx)
Definition: vlc_arrays.h:353
vlc_video_context * vctx_in
Definition: vlc_filter.h:225
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
void vlc_interrupt_kill(vlc_interrupt_t *ctx)
Marks the interruption context as "killed".
Definition: interrupt.c:177
ssize_t vlc_sendmsg(int fd, const struct msghdr *msg, int flags)
Sends a socket message.
Definition: filesystem.c:374
static void DeleteEncoder(encoder_t *)
Definition: image.c:761
static int vlc_interrupt_finish(vlc_interrupt_t *ctx)
Cleans up after an interruptible wait: waits for any pending invocations of the callback previously r...
Definition: interrupt.c:140
#define VLC_CODEC_RGB15
Definition: vlc_fourcc.h:343
module_t * p_module
Definition: vlc_filter.h:220
ssize_t vlc_sendmsg_i11e(int fd, const struct msghdr *msg, int flags)
Definition: interrupt.c:499
size_t i_buffer
Payload length.
Definition: vlc_block.h:122
static void video_format_Clean(video_format_t *p_src)
Cleanup and free palette of this video_format_t.
Definition: vlc_es.h:469
#define module_need_var(a, b, c)
Definition: vlc_modules.h:123
vlc_mutex_t lock
Definition: httpcookies.c:268
int fd
Definition: vlc_fixups.h:419
static filter_t * CreateConverter(vlc_object_t *, const es_format_t *, struct vlc_video_context *, const video_format_t *)
Definition: image.c:771
static void vlc_poll_i11e_wake(void *opaque)
Definition: interrupt.c:282
block_t *(* pf_encode_video)(encoder_t *, picture_t *)
Definition: vlc_codec.h:257
const struct decoder_owner_callbacks * cbs
Definition: vlc_codec.h:200
char * psz_value
Definition: httpcookies.c:60
bool b_host_only
Definition: httpcookies.c:63
static void picture_Release(picture_t *picture)
Decrements the picture reference count.
Definition: vlc_picture.h:368
Definition: vlc_fixups.h:417
int(* pf_decode)(decoder_t *, block_t *p_block)
Definition: vlc_codec.h:150
static char * cookie_get_attribute_value(const char *cookie, const char *attr)
Definition: httpcookies.c:47
es_format_t fmt_in
Definition: vlc_filter.h:224
vlc_array_t cookies
Definition: httpcookies.c:267
static int vlc_array_append(vlc_array_t *ar, void *elem)
Definition: vlc_arrays.h:335
#define VLC_MALLOC
Heap allocated result function annotation.
Definition: vlc_common.h:167
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
char * vlc_http_cookies_fetch(vlc_http_cookie_jar_t *p_jar, bool secure, const char *host, const char *path)
Returns a cookie value that match the given URL.
Definition: httpcookies.c:351
Definition: vlc_codec.h:101
#define vlc_stream_NewURL(a, b)
Definition: vlc_stream.h:422
const char psz_ext[7]
Definition: image.c:586
static struct decoder_owner * dec_get_owner(decoder_t *p_dec)
Definition: image.c:57
int poll(struct pollfd *, unsigned, int)
static int vlc_ascii_strcasecmp(const char *psz1, const char *psz2)
Compare two ASCII strings ignoring case.
Definition: vlc_strings.h:60
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
int vlc_mwait_i11e(vlc_tick_t deadline)
Interruptible variant of vlc_tick_wait().
Definition: interrupt.c:225
int vlc_interrupt_unregister(void)
Definition: interrupt.c:166
static bool cookie_path_matches(const http_cookie_t *cookie, const char *uripath)
Definition: httpcookies.c:139
#define VLC_CODEC_PNM
Definition: vlc_fourcc.h:451
ssize_t vlc_read_i11e(int fd, void *buf, size_t count)
Wrapper for read() that returns the EINTR error upon VLC I/O interruption.
Definition: interrupt.c:449
ssize_t vlc_write_i11e(int fd, const void *buf, size_t count)
Wrapper for write() that returns the EINTR error upon VLC I/O interruption.
Definition: interrupt.c:462
vlc_fourcc_t image_Type2Fourcc(const char *)
Definition: image.c:613
static bool cookie_domain_matches(const http_cookie_t *cookie, const char *host)
Definition: httpcookies.c:104
Video picture.
Definition: vlc_picture.h:120
int asprintf(char **, const char *,...)
void vlc_cond_signal(vlc_cond_t *cond)
Wakes up one thread waiting on a condition variable.
Definition: threads.c:253
Mutex.
Definition: vlc_threads.h:225
#define VLCDEC_SUCCESS
Definition: vlc_codec.h:126
char * strndup(const char *, size_t)
static decoder_t * CreateDecoder(image_handler_t *, const es_format_t *)
Definition: image.c:671
image_handler_t * image_HandlerCreate(vlc_object_t *p_this)
Create an image_handler_t instance.
Definition: image.c:93
es_format_t fmt_out
Definition: vlc_filter.h:228
bool vlc_http_cookies_store(vlc_http_cookie_jar_t *p_jar, const char *cookies, const char *host, const char *path)
Parse a value of an incoming Set-Cookie header and append the cookie to the cookie jar if appropriate...
Definition: httpcookies.c:296
vlc_http_cookie_jar_t * vlc_http_cookies_new(void)
Definition: httpcookies.c:271
static char * cookie_default_path(const char *request_path)
Definition: httpcookies.c:162
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
static char * cookie_get_domain(const char *cookie)
Definition: httpcookies.c:90
static void filter_Close(filter_t *p_filter)
Definition: vlc_filter.h:244
module_t * p_module
Definition: vlc_codec.h:106
static int ImageWriteUrl(image_handler_t *, picture_t *, const video_format_t *, const video_format_t *, const char *)
Definition: image.c:464
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
picture_fifo_t * picture_fifo_New(void)
It creates an empty picture_fifo_t.
Definition: picture_fifo.c:58
Definition: vlc_arrays.h:258
FILE * vlc_fopen(const char *filename, const char *mode)
Opens a FILE pointer.
Definition: filesystem.c:49
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:183
#define VLC_CODEC_PGM
Definition: vlc_fourcc.h:439
Definition: vlc_codec.h:47
#define VLC_CODEC_PCX
Definition: vlc_fourcc.h:452
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
@ COLOR_PRIMARIES_UNDEF
Definition: vlc_es.h:268
Definition: httpcookies.c:37
#define VLC_CODEC_RGB32
Definition: vlc_fourcc.h:349
struct http_cookie_t http_cookie_t
static size_t vlc_array_count(vlc_array_t *p_array)
Definition: vlc_arrays.h:277
Structure describing a filter.
Definition: vlc_filter.h:215
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
static void vlc_mwait_i11e_wake(void *opaque)
Definition: interrupt.c:212
#define POLLOUT
Definition: vlc_fixups.h:415
filter_t * p_converter
Definition: vlc_image.h:59
static void vlc_interrupt_cleanup(void *opaque)
Definition: interrupt.c:172
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
Decoder context struct.
Definition: vlc_codec.h:566
es_format_t fmt_in
Definition: vlc_codec.h:110
void vlc_interrupt_deinit(vlc_interrupt_t *)
Deinitializes an interruption context.
Definition: interrupt.c:71
#define VLC_CODEC_PNG
Definition: vlc_fourcc.h:437
const struct vlc_filter_operations * ops
Definition: vlc_filter.h:238
#define VLC_CODEC_SVG
Definition: vlc_fourcc.h:449
int vlc_close(int fd)
Closes a file descriptor.
Definition: filesystem.c:91
vlc_mutex_t lock
Definition: interrupt.h:34
Definition: vlc_codec.h:242
short events
Definition: vlc_fixups.h:420
ssize_t recvmsg(int, struct msghdr *, int)
static thread_local vlc_interrupt_t * vlc_interrupt_var
Definition: interrupt.c:46
struct decoder_owner_callbacks::@182::@184 video
void vlc_interrupt_deinit(vlc_interrupt_t *ctx)
Deinitializes an interruption context.
Definition: interrupt.c:71
#define VLC_CODEC_PGMYUV
Definition: vlc_fourcc.h:440
stream_t definition
Definition: vlc_stream.h:46
#define VLC_CODEC_GIF
Definition: vlc_fourcc.h:447
bool vlc_killed(void)
Checks if the interruption context was "killed".
Definition: interrupt.c:185
vlc_tick_t i_pts
Definition: vlc_block.h:129
static picture_t * ImageRead(image_handler_t *, block_t *, const es_format_t *, video_format_t *)
Definition: image.c:141
static void ImageQueueVideo(decoder_t *p_dec, picture_t *p_pic)
Read an image.
Definition: image.c:135
#define vlc_cleanup_pop()
Unregisters the last cancellation handler.
Definition: vlc_threads.h:1018
es_format_t fmt_in
Definition: vlc_codec.h:251
#define POLLIN
Definition: vlc_fixups.h:414
const char * psz_mime
Definition: image.c:634
void image_HandlerDelete(image_handler_t *p_image)
Delete the image_handler_t instance.
Definition: image.c:116
vlc_interrupt_t * vlc_interrupt_create(void)
Creates an interruption context.
Definition: interrupt.c:59
#define vlc_tick_wait(d)
Definition: vlc_threads.h:903
static int vlc_ascii_strncasecmp(const char *psz1, const char *psz2, size_t n)
Definition: vlc_strings.h:75
Definition: interrupt.h:32
picture_t *(* pf_convert)(image_handler_t *, picture_t *, const video_format_t *, video_format_t *)
Definition: vlc_image.h:52
static http_cookie_t * cookie_parse(const char *value, const char *host, const char *path)
Definition: httpcookies.c:198
#define container_of(ptr, type, member)
Definition: vlc_common.h:1140
Definition: httpcookies.c:265
es_format_t fmt_out
Definition: vlc_codec.h:113
bool interrupted
Definition: interrupt.h:35
Definition: decoder_helpers.c:228
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:193
void picture_fifo_Push(picture_fifo_t *fifo, picture_t *picture)
It saves a picture_t into the fifo.
Definition: picture_fifo.c:69
ssize_t vlc_readv_i11e(int fd, struct iovec *iov, int count)
Wrapper for readv() that returns the EINTR error upon VLC I/O interruption.
Definition: interrupt.c:414
vlc_fourcc_t image_Ext2Fourcc(const char *)
Definition: image.c:622
void vlc_sem_wait(vlc_sem_t *sem)
Waits on a semaphore.
Definition: threads.c:463
vlc_interrupt_t * vlc_interrupt_set(vlc_interrupt_t *newctx)
Sets the interruption context for the calling thread.
Definition: interrupt.c:98
VLC object common members.
Definition: vlc_objects.h:43
void vlc_interrupt_raise(vlc_interrupt_t *ctx)
Raises an interruption through a specified context.
Definition: interrupt.c:83
atomic_bool killed
Definition: interrupt.h:36
static void vlc_mwait_i11e_cleanup(void *opaque)
Definition: interrupt.c:217
static void vlc_array_init(vlc_array_t *p_array)
Definition: vlc_arrays.h:264
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
ssize_t vlc_recvfrom_i11e(int fd, void *buf, size_t len, int flags, struct sockaddr *addr, socklen_t *addrlen)
Definition: interrupt.c:482
Semaphore.
Definition: vlc_threads.h:449
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
static void vlc_array_clear(vlc_array_t *p_array)
Definition: vlc_arrays.h:270
@ COLOR_SPACE_UNDEF
Definition: vlc_es.h:313
static void vlc_interrupt_forward_wake(void *opaque)
Definition: interrupt.c:246
char * strdup(const char *)
int vlc_interrupt_forward_stop(void *const data[2])
Undoes vlc_interrupt_forward_start().
Definition: interrupt.c:270
bool b_secure
Definition: httpcookies.c:64
int vlc_pipe(int fds[2])
Creates a pipe (see "man pipe" for further reference).
Definition: filesystem.c:275
#define VLC_USED
Definition: fourcc_gen.c:32
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
static void DeleteConverter(filter_t *)
Definition: image.c:803
Definition: vlc_image.h:39
void vlc_http_cookies_destroy(vlc_http_cookie_jar_t *p_jar)
Definition: httpcookies.c:283
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
static int vlc_poll_i11e_inner(struct pollfd *restrict fds, unsigned nfds, int timeout, vlc_interrupt_t *ctx, struct pollfd *restrict ufd)
Definition: interrupt.c:304
picture_fifo_t * outfifo
Definition: vlc_image.h:61
#define VLC_FOURCC(a, b, c, d)
Definition: fourcc_gen.c:37
#define vlc_array_item_at_index(ar, idx)
Definition: vlc_arrays.h:283
Condition variable.
Definition: vlc_threads.h:349
char * psz_path
Definition: httpcookies.c:62
void(* callback)(void *)
Definition: interrupt.h:37
es_format_t fmt_out
Definition: vlc_codec.h:255
module_t * p_module
Definition: vlc_codec.h:247
int vlc_sem_post(vlc_sem_t *sem)
Increments the value of a semaphore.
Definition: threads.c:447
@ TRANSFER_FUNC_UNDEF
Definition: vlc_es.h:290
int vlc_poll_i11e(struct pollfd *fds, unsigned nfds, int timeout)
Interruptible variant of poll().
Definition: interrupt.c:367
picture_t *(* pf_read_url)(image_handler_t *, const char *, video_format_t *)
Definition: vlc_image.h:44
#define VLC_CODEC_JPEG
Definition: vlc_fourcc.h:442
static block_t * ImageWrite(image_handler_t *, picture_t *, const video_format_t *, const video_format_t *)
Write an image.
Definition: image.c:367
#define VLC_CODEC_TIFF
Definition: vlc_fourcc.h:446
int(* pf_write_url)(image_handler_t *, picture_t *, const video_format_t *, const video_format_t *, const char *)
Definition: vlc_image.h:48
void vlc_stream_Delete(stream_t *s)
Destroy a stream.
Definition: stream.c:133
encoder_t * p_enc
Definition: vlc_image.h:58
static bool cookie_should_be_sent(const http_cookie_t *cookie, bool secure, const char *host, const char *path)
Definition: httpcookies.c:153
#define VLC_CODEC_BMP
Definition: vlc_fourcc.h:445
ssize_t vlc_writev_i11e(int fd, const struct iovec *iov, int count)
Wrapper for writev() that returns the EINTR error upon VLC I/O interruption.
Definition: interrupt.c:433
vlc_fourcc_t i_codec
Definition: image.c:585
vlc_tick_t i_dts
Definition: vlc_block.h:130
static char * stream_MimeType(stream_t *s)
Get the mime-type of a stream.
Definition: vlc_stream.h:375
#define VLC_CODEC_TARGA
Definition: vlc_fourcc.h:448
vlc_object_t * p_parent
Definition: vlc_image.h:56
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
static void vlc_poll_i11e_cleanup(void *opaque)
Definition: interrupt.c:293
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
void vlc_interrupt_register(void(*cb)(void *), void *opaque)
Registers a custom interrupt handler.
Definition: interrupt.c:159
static picture_t * picture_Hold(picture_t *picture)
Increments the picture reference count.
Definition: vlc_picture.h:355
picture_t *(* pf_read)(image_handler_t *, block_t *, const es_format_t *, video_format_t *)
Definition: vlc_image.h:41
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:121
static vlc_decoder_device * image_get_device(decoder_t *p_dec)
Definition: image.c:665
static bool BitMapFormatIsSimilar(const video_format_t *f1, const video_format_t *f2)
Definition: image.c:340
static bool picture_HasChainedPics(const picture_t *pic)
Check whether a picture has other pictures linked.
Definition: vlc_picture.h:168
void vlc_interrupt_init(vlc_interrupt_t *ctx)
Initializes an interruption context.
Definition: interrupt.c:51
#define VLC_CODEC_RGB24
Definition: vlc_fourcc.h:347
int vlc_accept(int lfd, struct sockaddr *addr, socklen_t *alen, bool nonblock)
Accepts an inbound connection request on a listening socket.
Definition: filesystem.c:345
ssize_t vlc_recvmsg_i11e(int fd, struct msghdr *msg, int flags)
Definition: interrupt.c:468
static const struct @70 ext_table[]
Misc functions.
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
#define VLC_CODEC_PPM
Definition: vlc_fourcc.h:438
ssize_t vlc_sendto_i11e(int fd, const void *buf, size_t len, int flags, const struct sockaddr *addr, socklen_t addrlen)
Definition: interrupt.c:512
static picture_t * ImageConvert(image_handler_t *, picture_t *, const video_format_t *, video_format_t *)
Convert an image to a different format.
Definition: image.c:512
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
#define VLC_CODEC_JPEGLS
Definition: vlc_fourcc.h:444
int vlc_cond_timedwait(vlc_cond_t *cond, vlc_mutex_t *mutex, vlc_tick_t deadline)
Waits on a condition variable up to a certain date.
Definition: threads.c:349
static char * cookie_get_path(const char *cookie)
Definition: httpcookies.c:134
#define module_unneed(a, b)
Definition: vlc_modules.h:126
void vlc_interrupt_destroy(vlc_interrupt_t *ctx)
Destroys an interrupt context.
Definition: interrupt.c:76
vlc_fourcc_t image_Mime2Fourcc(const char *psz_mime)
Definition: image.c:657
void block_Release(block_t *block)
Releases a block.
Definition: block.c:135
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
Definition: vlc_block.h:117
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
char * psz_name
Definition: httpcookies.c:59
static const struct @71 mime_table[]
decoder_t dec
Definition: image.c:55
void vlc_testcancel(void)
Issues an explicit deferred cancellation point.
Definition: thread.c:201
static void vlc_interrupt_prepare(vlc_interrupt_t *ctx, void(*cb)(void *), void *data)
Prepares to enter interruptible wait.
Definition: interrupt.c:113
decoder_t * p_dec
Definition: vlc_image.h:57
int vlc_accept_i11e(int fd, struct sockaddr *addr, socklen_t *addrlen, bool blocking)
Definition: interrupt.c:526
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111
static void cookie_destroy(http_cookie_t *cookie)
Definition: httpcookies.c:187
#define VLC_CODEC_RGB16
Definition: vlc_fourcc.h:345
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:33