Timecode helpers header.
More...
#include <stdint.h>
#include "rational.h"
Go to the source code of this file.
|
int | av_timecode_adjust_ntsc_framenum2 (int framenum, int fps) |
| Adjust frame number for NTSC drop frame time code. More...
|
|
uint32_t | av_timecode_get_smpte_from_framenum (const AVTimecode *tc, int framenum) |
| Convert frame number to SMPTE 12M binary representation. More...
|
|
uint32_t | av_timecode_get_smpte (AVRational rate, int drop, int hh, int mm, int ss, int ff) |
| Convert sei info to SMPTE 12M binary representation. More...
|
|
char * | av_timecode_make_string (const AVTimecode *tc, char *buf, int framenum) |
| Load timecode string in buf. More...
|
|
char * | av_timecode_make_smpte_tc_string2 (char *buf, AVRational rate, uint32_t tcsmpte, int prevent_df, int skip_field) |
| Get the timecode string from the SMPTE timecode format. More...
|
|
char * | av_timecode_make_smpte_tc_string (char *buf, uint32_t tcsmpte, int prevent_df) |
| Get the timecode string from the SMPTE timecode format. More...
|
|
char * | av_timecode_make_mpeg_tc_string (char *buf, uint32_t tc25bit) |
| Get the timecode string from the 25-bit timecode format (MPEG GOP format). More...
|
|
int | av_timecode_init (AVTimecode *tc, AVRational rate, int flags, int frame_start, void *log_ctx) |
| Init a timecode struct with the passed parameters. More...
|
|
int | av_timecode_init_from_components (AVTimecode *tc, AVRational rate, int flags, int hh, int mm, int ss, int ff, void *log_ctx) |
| Init a timecode struct from the passed timecode components. More...
|
|
int | av_timecode_init_from_string (AVTimecode *tc, AVRational rate, const char *str, void *log_ctx) |
| Parse timecode representation (hh:mm:ss[:;. More...
|
|
int | av_timecode_check_frame_rate (AVRational rate) |
| Check if the timecode feature is available for the given frame rate. More...
|
|
Timecode helpers header.
Definition in file timecode.h.
◆ AV_TIMECODE_STR_SIZE
#define AV_TIMECODE_STR_SIZE 23 |
◆ AVTimecodeFlag
Enumerator |
---|
AV_TIMECODE_FLAG_DROPFRAME | timecode is drop frame
|
AV_TIMECODE_FLAG_24HOURSMAX | timecode wraps after 24 hours
|
AV_TIMECODE_FLAG_ALLOWNEGATIVE | negative time values are allowed
|
Definition at line 35 of file timecode.h.
◆ av_timecode_adjust_ntsc_framenum2()
int av_timecode_adjust_ntsc_framenum2 |
( |
int |
framenum, |
|
|
int |
fps |
|
) |
| |
Adjust frame number for NTSC drop frame time code.
- Parameters
-
framenum | frame number to adjust |
fps | frame per second, multiples of 30 |
- Returns
- adjusted frame number
- Warning
- adjustment is only valid for multiples of NTSC 29.97
◆ av_timecode_get_smpte_from_framenum()
uint32_t av_timecode_get_smpte_from_framenum |
( |
const AVTimecode * |
tc, |
|
|
int |
framenum |
|
) |
| |
Convert frame number to SMPTE 12M binary representation.
- Parameters
-
tc | timecode data correctly initialized |
framenum | frame number |
- Returns
- the SMPTE binary representation
See SMPTE ST 314M-2005 Sec 4.4.2.2.1 "Time code pack (TC)" the format description as follows: bits 0-5: hours, in BCD(6bits) bits 6: BGF1 bits 7: BGF2 (NTSC) or FIELD (PAL) bits 8-14: minutes, in BCD(7bits) bits 15: BGF0 (NTSC) or BGF2 (PAL) bits 16-22: seconds, in BCD(7bits) bits 23: FIELD (NTSC) or BGF0 (PAL) bits 24-29: frames, in BCD(6bits) bits 30: drop frame flag (0: non drop, 1: drop) bits 31: color frame flag (0: unsync mode, 1: sync mode)
- Note
- BCD numbers (6 or 7 bits): 4 or 5 lower bits for units, 2 higher bits for tens.
-
Frame number adjustment is automatically done in case of drop timecode, you do NOT have to call av_timecode_adjust_ntsc_framenum2().
-
The frame number is relative to tc->start.
-
Color frame (CF) and binary group flags (BGF) bits are set to zero.
◆ av_timecode_get_smpte()
uint32_t av_timecode_get_smpte |
( |
AVRational |
rate, |
|
|
int |
drop, |
|
|
int |
hh, |
|
|
int |
mm, |
|
|
int |
ss, |
|
|
int |
ff |
|
) |
| |
Convert sei info to SMPTE 12M binary representation.
- Parameters
-
rate | frame rate in rational form |
drop | drop flag |
hh | hour |
mm | minute |
ss | second |
ff | frame number |
- Returns
- the SMPTE binary representation
◆ av_timecode_make_string()
char * av_timecode_make_string |
( |
const AVTimecode * |
tc, |
|
|
char * |
buf, |
|
|
int |
framenum |
|
) |
| |
Load timecode string in buf.
- Parameters
-
buf | destination buffer, must be at least AV_TIMECODE_STR_SIZE long |
tc | timecode data correctly initialized |
framenum | frame number |
- Returns
- the buf parameter
- Note
- Timecode representation can be a negative timecode and have more than 24 hours, but will only be honored if the flags are correctly set.
-
The frame number is relative to tc->start.
◆ av_timecode_make_smpte_tc_string2()
char * av_timecode_make_smpte_tc_string2 |
( |
char * |
buf, |
|
|
AVRational |
rate, |
|
|
uint32_t |
tcsmpte, |
|
|
int |
prevent_df, |
|
|
int |
skip_field |
|
) |
| |
Get the timecode string from the SMPTE timecode format.
In contrast to av_timecode_make_smpte_tc_string this function supports 50/60 fps timecodes by using the field bit.
- Parameters
-
buf | destination buffer, must be at least AV_TIMECODE_STR_SIZE long |
rate | frame rate of the timecode |
tcsmpte | the 32-bit SMPTE timecode |
prevent_df | prevent the use of a drop flag when it is known the DF bit is arbitrary |
skip_field | prevent the use of a field flag when it is known the field bit is arbitrary (e.g. because it is used as PC flag) |
- Returns
- the buf parameter
◆ av_timecode_make_smpte_tc_string()
char * av_timecode_make_smpte_tc_string |
( |
char * |
buf, |
|
|
uint32_t |
tcsmpte, |
|
|
int |
prevent_df |
|
) |
| |
Get the timecode string from the SMPTE timecode format.
- Parameters
-
buf | destination buffer, must be at least AV_TIMECODE_STR_SIZE long |
tcsmpte | the 32-bit SMPTE timecode |
prevent_df | prevent the use of a drop flag when it is known the DF bit is arbitrary |
- Returns
- the buf parameter
◆ av_timecode_make_mpeg_tc_string()
char * av_timecode_make_mpeg_tc_string |
( |
char * |
buf, |
|
|
uint32_t |
tc25bit |
|
) |
| |
Get the timecode string from the 25-bit timecode format (MPEG GOP format).
- Parameters
-
buf | destination buffer, must be at least AV_TIMECODE_STR_SIZE long |
tc25bit | the 25-bits timecode |
- Returns
- the buf parameter
◆ av_timecode_init()
int av_timecode_init |
( |
AVTimecode * |
tc, |
|
|
AVRational |
rate, |
|
|
int |
flags, |
|
|
int |
frame_start, |
|
|
void * |
log_ctx |
|
) |
| |
Init a timecode struct with the passed parameters.
- Parameters
-
log_ctx | a pointer to an arbitrary struct of which the first field is a pointer to an AVClass struct (used for av_log) |
tc | pointer to an allocated AVTimecode |
rate | frame rate in rational form |
flags | miscellaneous flags such as drop frame, +24 hours, ... (see AVTimecodeFlag) |
frame_start | the first frame number |
- Returns
- 0 on success, AVERROR otherwise
◆ av_timecode_init_from_components()
int av_timecode_init_from_components |
( |
AVTimecode * |
tc, |
|
|
AVRational |
rate, |
|
|
int |
flags, |
|
|
int |
hh, |
|
|
int |
mm, |
|
|
int |
ss, |
|
|
int |
ff, |
|
|
void * |
log_ctx |
|
) |
| |
Init a timecode struct from the passed timecode components.
- Parameters
-
log_ctx | a pointer to an arbitrary struct of which the first field is a pointer to an AVClass struct (used for av_log) |
tc | pointer to an allocated AVTimecode |
rate | frame rate in rational form |
flags | miscellaneous flags such as drop frame, +24 hours, ... (see AVTimecodeFlag) |
hh | hours |
mm | minutes |
ss | seconds |
ff | frames |
- Returns
- 0 on success, AVERROR otherwise
◆ av_timecode_init_from_string()
int av_timecode_init_from_string |
( |
AVTimecode * |
tc, |
|
|
AVRational |
rate, |
|
|
const char * |
str, |
|
|
void * |
log_ctx |
|
) |
| |
Parse timecode representation (hh:mm:ss[:;.
]ff).
- Parameters
-
log_ctx | a pointer to an arbitrary struct of which the first field is a pointer to an AVClass struct (used for av_log). |
tc | pointer to an allocated AVTimecode |
rate | frame rate in rational form |
str | timecode string which will determine the frame start |
- Returns
- 0 on success, AVERROR otherwise
◆ av_timecode_check_frame_rate()
int av_timecode_check_frame_rate |
( |
AVRational |
rate | ) |
|
Check if the timecode feature is available for the given frame rate.
- Returns
- 0 if supported, <0 otherwise