ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
capture.h File Reference

📹 Unified media capture abstraction for session-based video sources More...

Go to the source code of this file.

Data Structures

struct  session_capture_config_t
 Configuration for session capture context. More...
 

Typedefs

typedef bool(* session_capture_should_exit_fn) (void *user_data)
 Callback type to check if initialization should be cancelled.
 
typedef struct session_capture_ctx session_capture_ctx_t
 Opaque session capture context handle.
 

Functions

session_capture_ctx_t * session_mirror_capture_create (const session_capture_config_t *config)
 Create a new session capture context.
 
session_capture_ctx_t * session_network_capture_create (uint32_t target_fps)
 Create network mode capture context without media source.
 
session_capture_ctx_t * session_capture_create (const session_capture_config_t *config)
 Legacy function - creates either mirror or network capture based on options.
 
void session_capture_destroy (session_capture_ctx_t *ctx)
 Destroy session capture context and free resources.
 
image_t * session_capture_read_frame (session_capture_ctx_t *ctx)
 Read the next video frame from the capture source.
 
image_t * session_capture_process_for_transmission (session_capture_ctx_t *ctx, image_t *frame)
 Process a frame for network transmission (resize if needed)
 
void session_capture_sleep_for_fps (session_capture_ctx_t *ctx)
 Sleep to maintain target frame rate.
 
bool session_capture_at_end (session_capture_ctx_t *ctx)
 Check if capture source has reached end of stream.
 
bool session_capture_is_valid (session_capture_ctx_t *ctx)
 Check if capture context is initialized and valid.
 
double session_capture_get_current_fps (session_capture_ctx_t *ctx)
 Get the current FPS being achieved by the capture source.
 
uint32_t session_capture_get_target_fps (session_capture_ctx_t *ctx)
 Get the target FPS configured for this capture context.
 
bool session_capture_has_audio (session_capture_ctx_t *ctx)
 Check if capture source has audio available.
 
size_t session_capture_read_audio (session_capture_ctx_t *ctx, float *buffer, size_t num_samples)
 Read audio samples from capture source.
 
bool session_capture_using_file_audio (session_capture_ctx_t *ctx)
 Check if currently using file audio vs microphone fallback.
 
void * session_capture_get_media_source (session_capture_ctx_t *ctx)
 Get the underlying media source from capture context.
 
void * session_capture_get_audio_context (session_capture_ctx_t *ctx)
 Get the audio context for playback control.
 
void session_capture_set_audio_context (session_capture_ctx_t *ctx, void *audio_ctx)
 Set the audio context for playback control.
 

Detailed Description

📹 Unified media capture abstraction for session-based video sources

Definition in file common/session/capture.h.

Function Documentation

◆ session_capture_get_audio_context()

void * session_capture_get_audio_context ( session_capture_ctx_t *  ctx)

Get the audio context for playback control.

Parameters
ctxCapture context
Returns
Audio context pointer (borrowed, not owned) or NULL

Definition at line 566 of file common/session/capture.c.

566 {
567 if (!ctx || !ctx->initialized) {
568 return NULL;
569 }
570 return ctx->audio_ctx;
571}
bool initialized
Context has been successfully initialized.
void * audio_ctx
Main audio context for playback (borrowed, not owned)

References session_capture_ctx::audio_ctx, and session_capture_ctx::initialized.

Referenced by session_handle_keyboard_input().

◆ session_capture_set_audio_context()

void session_capture_set_audio_context ( session_capture_ctx_t *  ctx,
void *  audio_ctx 
)

Set the audio context for playback control.

Parameters
ctxCapture context (must not be NULL)
audio_ctxAudio context pointer (borrowed, not owned)

Definition at line 573 of file common/session/capture.c.

573 {
574 if (ctx) {
575 ctx->audio_ctx = audio_ctx;
576 }
577}

References session_capture_ctx::audio_ctx.

Referenced by session_client_like_run().