ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
common/session/capture.h
Go to the documentation of this file.
1
50#pragma once
51
52#include <stdbool.h>
53#include <stddef.h>
54#include <stdint.h>
57
58/* ============================================================================
59 * Session Capture Configuration
60 * ============================================================================ */
61
71typedef bool (*session_capture_should_exit_fn)(void *user_data);
72
114
115/* ============================================================================
116 * Session Capture Context
117 * ============================================================================ */
118
128
129/* ============================================================================
130 * Session Capture Lifecycle Functions
131 * @{
132 */
133
162
179
193
204
207/* ============================================================================
208 * Session Capture Operations
209 * @{
210 */
211
226
243
256
268
277
286
295
306
322size_t session_capture_read_audio(session_capture_ctx_t *ctx, float *buffer, size_t num_samples);
323
334
350
357
364
void session_capture_set_audio_context(session_capture_ctx_t *ctx, void *audio_ctx)
Set the audio context for playback control.
void * session_capture_get_audio_context(session_capture_ctx_t *ctx)
Get the audio context for playback control.
unsigned int uint32_t
Definition common.h:58
media_source_type_t
Media source type enumeration.
Definition source.h:81
bool session_capture_has_audio(session_capture_ctx_t *ctx)
Check if capture source has audio available.
bool(* session_capture_should_exit_fn)(void *user_data)
Callback type to check if initialization should be cancelled.
image_t * session_capture_process_for_transmission(session_capture_ctx_t *ctx, image_t *frame)
Process a frame for network transmission (resize if needed)
session_capture_ctx_t * session_mirror_capture_create(const session_capture_config_t *config)
Create a new session capture context.
bool session_capture_at_end(session_capture_ctx_t *ctx)
Check if capture source has reached end of stream.
double session_capture_get_current_fps(session_capture_ctx_t *ctx)
Get the current FPS being achieved by the capture source.
size_t session_capture_read_audio(session_capture_ctx_t *ctx, float *buffer, size_t num_samples)
Read audio samples from capture source.
image_t * session_capture_read_frame(session_capture_ctx_t *ctx)
Read the next video frame from the capture source.
bool session_capture_is_valid(session_capture_ctx_t *ctx)
Check if capture context is initialized and valid.
bool session_capture_using_file_audio(session_capture_ctx_t *ctx)
Check if currently using file audio vs microphone fallback.
uint32_t session_capture_get_target_fps(session_capture_ctx_t *ctx)
Get the target FPS configured for this capture context.
session_capture_ctx_t * session_capture_create(const session_capture_config_t *config)
Legacy function - creates either mirror or network capture based on options.
session_capture_ctx_t * session_network_capture_create(uint32_t target_fps)
Create network mode capture context without media source.
void * session_capture_get_media_source(session_capture_ctx_t *ctx)
Get the underlying media source from capture context.
void session_capture_sleep_for_fps(session_capture_ctx_t *ctx)
Sleep to maintain target frame rate.
void session_capture_destroy(session_capture_ctx_t *ctx)
Destroy session capture context and free resources.
🎬 Unified media source abstraction for webcam, files, and stdin
int frame
Definition splash.c:99
ClangTool/LibTooling compatibility shim for stdbool.h.
#define bool
Definition stdbool.h:61
Image structure.
Configuration for session capture context.
media_source_type_t type
Media source type (WEBCAM, FILE, STDIN, TEST)
const char * path
Device index (for webcam) or file path (for file sources)
uint32_t target_fps
Target frame rate in FPS (e.g., 60 for display, 144 for network)
double initial_seek_timestamp
Seek to this timestamp after opening media (0.0 = no seek)
session_capture_should_exit_fn should_exit_callback
Optional: callback to check if initialization should be cancelled (e.g., shutdown signal)
void * callback_data
Opaque data passed to should_exit_callback.
bool audio_fallback_to_mic
Fall back to microphone if file audio is not available.
bool resize_for_network
Resize frames to network-optimal dimensions (MAX_FRAME_WIDTH x MAX_FRAME_HEIGHT)
bool loop
Enable loop playback for file sources.
bool enable_audio
Enable audio capture from media source.
void * mic_audio_ctx
Microphone audio context for fallback (borrowed, not owned)
Internal session capture context structure.
uint32_t target_fps
Target frames per second.
void * audio_ctx
Main audio context for playback (borrowed, not owned)