ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
source.h
Go to the documentation of this file.
1#pragma once
2
80
81#include <stdbool.h>
82#include <stddef.h>
83#include "../common.h"
85
86/* ============================================================================
87 * Media Source Types
88 * ============================================================================ */
89
103
122
123/* ============================================================================
124 * Media Source Lifecycle
125 * ============================================================================ */
126
148
161
162/* ============================================================================
163 * Video Operations
164 * ============================================================================ */
165
190
204
205/* ============================================================================
206 * Audio Operations
207 * ============================================================================ */
208
236size_t media_source_read_audio(media_source_t *source, float *buffer, size_t num_samples);
237
251
252/* ============================================================================
253 * Playback Control
254 * ============================================================================ */
255
275
295
309
320
331
351
370
397
408
427
445
464
476
496void media_source_set_exit_callback(media_source_t *source, bool (*should_exit_callback)(void *), void *user_data);
497
499
500/* Audio-only sources retain file audio and select webcam video. Metadata probing does not open the camera. */
503
504media_source_t *media_source_create_interruptible(media_source_type_t type, const char *path, bool (*cancel)(void *),
505 void *data);
⚙️ Common definitions, error codes, macros, and types shared throughout the application
audio_visualization_source_t source
Definition fft.c:24
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
bool media_source_at_end(media_source_t *source)
Check if media source reached end of stream.
Definition source.c:836
bool media_source_is_paused(media_source_t *source)
Check if media source is paused.
Definition source.c:1088
bool media_source_has_video(media_source_t *source)
Check if media source has video stream.
Definition source.c:699
size_t media_source_read_audio(media_source_t *source, float *buffer, size_t num_samples)
Read audio samples from media source.
Definition source.c:722
media_source_type_t
Media source type enumeration.
Definition source.h:97
bool media_source_has_audio(media_source_t *source)
Check if media source has audio stream.
Definition source.c:801
double media_source_get_position(media_source_t *source)
Get current playback position in seconds.
Definition source.c:1025
void media_source_destroy(media_source_t *source)
Destroy media source and free resources.
Definition source.c:508
void media_source_resume(media_source_t *source)
Resume media playback after pause.
Definition source.c:1081
double media_source_get_video_fps(media_source_t *source)
Get video frame rate in frames per second.
Definition source.c:1047
double media_source_get_duration(media_source_t *source)
Get media duration in seconds.
Definition source.c:1003
void media_source_pause(media_source_t *source)
Pause media playback.
Definition source.c:1074
image_t * media_source_read_video(media_source_t *source)
Read next video frame from media source.
Definition source.c:592
asciichat_error_t media_source_seek(media_source_t *source, double timestamp_sec)
Seek media source to timestamp.
Definition source.c:917
void media_source_set_exit_callback(media_source_t *source, bool(*should_exit_callback)(void *), void *user_data)
Set exit signal callback for graceful shutdown during I/O.
Definition source.c:1110
media_source_type_t media_source_get_type(media_source_t *source)
Get media source type.
Definition source.c:999
void media_source_set_audio_context(media_source_t *source, void *audio_ctx)
Set audio context for playback buffer management.
Definition source.c:1104
media_source_t * media_source_create(media_source_type_t type, const char *path)
Create a new media source.
Definition source.c:221
void media_source_toggle_pause(media_source_t *source)
Toggle pause state of media source.
Definition source.c:1095
asciichat_error_t media_source_rewind(media_source_t *source)
Rewind media source to beginning.
Definition source.c:864
void media_source_set_loop(media_source_t *source, bool loop)
Enable or disable looping.
Definition source.c:824
@ MEDIA_SOURCE_STDIN
Piped or redirected input.
Definition source.h:100
@ MEDIA_SOURCE_WEBCAM
Hardware webcam device.
Definition source.h:98
@ MEDIA_SOURCE_FILE
Media file (video/audio).
Definition source.h:99
@ MEDIA_SOURCE_TEST
Test pattern generator.
Definition source.h:101
media_source_t * media_source_create_interruptible(media_source_type_t type, const char *path, bool(*cancel)(void *), void *data)
Definition source.c:225
bool media_source_uses_webcam(media_source_t *source)
Definition source.c:587
asciichat_error_t media_source_start_video(media_source_t *source)
Definition source.c:571
SIMD-friendly storage for one RGB pixel. r, g, and b hold the color channels and padding keeps the la...
Media source for video and audio capture.
Definition source.c:47
void * audio_ctx
Audio context for clearing buffers on seek (opaque).
Definition source.c:70
media_source_type_t type
Type of media source (webcam, file, stdin, test).
Definition source.c:48