]> git.sesse.net Git - ffmpeg/commitdiff
lavf: move AVStream.{nb_decoded_frames,mux_ts_offset} to AVStreamInternal
authorAnton Khirnov <anton@khirnov.net>
Fri, 9 Oct 2020 07:22:36 +0000 (09:22 +0200)
committerAnton Khirnov <anton@khirnov.net>
Wed, 28 Oct 2020 13:55:53 +0000 (14:55 +0100)
Those are private fields, no reason to have them exposed in a public
header.

libavformat/avformat.h
libavformat/internal.h
libavformat/mux.c
libavformat/utils.c

index d652be9ab9791a93f2aedc23285c45deb40e62b6..2b42fb7fad957a08f48a24f103d52b38e9d03a46 100644 (file)
@@ -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.
index efa5a8b23892979b122e8362d3d06c813e06d4ae..b1112fe4632319e5f805a5863f2d466739231701 100644 (file)
@@ -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
      */
index 44d5e5d1c0b9d6d27dae58558b7971e95ab768b0..8a2d6370f63978d68589a316086c59402921820d 100644 (file)
@@ -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);
index 5da286ed5727339667d1992f4052bf708c68acab..d1e77d7b2484f0bcc8f4d02000efe7454e8404e9 100644 (file)
@@ -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;
         }
     }