[FFmpeg-devel] [PATCH 12/18] lavf: move AVStream.probe_data to AVStreamInternal

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


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

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index ef6d673699..c99449e121 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1061,10 +1061,10 @@ typedef struct AVStream {
      * last packet in packet_buffer for this stream when muxing.
      */
     struct AVPacketList *last_in_packet_buffer;
-    AVProbeData probe_data;
 
 #if LIBAVFORMAT_VERSION_MAJOR < 59
     // kept for ABI compatibility only, do not access in any way
+    AVProbeData  unused6;
     int64_t      unused5[16+1];
     void         *unused2;
     int          unused3;
diff --git a/libavformat/internal.h b/libavformat/internal.h
index 23c2ce0dc3..b8e662b96e 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -336,6 +336,8 @@ struct AVStreamInternal {
      * - decoding: Set by libavformat to calculate sample_aspect_ratio internally
      */
     AVRational display_aspect_ratio;
+
+    AVProbeData probe_data;
 };
 
 #ifdef __GNUC__
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 6cba0cce8f..27b7b62b1a 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -676,7 +676,7 @@ static void force_codec_ids(AVFormatContext *s, AVStream *st)
 static int probe_codec(AVFormatContext *s, AVStream *st, const AVPacket *pkt)
 {
     if (st->internal->request_probe>0) {
-        AVProbeData *pd = &st->probe_data;
+        AVProbeData *pd = &st->internal->probe_data;
         int end;
         av_log(s, AV_LOG_DEBUG, "probing stream %d pp:%d\n", st->index, st->probe_packets);
         --st->probe_packets;
@@ -4342,6 +4342,8 @@ static void free_stream(AVStream **pst)
         av_bsf_free(&st->internal->bsfc);
         av_freep(&st->internal->priv_pts);
         av_freep(&st->internal->index_entries);
+        av_freep(&st->internal->probe_data.buf);
+
         av_bsf_free(&st->internal->extract_extradata.bsf);
         av_packet_free(&st->internal->extract_extradata.pkt);
 
@@ -4353,7 +4355,6 @@ static void free_stream(AVStream **pst)
 
     av_dict_free(&st->metadata);
     avcodec_parameters_free(&st->codecpar);
-    av_freep(&st->probe_data.buf);
 #if FF_API_LAVF_AVCTX
 FF_DISABLE_DEPRECATION_WARNINGS
     avcodec_free_context(&st->codec);
-- 
2.28.0



More information about the ffmpeg-devel mailing list