Signed-off-by: Marton Balint <cus@passwd.hu>tags/n4.4
| @@ -15,6 +15,9 @@ libavutil: 2017-10-21 | |||||
| API changes, most recent first: | API changes, most recent first: | ||||
| 2020-12-03 - xxxxxxxxxx - lavu 56.62.100 - timecode.h | |||||
| Add av_timecode_init_from_components. | |||||
| 2020-xx-xx - xxxxxxxxxx - lavc 58.114.100 - avcodec.h | 2020-xx-xx - xxxxxxxxxx - lavc 58.114.100 - avcodec.h | ||||
| Deprecate AVCodecContext.thread_safe_callbacks. Starting with | Deprecate AVCodecContext.thread_safe_callbacks. Starting with | ||||
| LIBAVCODEC_VERSION_MAJOR=60, user callbacks must always be | LIBAVCODEC_VERSION_MAJOR=60, user callbacks must always be | ||||
| @@ -226,19 +226,12 @@ int av_timecode_init(AVTimecode *tc, AVRational rate, int flags, int frame_start | |||||
| return check_timecode(log_ctx, tc); | return check_timecode(log_ctx, tc); | ||||
| } | } | ||||
| int av_timecode_init_from_string(AVTimecode *tc, AVRational rate, const char *str, void *log_ctx) | |||||
| int av_timecode_init_from_components(AVTimecode *tc, AVRational rate, int flags, int hh, int mm, int ss, int ff, void *log_ctx) | |||||
| { | { | ||||
| char c; | |||||
| int hh, mm, ss, ff, ret; | |||||
| if (sscanf(str, "%d:%d:%d%c%d", &hh, &mm, &ss, &c, &ff) != 5) { | |||||
| av_log(log_ctx, AV_LOG_ERROR, "Unable to parse timecode, " | |||||
| "syntax: hh:mm:ss[:;.]ff\n"); | |||||
| return AVERROR_INVALIDDATA; | |||||
| } | |||||
| int ret; | |||||
| memset(tc, 0, sizeof(*tc)); | memset(tc, 0, sizeof(*tc)); | ||||
| tc->flags = c != ':' ? AV_TIMECODE_FLAG_DROPFRAME : 0; // drop if ';', '.', ... | |||||
| tc->flags = flags; | |||||
| tc->rate = rate; | tc->rate = rate; | ||||
| tc->fps = fps_from_frame_rate(rate); | tc->fps = fps_from_frame_rate(rate); | ||||
| @@ -253,3 +246,18 @@ int av_timecode_init_from_string(AVTimecode *tc, AVRational rate, const char *st | |||||
| } | } | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| int av_timecode_init_from_string(AVTimecode *tc, AVRational rate, const char *str, void *log_ctx) | |||||
| { | |||||
| char c; | |||||
| int hh, mm, ss, ff, flags; | |||||
| if (sscanf(str, "%d:%d:%d%c%d", &hh, &mm, &ss, &c, &ff) != 5) { | |||||
| av_log(log_ctx, AV_LOG_ERROR, "Unable to parse timecode, " | |||||
| "syntax: hh:mm:ss[:;.]ff\n"); | |||||
| return AVERROR_INVALIDDATA; | |||||
| } | |||||
| flags = c != ':' ? AV_TIMECODE_FLAG_DROPFRAME : 0; // drop if ';', '.', ... | |||||
| return av_timecode_init_from_components(tc, rate, flags, hh, mm, ss, ff, log_ctx); | |||||
| } | |||||
| @@ -160,6 +160,23 @@ char *av_timecode_make_mpeg_tc_string(char *buf, uint32_t tc25bit); | |||||
| */ | */ | ||||
| int av_timecode_init(AVTimecode *tc, AVRational rate, int flags, int frame_start, void *log_ctx); | int av_timecode_init(AVTimecode *tc, AVRational rate, int flags, int frame_start, void *log_ctx); | ||||
| /** | |||||
| * Init a timecode struct from the passed timecode components. | |||||
| * | |||||
| * @param log_ctx a pointer to an arbitrary struct of which the first field | |||||
| * is a pointer to an AVClass struct (used for av_log) | |||||
| * @param tc pointer to an allocated AVTimecode | |||||
| * @param rate frame rate in rational form | |||||
| * @param flags miscellaneous flags such as drop frame, +24 hours, ... | |||||
| * (see AVTimecodeFlag) | |||||
| * @param hh hours | |||||
| * @param mm minutes | |||||
| * @param ss seconds | |||||
| * @param ff frames | |||||
| * @return 0 on success, AVERROR otherwise | |||||
| */ | |||||
| int av_timecode_init_from_components(AVTimecode *tc, AVRational rate, int flags, int hh, int mm, int ss, int ff, void *log_ctx); | |||||
| /** | /** | ||||
| * Parse timecode representation (hh:mm:ss[:;.]ff). | * Parse timecode representation (hh:mm:ss[:;.]ff). | ||||
| * | * | ||||
| @@ -79,7 +79,7 @@ | |||||
| */ | */ | ||||
| #define LIBAVUTIL_VERSION_MAJOR 56 | #define LIBAVUTIL_VERSION_MAJOR 56 | ||||
| #define LIBAVUTIL_VERSION_MINOR 61 | |||||
| #define LIBAVUTIL_VERSION_MINOR 62 | |||||
| #define LIBAVUTIL_VERSION_MICRO 100 | #define LIBAVUTIL_VERSION_MICRO 100 | ||||
| #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | ||||