X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Ftimecode.h;h=50ea313afaf87634e124a3699e643fe47ba22c67;hb=e953b8b7be7358b6dea51ebbc7cbf75d6c5cf786;hp=c1664075c7f5221646e87fe53d7fc1c02ccb04ef;hpb=2822361ed1fe18b03a35dfdbda811de6bd919e0a;p=ffmpeg diff --git a/libavcodec/timecode.h b/libavcodec/timecode.h index c1664075c7f..50ea313afaf 100644 --- a/libavcodec/timecode.h +++ b/libavcodec/timecode.h @@ -28,13 +28,14 @@ #define AVCODEC_TIMECODE_H #include +#include "avcodec.h" #include "libavutil/rational.h" #define TIMECODE_OPT(ctx, flags) \ "timecode", "set timecode value following hh:mm:ss[:;.]ff format, " \ "use ';' or '.' before frame number for drop frame", \ offsetof(ctx, tc.str), \ - FF_OPT_TYPE_STRING, {.str=NULL}, CHAR_MIN, CHAR_MAX, flags + AV_OPT_TYPE_STRING, {.str=NULL}, CHAR_MIN, CHAR_MAX, flags struct ff_timecode { char *str; ///< string following the hh:mm:ss[:;.]ff format @@ -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,25 @@ 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 buf must have enough space to store the timecode representation + * (sizeof("hh:mm:ss.ff")) + */ +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 +89,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 */