Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: James Almer <jamrial@gmail.com>
To: ffmpeg-devel@ffmpeg.org
Subject: [FFmpeg-devel] [PATCH 2/2] avformat/avformat: Reorder AVFormatContext fields
Date: Mon,  4 Mar 2024 15:06:12 -0300
Message-ID: <20240304180613.7280-3-jamrial@gmail.com> (raw)
In-Reply-To: <20240125134425.374-1-jamrial@gmail.com>

Move related fields closer together.

Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavformat/avformat.h | 222 ++++++++++++++++++++---------------------
 1 file changed, 111 insertions(+), 111 deletions(-)

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index d74db17df1..f28db099d4 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1324,6 +1324,39 @@ typedef struct AVFormatContext {
      */
     AVStream **streams;
 
+    /**
+     * Number of elements in AVFormatContext.stream_groups.
+     *
+     * Set by avformat_stream_group_create(), must not be modified by any other code.
+     */
+    unsigned int nb_stream_groups;
+    /**
+     * A list of all stream groups in the file. New groups are created with
+     * avformat_stream_group_create(), and filled with avformat_stream_group_add_stream().
+     *
+     * - demuxing: groups may be created by libavformat in avformat_open_input().
+     *             If AVFMTCTX_NOHEADER is set in ctx_flags, then new groups may also
+     *             appear in av_read_frame().
+     * - muxing: groups may be created by the user before avformat_write_header().
+     *
+     * Freed by libavformat in avformat_free_context().
+     */
+    AVStreamGroup **stream_groups;
+
+    /**
+     * Number of chapters in AVChapter array.
+     * When muxing, chapters are normally written in the file header,
+     * so nb_chapters should normally be initialized before write_header
+     * is called. Some muxers (e.g. mov and mkv) can also write chapters
+     * in the trailer.  To write chapters in the trailer, nb_chapters
+     * must be zero when write_header is called and non-zero when
+     * write_trailer is called.
+     * - muxing: set by user
+     * - demuxing: set by libavformat
+     */
+    unsigned int nb_chapters;
+    AVChapter **chapters;
+
     /**
      * input or output URL. Unlike the old filename field, this field has no
      * length restriction.
@@ -1443,36 +1476,10 @@ typedef struct AVFormatContext {
     enum AVCodecID subtitle_codec_id;
 
     /**
-     * Maximum amount of memory in bytes to use for the index of each stream.
-     * If the index exceeds this size, entries will be discarded as
-     * needed to maintain a smaller size. This can lead to slower or less
-     * accurate seeking (depends on demuxer).
-     * Demuxers for which a full in-memory index is mandatory will ignore
-     * this.
-     * - muxing: unused
-     * - demuxing: set by user
-     */
-    unsigned int max_index_size;
-
-    /**
-     * Maximum amount of memory in bytes to use for buffering frames
-     * obtained from realtime capture devices.
-     */
-    unsigned int max_picture_buffer;
-
-    /**
-     * Number of chapters in AVChapter array.
-     * When muxing, chapters are normally written in the file header,
-     * so nb_chapters should normally be initialized before write_header
-     * is called. Some muxers (e.g. mov and mkv) can also write chapters
-     * in the trailer.  To write chapters in the trailer, nb_chapters
-     * must be zero when write_header is called and non-zero when
-     * write_trailer is called.
-     * - muxing: set by user
-     * - demuxing: set by libavformat
+     * Forced Data codec_id.
+     * Demuxing: Set by user.
      */
-    unsigned int nb_chapters;
-    AVChapter **chapters;
+    enum AVCodecID data_codec_id;
 
     /**
      * Metadata that applies to the whole file.
@@ -1528,6 +1535,31 @@ typedef struct AVFormatContext {
     int debug;
 #define FF_FDEBUG_TS        0x0001
 
+    /**
+     * The maximum number of streams.
+     * - encoding: unused
+     * - decoding: set by user
+     */
+    int max_streams;
+
+    /**
+     * Maximum amount of memory in bytes to use for the index of each stream.
+     * If the index exceeds this size, entries will be discarded as
+     * needed to maintain a smaller size. This can lead to slower or less
+     * accurate seeking (depends on demuxer).
+     * Demuxers for which a full in-memory index is mandatory will ignore
+     * this.
+     * - muxing: unused
+     * - demuxing: set by user
+     */
+    unsigned int max_index_size;
+
+    /**
+     * Maximum amount of memory in bytes to use for buffering frames
+     * obtained from realtime capture devices.
+     */
+    unsigned int max_picture_buffer;
+
     /**
      * Maximum buffering duration for interleaving.
      *
@@ -1546,6 +1578,35 @@ typedef struct AVFormatContext {
      */
     int64_t max_interleave_delta;
 
+    /**
+     * Maximum number of packets to read while waiting for the first timestamp.
+     * Decoding only.
+     */
+    int max_ts_probe;
+
+    /**
+     * Max chunk time in microseconds.
+     * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
+     * - encoding: Set by user
+     * - decoding: unused
+     */
+    int max_chunk_duration;
+
+    /**
+     * Max chunk size in bytes
+     * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
+     * - encoding: Set by user
+     * - decoding: unused
+     */
+    int max_chunk_size;
+
+    /**
+     * Maximum number of packets that can be probed
+     * - encoding: unused
+     * - decoding: set by user
+     */
+    int max_probe_packets;
+
     /**
      * Allow non-standard and experimental extension
      * @see AVCodecContext.strict_std_compliance
@@ -1572,11 +1633,6 @@ typedef struct AVFormatContext {
  */
 #define AVFMT_EVENT_FLAG_METADATA_UPDATED 0x0001
 
-    /**
-     * Maximum number of packets to read while waiting for the first timestamp.
-     * Decoding only.
-     */
-    int max_ts_probe;
 
     /**
      * Avoid negative timestamps during muxing.
@@ -1599,22 +1655,6 @@ typedef struct AVFormatContext {
      */
     int audio_preload;
 
-    /**
-     * Max chunk time in microseconds.
-     * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
-     * - encoding: Set by user
-     * - decoding: unused
-     */
-    int max_chunk_duration;
-
-    /**
-     * Max chunk size in bytes
-     * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
-     * - encoding: Set by user
-     * - decoding: unused
-     */
-    int max_chunk_size;
-
     /**
      * forces the use of wallclock timestamps as pts/dts of packets
      * This has undefined results in the presence of B frames.
@@ -1623,6 +1663,13 @@ typedef struct AVFormatContext {
      */
     int use_wallclock_as_timestamps;
 
+    /**
+     * Skip duration calcuation in estimate_timings_from_pts.
+     * - encoding: unused
+     * - decoding: set by user
+     */
+    int skip_estimate_duration_from_pts;
+
     /**
      * avio flags, used to force AVIO_FLAG_DIRECT.
      * - encoding: unused
@@ -1702,6 +1749,20 @@ typedef struct AVFormatContext {
      */
     char *format_whitelist;
 
+    /**
+     * ',' separated list of allowed protocols.
+     * - encoding: unused
+     * - decoding: set by user
+     */
+    char *protocol_whitelist;
+
+    /**
+     * ',' separated list of disallowed protocols.
+     * - encoding: unused
+     * - decoding: set by user
+     */
+    char *protocol_blacklist;
+
     /**
      * IO repositioned flag.
      * This is set by avformat when the underlaying IO context read pointer
@@ -1774,19 +1835,6 @@ typedef struct AVFormatContext {
      */
     uint8_t *dump_separator;
 
-    /**
-     * Forced Data codec_id.
-     * Demuxing: Set by user.
-     */
-    enum AVCodecID data_codec_id;
-
-    /**
-     * ',' separated list of allowed protocols.
-     * - encoding: unused
-     * - decoding: set by user
-     */
-    char *protocol_whitelist;
-
     /**
      * A callback for opening new IO streams.
      *
@@ -1810,34 +1858,6 @@ typedef struct AVFormatContext {
     int (*io_open)(struct AVFormatContext *s, AVIOContext **pb, const char *url,
                    int flags, AVDictionary **options);
 
-    /**
-     * ',' separated list of disallowed protocols.
-     * - encoding: unused
-     * - decoding: set by user
-     */
-    char *protocol_blacklist;
-
-    /**
-     * The maximum number of streams.
-     * - encoding: unused
-     * - decoding: set by user
-     */
-    int max_streams;
-
-    /**
-     * Skip duration calcuation in estimate_timings_from_pts.
-     * - encoding: unused
-     * - decoding: set by user
-     */
-    int skip_estimate_duration_from_pts;
-
-    /**
-     * Maximum number of packets that can be probed
-     * - encoding: unused
-     * - decoding: set by user
-     */
-    int max_probe_packets;
-
     /**
      * A callback for closing the streams opened with AVFormatContext.io_open().
      *
@@ -1850,26 +1870,6 @@ typedef struct AVFormatContext {
      * @return 0 on success, a negative AVERROR code on failure
      */
     int (*io_close2)(struct AVFormatContext *s, AVIOContext *pb);
-
-    /**
-     * Number of elements in AVFormatContext.stream_groups.
-     *
-     * Set by avformat_stream_group_create(), must not be modified by any other code.
-     */
-    unsigned int nb_stream_groups;
-
-    /**
-     * A list of all stream groups in the file. New groups are created with
-     * avformat_stream_group_create(), and filled with avformat_stream_group_add_stream().
-     *
-     * - demuxing: groups may be created by libavformat in avformat_open_input().
-     *             If AVFMTCTX_NOHEADER is set in ctx_flags, then new groups may also
-     *             appear in av_read_frame().
-     * - muxing: groups may be created by the user before avformat_write_header().
-     *
-     * Freed by libavformat in avformat_free_context().
-     */
-    AVStreamGroup **stream_groups;
 } AVFormatContext;
 
 /**
-- 
2.44.0

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  parent reply	other threads:[~2024-03-04 18:07 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-25 13:43 [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 01/24] avcodec: remove deprecated FF_API_IDCT_NONE James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 02/24] avcodec: remove deprecated FF_API_SVTAV1_OPTS James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 03/24] avcodec: remove deprecated FF_API_AYUV_CODECID James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 04/24] avcodec: remove deprecated FF_API_VT_OUTPUT_CALLBACK James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 05/24] avcodec: remove deprecated FF_API_AVCODEC_CHROMA_POS James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 06/24] avcodec: remove deprecated FF_API_VT_HWACCEL_CONTEXT James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 07/24] avcodec: remove deprecated FF_API_AVCTX_FRAME_NUMBER James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 08/24] avcodec: remove deprecated FF_CODEC_CRYSTAL_HD James Almer
2024-01-25 14:12   ` Andreas Rheinhardt
2024-01-25 14:23     ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 09/24] avformat: remove deprecated FF_API_GET_END_PTS James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 10/24] avformat: remove deprecated FF_API_AVIODIRCONTEXT James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 11/24] avformat: remove deprecated FF_API_AVFORMAT_IO_CLOSE James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 12/24] avfilter: remove deprecated FF_API_LIBPLACEBO_OPTS James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 13/24] avutil: remove deprecated FF_API_FIFO_PEEK2 James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 14/24] avutil: remove deprecated FF_API_FIFO_OLD_API James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 15/24] avutil: remove deprecated FF_API_XVMC James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 16/24] avutil: remove deprecated FF_API_OLD_CHANNEL_LAYOUT James Almer
2024-02-04 20:02   ` Andreas Rheinhardt
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 17/24] avutil: remove deprecated FF_API_AV_FOPEN_UTF8 James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 18/24] avutil: remove deprecated FF_API_PKT_DURATION James Almer
2024-02-04 20:04   ` Andreas Rheinhardt
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 19/24] avutil: remove deprecated FF_API_REORDERED_OPAQUE James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 20/24] avutil: remove deprecated FF_API_FRAME_PICTURE_NUMBER James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 21/24] avcodec/version_major: postpone some deprecations until the next bump James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 22/24] avformat/version_major: " James Almer
2024-01-25 14:34   ` Andreas Rheinhardt
2024-01-25 14:35     ` James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 23/24] avutil/version_major: " James Almer
2024-01-25 13:43 ` [FFmpeg-devel] [PATCH 24/24] libs: bump major version for all libraries James Almer
2024-01-26 16:44   ` Vittorio Giovara
2024-01-26 16:48     ` James Almer
2024-01-26 16:52       ` Martin Storsjö
2024-01-26 17:02         ` James Almer
2024-01-26 17:09           ` Martin Storsjö
2024-01-26 18:18   ` Michael Niedermayer
2024-01-26 18:21     ` James Almer
2024-01-26 18:22     ` Michael Niedermayer
2024-01-25 16:23 ` [FFmpeg-devel] [PATCH 00/24] Major library version bump James Almer
2024-02-07 13:11   ` James Almer
2024-01-28 12:31 ` Anton Khirnov
2024-02-04 13:02   ` James Almer
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 25/27] avformat/avformat: Add FFInputFormat, hide internals of AVInputFormat Andreas Rheinhardt
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 26/27] avutil/opt: Don't use AV_OPT_TYPE_FLAGS for sentinels Andreas Rheinhardt
2024-02-10 14:50 ` [FFmpeg-devel] [PATCH 27/27] avformat/demux: Use enum AVCodecID for raw_codec_id Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 28/35] avfilter/avfilter: Avoid allocation for AVFilterInternal Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 29/35] avfilter: Add a header for internal generic-layer APIs Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 30/35] avfilter/avfiltergraph: Avoid indirection when freeing filtergraph Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 31/35] avfilter/avfiltergraph: Avoid allocation for AVFilterGraphInternal Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 32/35] avfilter/af_hdcd: Drop a redundant log Andreas Rheinhardt
2024-02-13 17:31   ` Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 33/35] avfilter/avfilter: Move AVFilterGraph private fields to FFFilterGraph Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 34/35] avcodec/avcodec: Reorder AVCodecContext and AVSubtitleRect fields Andreas Rheinhardt
2024-02-10 23:04 ` [FFmpeg-devel] [PATCH 35/35] avfilter/avfilter: Reorder structure fields Andreas Rheinhardt
2024-03-04 15:11 ` [FFmpeg-devel] [PATCH] lavc: move AVCodecContext.pts_correction* to DecodeContext Anton Khirnov
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH5] avcodec/codec_par: Reorder AVCodecParameters fields James Almer
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH 1/2] avformat/avformat: remove AVFormatContext.ts_id James Almer
2024-03-04 18:06 ` James Almer [this message]
2024-03-04 18:06 ` [FFmpeg-devel] [PATCH] lavc: move AVCodecContext.pts_correction* to DecodeContext James Almer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240304180613.7280-3-jamrial@gmail.com \
    --to=jamrial@gmail.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git