[FFmpeg-devel] [PATCH 09/18] lavf: move AVStream.interleaver_chunk_* to AVStreamInternal

Anton Khirnov anton at khirnov.net
Fri Oct 9 16:04:21 EEST 2020


Those are private fields, no reason to have them exposed in a public
header.
---
 libavformat/avformat.h |  3 ---
 libavformat/internal.h |  3 +++
 libavformat/mux.c      | 16 ++++++++--------
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index ed0ed0d3e1..1253021452 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1084,9 +1084,6 @@ typedef struct AVStream {
     int pmt_version;
     int pmt_stream_idx;
 
-    int64_t interleaver_chunk_size;
-    int64_t interleaver_chunk_duration;
-
     /**
      * 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 d8ceebb26e..87d62c51b2 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -225,6 +225,9 @@ struct AVStreamInternal {
 
     } *info;
 
+    int64_t interleaver_chunk_size;
+    int64_t interleaver_chunk_duration;
+
     /**
      * stream probing state
      * -1   -> probing finished
diff --git a/libavformat/mux.c b/libavformat/mux.c
index 8a2d6370f6..8a53f0feeb 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -839,19 +839,19 @@ int ff_interleave_add_packet(AVFormatContext *s, AVPacket *pkt,
 
     if (chunked) {
         uint64_t max= av_rescale_q_rnd(s->max_chunk_duration, AV_TIME_BASE_Q, st->time_base, AV_ROUND_UP);
-        st->interleaver_chunk_size     += pkt->size;
-        st->interleaver_chunk_duration += pkt->duration;
-        if (   (s->max_chunk_size && st->interleaver_chunk_size > s->max_chunk_size)
-            || (max && st->interleaver_chunk_duration           > max)) {
-            st->interleaver_chunk_size = 0;
+        st->internal->interleaver_chunk_size     += pkt->size;
+        st->internal->interleaver_chunk_duration += pkt->duration;
+        if (   (s->max_chunk_size && st->internal->interleaver_chunk_size > s->max_chunk_size)
+            || (max && st->internal->interleaver_chunk_duration           > max)) {
+            st->internal->interleaver_chunk_size = 0;
             pkt->flags |= CHUNK_START;
-            if (max && st->interleaver_chunk_duration > max) {
+            if (max && st->internal->interleaver_chunk_duration > max) {
                 int64_t syncoffset = (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO)*max/2;
                 int64_t syncto = av_rescale(pkt->dts + syncoffset, 1, max)*max - syncoffset;
 
-                st->interleaver_chunk_duration += (pkt->dts - syncto)/8 - max;
+                st->internal->interleaver_chunk_duration += (pkt->dts - syncto)/8 - max;
             } else
-                st->interleaver_chunk_duration = 0;
+                st->internal->interleaver_chunk_duration = 0;
         }
     }
     if (*next_point) {
-- 
2.28.0



More information about the ffmpeg-devel mailing list