ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
source.h
Go to the documentation of this file.
1#pragma once
2
65#include <stdbool.h>
66#include <stddef.h>
67#include "../common.h"
69
70/* ============================================================================
71 * Media Source Types
72 * ============================================================================ */
73
87
106
107/* ============================================================================
108 * Media Source Lifecycle
109 * ============================================================================ */
110
132
145
146/* ============================================================================
147 * Video Operations
148 * ============================================================================ */
149
174
188
189/* ============================================================================
190 * Audio Operations
191 * ============================================================================ */
192
220size_t media_source_read_audio(media_source_t *source, float *buffer, size_t num_samples);
221
235
236/* ============================================================================
237 * Playback Control
238 * ============================================================================ */
239
258void media_source_set_loop(media_source_t *source, bool loop);
259
279
293
304
315
335
354
380asciichat_error_t media_source_seek(media_source_t *source, double timestamp_sec);
381
392
411
429
448
460
480void media_source_set_exit_callback(media_source_t *source, bool (*should_exit_callback)(void *), void *user_data);
481
484/* Audio-only sources retain file audio and select webcam video. Metadata probing does not open the camera. */
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:49
bool media_source_at_end(media_source_t *source)
Check if media source reached end of stream.
Definition source.c:772
bool media_source_is_paused(media_source_t *source)
Check if media source is paused.
Definition source.c:1022
bool media_source_has_video(media_source_t *source)
Check if media source has video stream.
Definition source.c:629
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:652
media_source_type_t
Media source type enumeration.
Definition source.h:81
bool media_source_has_audio(media_source_t *source)
Check if media source has audio stream.
Definition source.c:737
double media_source_get_position(media_source_t *source)
Get current playback position in seconds.
Definition source.c:956
void media_source_destroy(media_source_t *source)
Destroy media source and free resources.
Definition source.c:448
void media_source_resume(media_source_t *source)
Resume media playback after pause.
Definition source.c:1013
double media_source_get_video_fps(media_source_t *source)
Get video frame rate in frames per second.
Definition source.c:978
double media_source_get_duration(media_source_t *source)
Get media duration in seconds.
Definition source.c:934
void media_source_pause(media_source_t *source)
Pause media playback.
Definition source.c:1004
image_t * media_source_read_video(media_source_t *source)
Read next video frame from media source.
Definition source.c:523
asciichat_error_t media_source_seek(media_source_t *source, double timestamp_sec)
Seek media source to timestamp.
Definition source.c:851
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:1047
media_source_type_t media_source_get_type(media_source_t *source)
Get media source type.
Definition source.c:930
void media_source_set_audio_context(media_source_t *source, void *audio_ctx)
Set audio context for playback buffer management.
Definition source.c:1041
media_source_t * media_source_create(media_source_type_t type, const char *path)
Create a new media source.
Definition source.c:187
void media_source_toggle_pause(media_source_t *source)
Toggle pause state of media source.
Definition source.c:1032
asciichat_error_t media_source_rewind(media_source_t *source)
Rewind media source to beginning.
Definition source.c:800
void media_source_set_loop(media_source_t *source, bool loop)
Enable or disable looping.
Definition source.c:760
@ MEDIA_SOURCE_STDIN
Piped or redirected input.
Definition source.h:84
@ MEDIA_SOURCE_WEBCAM
Hardware webcam device.
Definition source.h:82
@ MEDIA_SOURCE_FILE
Media file (video/audio)
Definition source.h:83
@ MEDIA_SOURCE_TEST
Test pattern generator.
Definition source.h:85
bool media_source_uses_webcam(media_source_t *source)
Definition source.c:519
asciichat_error_t media_source_start_video(media_source_t *source)
Definition source.c:506
ClangTool/LibTooling compatibility shim for stdbool.h.
Image structure.
Media source for video and audio capture.
Definition source.c:34
void * audio_ctx
Audio context for clearing buffers on seek (opaque)
Definition source.c:59
media_source_type_t type
Type of media source (webcam, file, stdin, test)
Definition source.c:35