[FFmpeg-cvslog] lavf: move AVStream.{nb_decoded_frames,mux_ts_offset} to AVStreamInternal
Anton Khirnov
git at videolan.org
Wed Oct 28 16:14:23 EET 2020
ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Fri Oct 9 09:22:36 2020 +0200| [cb46a6bcbcb85b3910cc0cce78399686ab8efff6] | committer: Anton Khirnov
lavf: move AVStream.{nb_decoded_frames,mux_ts_offset} to AVStreamInternal
Those are private fields, no reason to have them exposed in a public
header.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cb46a6bcbcb85b3910cc0cce78399686ab8efff6
---
libavformat/avformat.h | 11 -----------
libavformat/internal.h | 11 +++++++++++
libavformat/mux.c | 6 +++---
libavformat/utils.c | 10 +++++-----
4 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index d652be9ab9..2b42fb7fad 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1151,17 +1151,6 @@ typedef struct AVStream {
*/
int64_t last_discard_sample;
- /**
- * Number of internally decoded frames, used internally in libavformat, do not access
- * its lifetime differs from info which is why it is not in that structure.
- */
- int nb_decoded_frames;
-
- /**
- * Timestamp offset added to timestamps before muxing
- */
- int64_t mux_ts_offset;
-
/**
* An opaque field for libavformat internal usage.
* Must not be accessed in any way by callers.
diff --git a/libavformat/internal.h b/libavformat/internal.h
index efa5a8b238..b1112fe463 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -225,6 +225,17 @@ struct AVStreamInternal {
} *info;
+ /**
+ * Number of internally decoded frames, used internally in libavformat, do not access
+ * its lifetime differs from info which is why it is not in that structure.
+ */
+ int nb_decoded_frames;
+
+ /**
+ * Timestamp offset added to timestamps before muxing
+ */
+ int64_t mux_ts_offset;
+
/**
* Internal data to check for wrapping of the time stamp
*/
diff --git a/libavformat/mux.c b/libavformat/mux.c
index 44d5e5d1c0..8a2d6370f6 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -678,7 +678,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
if (s->avoid_negative_ts > 0) {
AVStream *st = s->streams[pkt->stream_index];
- int64_t offset = st->mux_ts_offset;
+ int64_t offset = st->internal->mux_ts_offset;
int64_t ts = s->internal->avoid_negative_ts_use_pts ? pkt->pts : pkt->dts;
if (s->internal->offset == AV_NOPTS_VALUE && ts != AV_NOPTS_VALUE &&
@@ -688,7 +688,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
}
if (s->internal->offset != AV_NOPTS_VALUE && !offset) {
- offset = st->mux_ts_offset =
+ offset = st->internal->mux_ts_offset =
av_rescale_q_rnd(s->internal->offset,
s->internal->offset_timebase,
st->time_base,
@@ -1038,7 +1038,7 @@ int ff_interleaved_peek(AVFormatContext *s, int stream,
*pkt = pktl->pkt;
if (add_offset) {
AVStream *st = s->streams[pkt->stream_index];
- int64_t offset = st->mux_ts_offset;
+ int64_t offset = st->internal->mux_ts_offset;
if (s->output_ts_offset)
offset += av_rescale_q(s->output_ts_offset, AV_TIME_BASE_Q, st->time_base);
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 5da286ed57..d1e77d7b24 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -1000,11 +1000,11 @@ static int has_decode_delay_been_guessed(AVStream *st)
return 1;
#endif
if (st->internal->avctx->has_b_frames<3)
- return st->nb_decoded_frames >= 7;
+ return st->internal->nb_decoded_frames >= 7;
else if (st->internal->avctx->has_b_frames<4)
- return st->nb_decoded_frames >= 18;
+ return st->internal->nb_decoded_frames >= 18;
else
- return st->nb_decoded_frames >= 20;
+ return st->internal->nb_decoded_frames >= 20;
}
static AVPacketList *get_next_pkt(AVFormatContext *s, AVStream *st, AVPacketList *pktl)
@@ -2960,7 +2960,7 @@ static int has_codec_parameters(AVStream *st, const char **errmsg_ptr)
FAIL("unspecified sample rate");
if (!avctx->channels)
FAIL("unspecified number of channels");
- if (st->internal->info->found_decoder >= 0 && !st->nb_decoded_frames && avctx->codec_id == AV_CODEC_ID_DTS)
+ if (st->internal->info->found_decoder >= 0 && !st->internal->nb_decoded_frames && avctx->codec_id == AV_CODEC_ID_DTS)
FAIL("no decodable DTS frames");
break;
case AVMEDIA_TYPE_VIDEO:
@@ -3067,7 +3067,7 @@ static int try_decode_frame(AVFormatContext *s, AVStream *st,
}
if (ret >= 0) {
if (got_picture)
- st->nb_decoded_frames++;
+ st->internal->nb_decoded_frames++;
ret = got_picture;
}
}
More information about the ffmpeg-cvslog
mailing list