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 *t, 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 | |
frame_duration | Duration of each frame | |
num_frames | Number of frames | |
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 * | t, | |
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.