On 8/4/2021 1:24 PM, Andreas Rheinhardt wrote:
This gets them off the ABI altogether at the cost of breaking the ABI
once more now.
Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com>
---
Do this and the preceding patch need a version bump?
You're not removing anything that was "public", so IMO no.
Changes in offsets are ok since the latest AVPacket addition was a few
days ago, so the ABI is not frozen yet (And at this rate wont be until
we branch out a 5.0 release).
libavformat/avio.h | 98 ++++++++++++++++++++++------------------------
1 file changed, 47 insertions(+), 51 deletions(-)
diff --git a/libavformat/avio.h b/libavformat/avio.h
index 0b35409787..ebf43bfe15 100644
--- a/libavformat/avio.h
+++ b/libavformat/avio.h
@@ -148,9 +148,9 @@ enum AVIODataMarkerType {
/**
* Bytestream IO Context.
- * New fields can be added to the end with minor version bumps.
- * Removal, reordering and changes to existing fields require a major
- * version bump.
+ * New public fields can be added with minor version bumps.
+ * Removal, reordering and changes to existing public fields require
+ * a major version bump.
* sizeof(AVIOContext) must not be used outside libav*.
*
* @note None of the function pointers in AVIOContext should be called
@@ -237,12 +237,14 @@ typedef struct AVIOContext {
int64_t (*seek)(void *opaque, int64_t offset, int whence);
int64_t pos; /**< position in the file of the current buffer */
int eof_reached; /**< true if was unable to read due to error or
eof */
+ int error; /**< contains the error code or 0 if no error
happened */
int write_flag; /**< true if open for writing */
int max_packet_size;
+ int min_packet_size; /**< Try to buffer at least this amount of data
+ before flushing it. */
unsigned long checksum;
unsigned char *checksum_ptr;
unsigned long (*update_checksum)(unsigned long checksum, const uint8_t
*buf, unsigned int size);
- int error; /**< contains the error code or 0 if no error
happened */
/**
* Pause or resume playback for network streaming protocols - e.g. MMS.
*/
@@ -259,12 +261,6 @@ typedef struct AVIOContext {
*/
int seekable;
- /**
- * max filesize, used to limit allocations
- * This field is internal to libavformat and access from outside is not
allowed.
- */
- int64_t maxsize;
-
/**
* avio_read and avio_write should if possible be satisfied directly
* instead of going through a buffer, and avio_seek will always
@@ -272,37 +268,6 @@ typedef struct AVIOContext {
*/
int direct;
- /**
- * Bytes read statistic
- * This field is internal to libavformat and access from outside is not
allowed.
- */
- int64_t bytes_read;
-
- /**
- * seek statistic
- * This field is internal to libavformat and access from outside is not
allowed.
- */
- int seek_count;
-
- /**
- * writeout statistic
- * This field is internal to libavformat and access from outside is not
allowed.
- */
- int writeout_count;
-
- /**
- * Original buffer size
- * used internally after probing and ensure seekback to reset the buffer
size
- * This field is internal to libavformat and access from outside is not
allowed.
- */
- int orig_buffer_size;
-
- /**
- * Threshold to favor readahead over seek.
- * This is current internal only, do not use from outside.
- */
- int short_seek_threshold;
-
/**
* ',' separated list of allowed protocols.
*/
@@ -325,30 +290,61 @@ typedef struct AVIOContext {
*/
int ignore_boundary_point;
+ int64_t written;
+
+ /**
+ * Maximum reached position before a backward seek in the write buffer,
+ * used keeping track of already written data for a later flush.
+ */
+ unsigned char *buf_ptr_max;
+
+ /*****************************************************************
+ * No fields below this line are part of the public API. They
+ * may not be used outside of libavformat and can be changed and
+ * removed at will.
+ * New public fields should be added right above.
+ *****************************************************************
Since we got rid of this kind of notice from AVStream not too long ago,
wouldn't it be better if we prevent it from happening here too?
You could introduce a new AVIOInternal opaque struct and field here,
much like we did with AVStreamInternal and AVFormatInternal to solve the
same problem.
+ */
+ /**
+ * A callback that is used instead of short_seek_threshold.
+ * This is currently internal only, do not use from outside.
+ */
+ int (*short_seek_get)(void *opaque);
+
/**
- * Internal, not meant to be used from outside of AVIOContext.
+ * Threshold to favor readahead over seek.
+ * This is currently internal only, do not use from outside.
*/
+ int short_seek_threshold;
+
enum AVIODataMarkerType current_type;
int64_t last_time;
/**
- * A callback that is used instead of short_seek_threshold.
- * This is current internal only, do not use from outside.
+ * max filesize, used to limit allocations
*/
- int (*short_seek_get)(void *opaque);
+ int64_t maxsize;
- int64_t written;
+ /**
+ * Bytes read statistic
+ */
+ int64_t bytes_read;
/**
- * Maximum reached position before a backward seek in the write buffer,
- * used keeping track of already written data for a later flush.
+ * seek statistic
*/
- unsigned char *buf_ptr_max;
+ int seek_count;
+
+ /**
+ * writeout statistic
+ */
+ int writeout_count;
/**
- * Try to buffer at least this amount of data before flushing it
+ * Original buffer size
+ * used after probing to ensure seekback and to reset the buffer size
*/
- int min_packet_size;
+ int orig_buffer_size;
} AVIOContext;
/**
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".