libavutil/timecode.c File Reference

Timecode helpers. More...

#include <stdio.h>
#include "timecode.h"
#include "log.h"
#include "error.h"

Go to the source code of this file.

Functions

int av_timecode_adjust_ntsc_framenum (int framenum)
 Adjust frame number for NTSC drop frame time code.
uint32_t av_timecode_get_smpte_from_framenum (const AVTimecode *tc, int framenum)
 Convert frame number to SMPTE 12M binary representation.
char * av_timecode_make_string (const AVTimecode *tc, char *buf, int framenum)
 Load timecode string in buf.
static unsigned bcd2uint (uint8_t bcd)
char * av_timecode_make_smpte_tc_string (char *buf, uint32_t tcsmpte, int prevent_df)
 Get the timecode string from the SMPTE timecode format.
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).
static int check_timecode (void *log_ctx, AVTimecode *tc)
static int fps_from_frame_rate (AVRational rate)
int av_timecode_init (AVTimecode *tc, AVRational rate, int flags, int frame_start, void *log_ctx)
 Init a timecode struct with the passed parameters.
int av_timecode_init_from_string (AVTimecode *tc, AVRational rate, const char *str, void *log_ctx)
 Parse timecode representation (hh:mm:ss[:;.


Detailed Description

Timecode helpers.

See also:
https://en.wikipedia.org/wiki/SMPTE_time_code

http://www.dropframetimecode.org

Definition in file timecode.c.


Function Documentation

int av_timecode_adjust_ntsc_framenum ( int  framenum  ) 

Adjust frame number for NTSC drop frame time code.

Parameters:
framenum frame number to adjust
Returns:
adjusted frame number
Warning:
adjustment is only valid in NTSC 29.97

Definition at line 34 of file timecode.c.

Referenced by av_timecode_get_smpte_from_framenum(), av_timecode_make_string(), and mpeg1_encode_sequence_header().

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
Note:
Frame number adjustment is automatically done in case of drop timecode, you do NOT have to call av_timecode_adjust_ntsc_framenum().

The frame number is relative to tc->start.

Color frame (CF), binary group flags (BGF) and biphase mark polarity correction (PC) bits are set to zero.

Definition at line 43 of file timecode.c.

Referenced by dv_write_pack(), and mxf_write_system_item().

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

Definition at line 157 of file timecode.c.

Referenced by dv_write_header(), mxf_parse_structural_metadata(), mxf_write_header(), and parse_timecode_in_framenum_format().

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

Definition at line 167 of file timecode.c.

Referenced by dv_write_header(), encode_init(), init(), and mxf_write_header().

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

Definition at line 118 of file timecode.c.

Referenced by mpeg_decode_gop(), and show_stream().

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

Definition at line 106 of file timecode.c.

Referenced by dv_extract_timecode().

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.

Definition at line 72 of file timecode.c.

Referenced by draw_text(), mxf_add_timecode_metadata(), and parse_timecode_in_framenum_format().

static unsigned bcd2uint ( uint8_t  bcd  )  [static]

Definition at line 97 of file timecode.c.

Referenced by av_timecode_make_smpte_tc_string().

static int check_timecode ( void *  log_ctx,
AVTimecode tc 
) [static]

Definition at line 129 of file timecode.c.

Referenced by av_timecode_init(), and av_timecode_init_from_string().

static int fps_from_frame_rate ( AVRational  rate  )  [static]

Definition at line 150 of file timecode.c.

Referenced by av_timecode_init(), and av_timecode_init_from_string().


Generated on Fri Oct 26 02:47:59 2012 for FFmpeg by  doxygen 1.5.8