X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Ftimecode.h;h=ee03fdab7f77e104293a9caf6747ac0e4cf96660;hb=ca1bae3983c6592efe4635e7e35a1f85833674b8;hp=5646199ff769b8046e3bb3d3efc3b0bbfe07bb7a;hpb=e161b079dee12b11c40df67cf422edeb84772bbe;p=ffmpeg diff --git a/libavcodec/timecode.h b/libavcodec/timecode.h index 5646199ff76..ee03fdab7f7 100644 --- a/libavcodec/timecode.h +++ b/libavcodec/timecode.h @@ -28,6 +28,7 @@ #define AVCODEC_TIMECODE_H #include +#include "avcodec.h" #include "libavutil/rational.h" #define TIMECODE_OPT(ctx, flags) \ @@ -49,7 +50,7 @@ struct ff_timecode { * @return Adjusted frame number * @warning Adjustment is only valid in NTSC 29.97 */ -int ff_framenum_to_drop_timecode(int frame_num); +int avpriv_framenum_to_drop_timecode(int frame_num); /** * @brief Convert frame id (timecode) to SMPTE 12M binary representation @@ -58,7 +59,27 @@ int ff_framenum_to_drop_timecode(int frame_num); * @param drop Drop flag * @return The actual binary representation */ -uint32_t ff_framenum_to_smtpe_timecode(unsigned frame, int fps, int drop); +uint32_t avpriv_framenum_to_smpte_timecode(unsigned frame, int fps, int drop); + +/** + * @brief Load timecode string in buf + * @param buf Destination buffer + * @param tc Timecode struct pointer + * @param frame Frame id (timecode frame is computed with tc->start+frame) + * @return a pointer to the buf parameter + * @note timecode representation can be a negative timecode and have + * more than 24 hours. + * @note buf must have enough space to store the timecode representation: 16 + * bytes is the minimum required size. + */ +char *avpriv_timecode_to_string(char *buf, const struct ff_timecode *tc, unsigned frame); + +/** + * Check if timecode rate is valid and consistent with the drop flag. + * + * @return 0 on success, negative value on failure + */ +int avpriv_check_timecode_rate(void *avcl, AVRational rate, int drop); /** * Parse SMTPE 12M time representation (hh:mm:ss[:;.]ff). str and rate fields @@ -70,6 +91,12 @@ uint32_t ff_framenum_to_smtpe_timecode(unsigned frame, int fps, int drop); * @return 0 on success, negative value on failure * @warning Adjustement is only valid in NTSC 29.97 */ -int ff_init_smtpe_timecode(void *avcl, struct ff_timecode *tc); +int avpriv_init_smpte_timecode(void *avcl, struct ff_timecode *tc); + +#if FF_API_OLD_TIMECODE +attribute_deprecated int ff_framenum_to_drop_timecode(int frame_num); +attribute_deprecated uint32_t ff_framenum_to_smtpe_timecode(unsigned frame, int fps, int drop); +attribute_deprecated int ff_init_smtpe_timecode(void *avcl, struct ff_timecode *tc); +#endif #endif /* AVCODEC_TIMECODE_H */