[FFmpeg-devel] [PATCH 2/2] avformat: deprecate AV_PTS_WRAP_* defines
James Almer
jamrial at gmail.com
Wed Jun 9 21:16:43 EEST 2021
They are internal and have no reason to exist in a public header, so
rename and move them to internal.h
Signed-off-by: James Almer <jamrial at gmail.com>
---
doc/APIchanges | 3 +++
libavformat/avformat.h | 11 +++++------
libavformat/internal.h | 9 ++++++++-
libavformat/utils.c | 14 +++++++-------
libavformat/version.h | 5 ++++-
5 files changed, 27 insertions(+), 15 deletions(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index 1b25bddd43..b2f1429bc1 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -14,6 +14,9 @@ libavutil: 2021-04-27
API changes, most recent first:
+2021-06-09 - xxxxxxxxxx - lavf 59.3.101 - avformat.h
+ Deprecated AV_PTS_WRAP_*.
+
2021-06-09 - xxxxxxxxxx - lavf 59.3.100 - avformat.h
Add pts_wrap_bits to AVStream
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 0d12d5b0d2..adc99d7308 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -817,12 +817,11 @@ typedef struct AVStreamInternal AVStreamInternal;
#define AV_DISPOSITION_DEPENDENT 0x80000 ///< dependent audio stream (mix_type=0 in mpegts)
#define AV_DISPOSITION_STILL_IMAGE 0x100000 ///< still images in video stream (still_picture_flag=1 in mpegts)
-/**
- * Options for behavior on timestamp wrap detection.
- */
-#define AV_PTS_WRAP_IGNORE 0 ///< ignore the wrap
-#define AV_PTS_WRAP_ADD_OFFSET 1 ///< add the format specific offset on wrap detection
-#define AV_PTS_WRAP_SUB_OFFSET -1 ///< subtract the format specific offset on wrap detection
+#if FF_API_PTS_WRAP
+#define AV_PTS_WRAP_IGNORE 0
+#define AV_PTS_WRAP_ADD_OFFSET 1
+#define AV_PTS_WRAP_SUB_OFFSET -1
+#endif
/**
* Stream structure.
diff --git a/libavformat/internal.h b/libavformat/internal.h
index fee70e8e3d..7634b64124 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -167,6 +167,13 @@ struct AVFormatInternal {
int chapter_ids_monotonic;
};
+/**
+ * Options for behavior on timestamp wrap detection.
+ */
+#define FF_PTS_WRAP_IGNORE 0 ///< ignore the wrap
+#define FF_PTS_WRAP_ADD_OFFSET 1 ///< add the format specific offset on wrap detection
+#define FF_PTS_WRAP_SUB_OFFSET -1 ///< subtract the format specific offset on wrap detection
+
struct AVStreamInternal {
/**
* Set to 1 if the codec allows reordering, so pts can be different
@@ -316,7 +323,7 @@ struct AVStreamInternal {
/**
* Options for behavior, when a wrap is detected.
*
- * Defined by AV_PTS_WRAP_ values.
+ * Defined by FF_PTS_WRAP_ values.
*
* If correction is enabled, there are two possibilities:
* If the first time stamp is near the wrap point, the wrap offset
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 5582d108d0..2c2efd45d2 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -101,12 +101,12 @@ static int is_relative(int64_t ts) {
*/
static int64_t wrap_timestamp(const AVStream *st, int64_t timestamp)
{
- if (st->internal->pts_wrap_behavior != AV_PTS_WRAP_IGNORE && st->pts_wrap_bits < 64 &&
+ if (st->internal->pts_wrap_behavior != FF_PTS_WRAP_IGNORE && st->pts_wrap_bits < 64 &&
st->internal->pts_wrap_reference != AV_NOPTS_VALUE && timestamp != AV_NOPTS_VALUE) {
- if (st->internal->pts_wrap_behavior == AV_PTS_WRAP_ADD_OFFSET &&
+ if (st->internal->pts_wrap_behavior == FF_PTS_WRAP_ADD_OFFSET &&
timestamp < st->internal->pts_wrap_reference)
return timestamp + (1ULL << st->pts_wrap_bits);
- else if (st->internal->pts_wrap_behavior == AV_PTS_WRAP_SUB_OFFSET &&
+ else if (st->internal->pts_wrap_behavior == FF_PTS_WRAP_SUB_OFFSET &&
timestamp >= st->internal->pts_wrap_reference)
return timestamp - (1ULL << st->pts_wrap_bits);
}
@@ -716,7 +716,7 @@ static int update_wrap_reference(AVFormatContext *s, AVStream *st, int stream_in
// if first time stamp is not more than 1/8 and 60s before the wrap point, subtract rather than add wrap offset
pts_wrap_behavior = (ref < (1LL << st->pts_wrap_bits) - (1LL << st->pts_wrap_bits-3)) ||
(ref < (1LL << st->pts_wrap_bits) - av_rescale(60, st->time_base.den, st->time_base.num)) ?
- AV_PTS_WRAP_ADD_OFFSET : AV_PTS_WRAP_SUB_OFFSET;
+ FF_PTS_WRAP_ADD_OFFSET : FF_PTS_WRAP_SUB_OFFSET;
first_program = av_find_program_from_stream(s, NULL, stream_index);
@@ -840,7 +840,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
st = s->streams[pkt->stream_index];
- if (update_wrap_reference(s, st, pkt->stream_index, pkt) && st->internal->pts_wrap_behavior == AV_PTS_WRAP_SUB_OFFSET) {
+ if (update_wrap_reference(s, st, pkt->stream_index, pkt) && st->internal->pts_wrap_behavior == FF_PTS_WRAP_SUB_OFFSET) {
// correct first time stamps to negative values
if (!is_relative(st->internal->first_dts))
st->internal->first_dts = wrap_timestamp(st, st->internal->first_dts);
@@ -4425,7 +4425,7 @@ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c)
st->internal->first_dts = AV_NOPTS_VALUE;
st->internal->probe_packets = s->max_probe_packets;
st->internal->pts_wrap_reference = AV_NOPTS_VALUE;
- st->internal->pts_wrap_behavior = AV_PTS_WRAP_IGNORE;
+ st->internal->pts_wrap_behavior = FF_PTS_WRAP_IGNORE;
st->internal->last_IP_pts = AV_NOPTS_VALUE;
st->internal->last_dts_for_order_check = AV_NOPTS_VALUE;
@@ -4475,7 +4475,7 @@ AVProgram *av_new_program(AVFormatContext *ac, int id)
program->pmt_version = -1;
program->id = id;
program->pts_wrap_reference = AV_NOPTS_VALUE;
- program->pts_wrap_behavior = AV_PTS_WRAP_IGNORE;
+ program->pts_wrap_behavior = FF_PTS_WRAP_IGNORE;
program->start_time =
program->end_time = AV_NOPTS_VALUE;
}
diff --git a/libavformat/version.h b/libavformat/version.h
index 7f02e18f24..8c07eb89f2 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -33,7 +33,7 @@
// Also please add any ticket numbers that you believe might be affected here
#define LIBAVFORMAT_VERSION_MAJOR 59
#define LIBAVFORMAT_VERSION_MINOR 3
-#define LIBAVFORMAT_VERSION_MICRO 100
+#define LIBAVFORMAT_VERSION_MICRO 101
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \
@@ -61,6 +61,9 @@
#ifndef FF_API_COMPUTE_PKT_FIELDS2
#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 60)
#endif
+#ifndef FF_API_PTS_WRAP
+#define FF_API_PTS_WRAP (LIBAVFORMAT_VERSION_MAJOR < 60)
+#endif
#ifndef FF_API_R_FRAME_RATE
--
2.31.1
More information about the ffmpeg-devel
mailing list