From cfe7185a92dad4ef5d0834bb5d95f874cdf73d4a Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Sun, 3 Nov 2013 13:36:24 +0100 Subject: lavc: remove dead FF_API_OLD_TIMECODE API --- libavcodec/Makefile | 9 ++- libavcodec/timecode.c | 150 -------------------------------------------------- libavcodec/timecode.h | 106 ----------------------------------- libavcodec/version.h | 3 - 4 files changed, 4 insertions(+), 264 deletions(-) delete mode 100644 libavcodec/timecode.c delete mode 100644 libavcodec/timecode.h diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 60e356db43..407a1300df 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -300,8 +300,7 @@ OBJS-$(CONFIG_MPEG_XVMC_DECODER) += mpegvideo_xvmc.o OBJS-$(CONFIG_MPEG1VIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o OBJS-$(CONFIG_MPEG1VIDEO_ENCODER) += mpeg12enc.o mpeg12.o OBJS-$(CONFIG_MPEG2VIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o -OBJS-$(CONFIG_MPEG2VIDEO_ENCODER) += mpeg12enc.o mpeg12.o \ - timecode.o +OBJS-$(CONFIG_MPEG2VIDEO_ENCODER) += mpeg12enc.o mpeg12.o OBJS-$(CONFIG_MPL2_DECODER) += mpl2dec.o ass.o OBJS-$(CONFIG_MSMPEG4V1_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o OBJS-$(CONFIG_MSMPEG4V2_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o \ @@ -649,7 +648,7 @@ OBJS-$(CONFIG_ADX_DEMUXER) += adx.o OBJS-$(CONFIG_CAF_DEMUXER) += mpeg4audio.o mpegaudiodata.o \ ac3tab.o OBJS-$(CONFIG_DV_DEMUXER) += dv_profile.o -OBJS-$(CONFIG_DV_MUXER) += dv_profile.o timecode.o +OBJS-$(CONFIG_DV_MUXER) += dv_profile.o OBJS-$(CONFIG_FLAC_DEMUXER) += flac.o flacdata.o vorbis_data.o \ vorbis_parser.o xiph.o OBJS-$(CONFIG_FLAC_MUXER) += flac.o flacdata.o vorbis_data.o @@ -665,11 +664,11 @@ OBJS-$(CONFIG_MATROSKA_MUXER) += mpeg4audio.o mpegaudiodata.o \ flac.o flacdata.o vorbis_data.o xiph.o OBJS-$(CONFIG_MP2_MUXER) += mpegaudiodata.o mpegaudiodecheader.o OBJS-$(CONFIG_MP3_MUXER) += mpegaudiodata.o mpegaudiodecheader.o -OBJS-$(CONFIG_MOV_DEMUXER) += mpeg4audio.o mpegaudiodata.o ac3tab.o timecode.o +OBJS-$(CONFIG_MOV_DEMUXER) += mpeg4audio.o mpegaudiodata.o ac3tab.o OBJS-$(CONFIG_MOV_MUXER) += mpeg4audio.o mpegaudiodata.o OBJS-$(CONFIG_MPEGTS_MUXER) += mpeg4audio.o OBJS-$(CONFIG_MPEGTS_DEMUXER) += mpeg4audio.o mpegaudiodata.o -OBJS-$(CONFIG_MXF_MUXER) += timecode.o dnxhddata.o +OBJS-$(CONFIG_MXF_MUXER) += dnxhddata.o OBJS-$(CONFIG_NUT_MUXER) += mpegaudiodata.o OBJS-$(CONFIG_OGG_DEMUXER) += xiph.o flac.o flacdata.o \ mpeg12data.o vorbis_parser.o \ diff --git a/libavcodec/timecode.c b/libavcodec/timecode.c deleted file mode 100644 index f9862e5581..0000000000 --- a/libavcodec/timecode.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (C) 2006 Smartjog S.A.S, Baptiste Coudurier - * Copyright (C) 2011 Smartjog S.A.S, Clément Bœsch - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * Timecode helpers - * This *private* API is deprecated, please use the one available in libavutil instead. - */ - -#include "version.h" - -#if FF_API_OLD_TIMECODE - -#include -#include "timecode.h" -#include "libavutil/log.h" - -int avpriv_framenum_to_drop_timecode(int frame_num) -{ - /* only works for NTSC 29.97 */ - int d = frame_num / 17982; - int m = frame_num % 17982; - //if (m < 2) m += 2; /* not needed since -2,-1 / 1798 in C returns 0 */ - return frame_num + 18 * d + 2 * ((m - 2) / 1798); -} - -uint32_t avpriv_framenum_to_smpte_timecode(unsigned frame, int fps, int drop) -{ - return (0 << 31) | // color frame flag - (drop << 30) | // drop frame flag - ( ((frame % fps) / 10) << 28) | // tens of frames - ( ((frame % fps) % 10) << 24) | // units of frames - (0 << 23) | // field phase (NTSC), b0 (PAL) - ((((frame / fps) % 60) / 10) << 20) | // tens of seconds - ((((frame / fps) % 60) % 10) << 16) | // units of seconds - (0 << 15) | // b0 (NTSC), b2 (PAL) - ((((frame / (fps * 60)) % 60) / 10) << 12) | // tens of minutes - ((((frame / (fps * 60)) % 60) % 10) << 8) | // units of minutes - (0 << 7) | // b1 - (0 << 6) | // b2 (NTSC), field phase (PAL) - ((((frame / (fps * 3600) % 24)) / 10) << 4) | // tens of hours - ( (frame / (fps * 3600) % 24)) % 10; // units of hours -} - -int avpriv_check_timecode_rate(void *avcl, AVRational rate, int drop) -{ - int fps; - - if (!rate.num || !rate.den) { - av_log(avcl, AV_LOG_ERROR, "Timecode frame rate must be specified\n"); - return -1; - } - fps = (rate.num + rate.den/2) / rate.den; - if (drop && fps != 30) { - av_log(avcl, AV_LOG_ERROR, "Drop frame is only allowed with 30000/1001 FPS\n"); - return -2; - } - switch (fps) { - case 24: - case 25: - case 30: return 0; - - default: - av_log(avcl, AV_LOG_ERROR, "Timecode frame rate not supported\n"); - return -3; - } -} - -char *avpriv_timecode_to_string(char *buf, const struct ff_timecode *tc, unsigned frame) -{ - int frame_num = tc->start + frame; - int fps = (tc->rate.num + tc->rate.den/2) / tc->rate.den; - int hh, mm, ss, ff, neg = 0; - - if (tc->drop) - frame_num = avpriv_framenum_to_drop_timecode(frame_num); - if (frame_num < 0) { - frame_num = -frame_num; - neg = 1; - } - ff = frame_num % fps; - ss = frame_num / fps % 60; - mm = frame_num / (fps*60) % 60; - hh = frame_num / (fps*3600); - snprintf(buf, 16, "%s%02d:%02d:%02d%c%02d", - neg ? "-" : "", - hh, mm, ss, tc->drop ? ';' : ':', ff); - return buf; -} - -int avpriv_init_smpte_timecode(void *avcl, struct ff_timecode *tc) -{ - int hh, mm, ss, ff, fps, ret; - char c; - - if (sscanf(tc->str, "%d:%d:%d%c%d", &hh, &mm, &ss, &c, &ff) != 5) { - av_log(avcl, AV_LOG_ERROR, "unable to parse timecode, " - "syntax: hh:mm:ss[:;.]ff\n"); - return -1; - } - - tc->drop = c != ':'; // drop if ';', '.', ... - - ret = avpriv_check_timecode_rate(avcl, tc->rate, tc->drop); - if (ret < 0) - return ret; - - fps = (tc->rate.num + tc->rate.den/2) / tc->rate.den; - tc->start = (hh*3600 + mm*60 + ss) * fps + ff; - - if (tc->drop) { /* adjust frame number */ - int tmins = 60*hh + mm; - tc->start -= 2 * (tmins - tmins/10); - } - return 0; -} - -int ff_framenum_to_drop_timecode(int frame_num) -{ - return avpriv_framenum_to_drop_timecode(frame_num); -} - -uint32_t ff_framenum_to_smtpe_timecode(unsigned frame, int fps, int drop) -{ - return avpriv_framenum_to_smpte_timecode(frame, fps, drop); -} - -int ff_init_smtpe_timecode(void *avcl, struct ff_timecode *tc) -{ - return avpriv_init_smpte_timecode(avcl, tc); -} -#endif diff --git a/libavcodec/timecode.h b/libavcodec/timecode.h deleted file mode 100644 index 8bc69e9876..0000000000 --- a/libavcodec/timecode.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2006 Smartjog S.A.S, Baptiste Coudurier - * Copyright (C) 2011 Smartjog S.A.S, Clément Bœsch - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * Timecode helpers header - * This *private* API is deprecated, please use the one available in libavutil instead. - */ - -#ifndef AVCODEC_TIMECODE_H -#define AVCODEC_TIMECODE_H - -#include "version.h" - -#if FF_API_OLD_TIMECODE - -#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), \ - AV_OPT_TYPE_STRING, {.str=NULL}, CHAR_MIN, CHAR_MAX, flags - -struct ff_timecode { - char *str; ///< string following the hh:mm:ss[:;.]ff format - int start; ///< timecode frame start - int drop; ///< drop flag (1 if drop, else 0) - AVRational rate; ///< Frame rate in rational form -}; - -/** - * @brief Adjust frame number for NTSC drop frame time code - * @param frame_num Actual frame number to adjust - * @return Adjusted frame number - * @warning Adjustment is only valid in NTSC 29.97 - */ -int avpriv_framenum_to_drop_timecode(int frame_num); - -/** - * @brief Convert frame id (timecode) to SMPTE 12M binary representation - * @param frame Frame number - * @param fps Frame rate - * @param drop Drop flag - * @return The actual binary representation - */ -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 - * from tc struct must be set. - * - * @param avcl A pointer to an arbitrary struct of which the first field is a - * pointer to an AVClass struct (used for av_log). - * @param tc Timecode struct pointer - * @return 0 on success, negative value on failure - * @warning Adjustement is only valid in NTSC 29.97 - */ -int avpriv_init_smpte_timecode(void *avcl, struct ff_timecode *tc); - -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 */ diff --git a/libavcodec/version.h b/libavcodec/version.h index 3525c19d4c..cdf57af3b7 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -54,9 +54,6 @@ #ifndef FF_API_OLD_DECODE_AUDIO #define FF_API_OLD_DECODE_AUDIO (LIBAVCODEC_VERSION_MAJOR < 56) #endif -#ifndef FF_API_OLD_TIMECODE -#define FF_API_OLD_TIMECODE (LIBAVCODEC_VERSION_MAJOR < 55) -#endif #ifndef FF_API_OLD_ENCODE_AUDIO #define FF_API_OLD_ENCODE_AUDIO (LIBAVCODEC_VERSION_MAJOR < 56) #endif -- cgit v1.2.3