Frame table
[Video]

Data Structures

struct  gavl_frame_table_t
 frame table structure More...

Functions

GAVL_PUBLIC gavl_frame_table_tgavl_frame_table_create ()
 Create a frame table.
GAVL_PUBLIC gavl_frame_table_tgavl_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_tgavl_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_tgavl_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_tgavl_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.

Detailed Description

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.


Function Documentation

GAVL_PUBLIC gavl_frame_table_t* gavl_frame_table_create (  ) 

Create a frame table.

Returns:
A newly allocated 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.

Parameters:
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
Returns:
A newly allocated frame table

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.

Parameters:
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)
Returns:
A newly allocated frame table

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.

Parameters:
tab A frame table
Returns:
A newly allocated copy

Since 1.1.2.

GAVL_PUBLIC void gavl_frame_table_destroy ( gavl_frame_table_t t  ) 

Destroy a frame table and free all memory.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
t A frame table
frame Frame index (starting with zero)
duration If non NULL, returns the duration of that frame
Returns:
The timestamp of that frame in video timescale or GAVL_TIME_UNDEFINED if such frame doesn't exist.

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.

Parameters:
t A frame table
time Time in stream timescale
start_time If non NULL, returns the start time of that frame
Returns:
The index that frame (starting with 0) or -1 if such frame doesn't exist.

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.

Parameters:
t A frame table
time Time in stream timescale
start_time If non NULL, returns the start time of that frame
fmt Timecode format
Returns:
The interpolated timecode that frame or GAVL_TIMECODE_UNDEFINED if such frame doesn't exist.

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.

Parameters:
t A frame table
tc Timecode
fmt Timecode format
Returns:
The pts corresponding to that timecode or GAVL_TIME_UNDEFINED if such frame doesn't exist.

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.

Parameters:
t A frame table
frame Frame index
start_time If non NULL, returns the start time of that frame
fmt Timecode format
Returns:
The interpolated timecode that frame or GAVL_TIMECODE_UNDEFINED if such frame doesn't exist.

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

Parameters:
t A frame table
Returns:
The total number of frames

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

Parameters:
t A frame table
Returns:
Total duration

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

Parameters:
t A frame table
Returns:
End time

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.

Parameters:
t Tab frame table
filename Filename
Returns:
1 on success, 0 on error

Since 1.1.2.

GAVL_PUBLIC gavl_frame_table_t* gavl_frame_table_load ( const char *  filename  ) 

Load a frame table from a file.

Parameters:
filename Filename
Returns:
The loaded frame table or NULL if an error occurred

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.

Parameters:
t A frame table

Since 1.1.2.

Generated on Fri Jun 8 17:27:53 2012 for gavl by  doxygen 1.6.3