00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00027 #ifndef AVCODEC_TIMECODE_H
00028 #define AVCODEC_TIMECODE_H
00029
00030 #include <stdint.h>
00031 #include "avcodec.h"
00032 #include "libavutil/rational.h"
00033
00034 #define TIMECODE_OPT(ctx, flags) \
00035 "timecode", "set timecode value following hh:mm:ss[:;.]ff format, " \
00036 "use ';' or '.' before frame number for drop frame", \
00037 offsetof(ctx, tc.str), \
00038 AV_OPT_TYPE_STRING, {.str=NULL}, CHAR_MIN, CHAR_MAX, flags
00039
00040 struct ff_timecode {
00041 char *str;
00042 int start;
00043 int drop;
00044 AVRational rate;
00045 };
00046
00053 int avpriv_framenum_to_drop_timecode(int frame_num);
00054
00062 uint32_t avpriv_framenum_to_smpte_timecode(unsigned frame, int fps, int drop);
00063
00075 char *avpriv_timecode_to_string(char *buf, const struct ff_timecode *tc, unsigned frame);
00076
00082 int avpriv_check_timecode_rate(void *avcl, AVRational rate, int drop);
00083
00094 int avpriv_init_smpte_timecode(void *avcl, struct ff_timecode *tc);
00095
00096 #if FF_API_OLD_TIMECODE
00097 attribute_deprecated int ff_framenum_to_drop_timecode(int frame_num);
00098 attribute_deprecated uint32_t ff_framenum_to_smtpe_timecode(unsigned frame, int fps, int drop);
00099 attribute_deprecated int ff_init_smtpe_timecode(void *avcl, struct ff_timecode *tc);
00100 #endif
00101
00102 #endif