ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
ffmpeg_decoder.h
Go to the documentation of this file.
1#pragma once
2
41#include <stdbool.h>
42#include <stddef.h>
43#include "../common.h"
45
46/* ============================================================================
47 * FFmpeg Decoder Handle
48 * ============================================================================ */
49
59
60/* ============================================================================
61 * Decoder Lifecycle
62 * ============================================================================ */
63
85
110
130
151
162
181void ffmpeg_decoder_set_exit_callback(ffmpeg_decoder_t *decoder, bool (*should_exit_callback)(void *), void *user_data);
182
194
195/* ============================================================================
196 * Video Operations
197 * ============================================================================ */
198
229
238
249
260
261/* ============================================================================
262 * Audio Operations
263 * ============================================================================ */
264
293size_t ffmpeg_decoder_read_audio_samples(ffmpeg_decoder_t *decoder, float *buffer, size_t num_samples);
294
303
304/* ============================================================================
305 * Playback Control
306 * ============================================================================ */
307
326
348
357
368
379
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:49
bool ffmpeg_decoder_at_end(ffmpeg_decoder_t *decoder)
Check if decoder reached end of stream.
double ffmpeg_decoder_get_position(ffmpeg_decoder_t *decoder)
Get current playback position in seconds.
void ffmpeg_decoder_stop_prefetch(ffmpeg_decoder_t *decoder)
Stop background frame prefetching thread.
image_t * ffmpeg_decoder_read_video_frame(ffmpeg_decoder_t *decoder)
Decode next video frame.
bool ffmpeg_decoder_has_video(ffmpeg_decoder_t *decoder)
Check if decoder has video stream.
double ffmpeg_decoder_get_video_fps(ffmpeg_decoder_t *decoder)
Get video frame rate.
asciichat_error_t ffmpeg_decoder_rewind(ffmpeg_decoder_t *decoder)
Seek to beginning of media.
asciichat_error_t ffmpeg_decoder_get_video_dimensions(ffmpeg_decoder_t *decoder, int *width, int *height)
Get video dimensions.
bool ffmpeg_decoder_has_audio(ffmpeg_decoder_t *decoder)
Check if decoder has audio stream.
bool ffmpeg_decoder_is_prefetch_running(ffmpeg_decoder_t *decoder)
Check if background frame prefetching thread is running.
asciichat_error_t ffmpeg_decoder_start_prefetch(ffmpeg_decoder_t *decoder)
Start background frame prefetching thread.
asciichat_error_t ffmpeg_decoder_seek_to_timestamp(ffmpeg_decoder_t *decoder, double timestamp_sec)
Seek to specific timestamp in media.
void ffmpeg_decoder_set_exit_callback(ffmpeg_decoder_t *decoder, bool(*should_exit_callback)(void *), void *user_data)
Set exit signal callback for graceful shutdown during I/O.
void ffmpeg_decoder_destroy(ffmpeg_decoder_t *decoder)
Destroy FFmpeg decoder and free resources.
ffmpeg_decoder_t * ffmpeg_decoder_create(const char *path)
Create FFmpeg decoder from file path.
size_t ffmpeg_decoder_read_audio_samples(ffmpeg_decoder_t *decoder, float *buffer, size_t num_samples)
Decode audio samples.
ffmpeg_decoder_t * ffmpeg_decoder_create_stdin(void)
Create FFmpeg decoder from stdin.
double ffmpeg_decoder_get_duration(ffmpeg_decoder_t *decoder)
Get media duration in seconds.
ClangTool/LibTooling compatibility shim for stdbool.h.
FFmpeg decoder state for video and audio decoding.
bool(* should_exit_callback)(void *user_data)
Callback to check if app should exit.
Image structure.