gavl
|
Data Structures | |
struct | gavl_frame_table_t |
frame table structure More... | |
Functions | |
GAVL_PUBLIC gavl_frame_table_t * | gavl_frame_table_create () |
Create a frame table. | |
GAVL_PUBLIC gavl_frame_table_t * | gavl_frame_table_create_audio (int samplerate, int64_t offset, int64_t duration, gavl_timecode_format_t *fmt_ret) |
Create a frame table for an audio stream. | |
GAVL_PUBLIC gavl_frame_table_t * | gavl_frame_table_create_cfr (int64_t offset, int64_t frame_duration, int64_t num_frames, gavl_timecode_t start_timecode) |
Create a frame table for constant framerate video. | |
GAVL_PUBLIC gavl_frame_table_t * | gavl_frame_table_copy (const gavl_frame_table_t *tab) |
Copy a frame table to another. | |
GAVL_PUBLIC void | gavl_frame_table_destroy (gavl_frame_table_t *t) |
Destroy a frame table and free all memory. | |
GAVL_PUBLIC void | gavl_frame_table_append_entry (gavl_frame_table_t *t, int64_t duration) |
Append an entry. | |
GAVL_PUBLIC void | gavl_frame_table_append_timecode (gavl_frame_table_t *t, int64_t pts, gavl_timecode_t tc) |
Append a timecodes. | |
GAVL_PUBLIC int64_t | gavl_frame_table_frame_to_time (const gavl_frame_table_t *t, int64_t frame, int *duration) |
Convert a frame index to a timestamp. | |
GAVL_PUBLIC int64_t | gavl_frame_table_time_to_frame (const gavl_frame_table_t *t, int64_t time, int64_t *start_time) |
Convert a timestamp to a frame index. | |
GAVL_PUBLIC gavl_timecode_t | gavl_frame_table_time_to_timecode (const gavl_frame_table_t *t, int64_t time, int64_t *start_time, const gavl_timecode_format_t *fmt) |
Convert a timestamp to a timecode. | |
GAVL_PUBLIC int64_t | gavl_frame_table_timecode_to_time (const gavl_frame_table_t *t, gavl_timecode_t tc, const gavl_timecode_format_t *fmt) |
Convert a timecode to a timestamp. | |
GAVL_PUBLIC gavl_timecode_t | gavl_frame_table_frame_to_timecode (const gavl_frame_table_t *t, int64_t frame, int64_t *start_time, const gavl_timecode_format_t *fmt) |
Convert a frame index to a timecode. | |
GAVL_PUBLIC int64_t | gavl_frame_table_num_frames (const gavl_frame_table_t *t) |
get the total number of frames | |
GAVL_PUBLIC int64_t | gavl_frame_table_duration (const gavl_frame_table_t *t) |
get the total duration of all frames | |
GAVL_PUBLIC int64_t | gavl_frame_table_end_time (const gavl_frame_table_t *t) |
get the end time of the last frame | |
GAVL_PUBLIC int | gavl_frame_table_save (const gavl_frame_table_t *tab, const char *filename) |
Save a frame table to a file. | |
GAVL_PUBLIC gavl_frame_table_t * | gavl_frame_table_load (const char *filename) |
Load a frame table from a file. | |
GAVL_PUBLIC void | gavl_frame_table_dump (const gavl_frame_table_t *t) |
Dump a frame table to stderr for debugging. |
This is a table, which tolds the complete timing information of a video sequence. If is meant for e.g. for editing applications, where the complete timing must be known in advance.
A frame table is always associated with a gavl_video_format_t, which must be passed to most functions.
GAVL_PUBLIC gavl_frame_table_t* gavl_frame_table_create | ( | ) |
Create a frame table.
Since 1.1.2.
GAVL_PUBLIC gavl_frame_table_t* gavl_frame_table_create_audio | ( | int | samplerate, |
int64_t | offset, | ||
int64_t | duration, | ||
gavl_timecode_format_t * | fmt_ret | ||
) |
Create a frame table for an audio stream.
samplerate | Samplerate for this stream |
offset | PTS offset of this stream in samples |
duration | Sample count |
fmt_ret | If non-null, returns the timecode format |
Since 1.1.2.
GAVL_PUBLIC gavl_frame_table_t* gavl_frame_table_create_cfr | ( | int64_t | offset, |
int64_t | frame_duration, | ||
int64_t | num_frames, | ||
gavl_timecode_t | start_timecode | ||
) |
Create a frame table for constant framerate video.
offset | Timestamp of the first frame |
duration | Duration of each frame |
num_frames | Number of frames |
fmt | Timecode format (or NULL) |
start_timecode | Timecode of the first frame (or GAVL_TIMECODE_UNDEFINED) |
Since 1.1.2.
GAVL_PUBLIC gavl_frame_table_t* gavl_frame_table_copy | ( | const gavl_frame_table_t * | tab | ) |
Copy a frame table to another.
tab | A frame table |
Since 1.1.2.
GAVL_PUBLIC void gavl_frame_table_destroy | ( | gavl_frame_table_t * | t | ) |
Destroy a frame table and free all memory.
t | A frame table |
Since 1.1.2.
GAVL_PUBLIC void gavl_frame_table_append_entry | ( | gavl_frame_table_t * | t, |
int64_t | duration | ||
) |
Append an entry.
t | A frame table |
duration | The duration of this frame |
Since 1.1.2.
GAVL_PUBLIC void gavl_frame_table_append_timecode | ( | gavl_frame_table_t * | t, |
int64_t | pts, | ||
gavl_timecode_t | tc | ||
) |
Append a timecodes.
t | A frame table |
pts | Presentation time of that frame |
tc | Timecode of that frame |
Since 1.1.2.
GAVL_PUBLIC int64_t gavl_frame_table_frame_to_time | ( | const gavl_frame_table_t * | t, |
int64_t | frame, | ||
int * | duration | ||
) |
Convert a frame index to a timestamp.
t | A frame table |
frame | Frame index (starting with zero) |
duration | If non NULL, returns the duration of that frame |
Since 1.1.2.
GAVL_PUBLIC int64_t gavl_frame_table_time_to_frame | ( | const gavl_frame_table_t * | t, |
int64_t | time, | ||
int64_t * | start_time | ||
) |
Convert a timestamp to a frame index.
t | A frame table |
time | Time in stream timescale |
start_time | If non NULL, returns the start time of that frame |
Since 1.1.2.
GAVL_PUBLIC gavl_timecode_t gavl_frame_table_time_to_timecode | ( | const gavl_frame_table_t * | t, |
int64_t | time, | ||
int64_t * | start_time, | ||
const gavl_timecode_format_t * | fmt | ||
) |
Convert a timestamp to a timecode.
t | A frame table |
time | Time in stream timescale |
start_time | If non NULL, returns the start time of that frame |
fmt | Timecode format |
Since 1.1.2.
GAVL_PUBLIC int64_t gavl_frame_table_timecode_to_time | ( | const gavl_frame_table_t * | t, |
gavl_timecode_t | tc, | ||
const gavl_timecode_format_t * | fmt | ||
) |
Convert a timecode to a timestamp.
t | A frame table |
tc | Timecode |
fmt | Timecode format |
Since 1.1.2.
GAVL_PUBLIC gavl_timecode_t gavl_frame_table_frame_to_timecode | ( | const gavl_frame_table_t * | t, |
int64_t | frame, | ||
int64_t * | start_time, | ||
const gavl_timecode_format_t * | fmt | ||
) |
Convert a frame index to a timecode.
t | A frame table |
frame | Frame index |
start_time | If non NULL, returns the start time of that frame |
fmt | Timecode format |
Since 1.1.2.
GAVL_PUBLIC int64_t gavl_frame_table_num_frames | ( | const gavl_frame_table_t * | t | ) |
get the total number of frames
t | A frame table |
Since 1.1.2.
GAVL_PUBLIC int64_t gavl_frame_table_duration | ( | const gavl_frame_table_t * | t | ) |
get the total duration of all frames
t | A frame table |
Since 1.1.2.
GAVL_PUBLIC int64_t gavl_frame_table_end_time | ( | const gavl_frame_table_t * | t | ) |
get the end time of the last frame
t | A frame table |
Since 1.1.2.
GAVL_PUBLIC int gavl_frame_table_save | ( | const gavl_frame_table_t * | tab, |
const char * | filename | ||
) |
Save a frame table to a file.
t | Tab frame table |
filename | Filename |
Since 1.1.2.
GAVL_PUBLIC gavl_frame_table_t* gavl_frame_table_load | ( | const char * | filename | ) |
Load a frame table from a file.
filename | Filename |
Since 1.1.2.
GAVL_PUBLIC void gavl_frame_table_dump | ( | const gavl_frame_table_t * | t | ) |
Dump a frame table to stderr for debugging.
t | A frame table |
Since 1.1.2.