@@ -1679,7 +1679,7 @@ enum AVFieldOrder {
* New fields can be added to the end with minor version bumps.
* Removal, reordering and changes to existing fields require a major
* version bump.
- * Please use AVOptions (av_opt* / av_set/get*()) to access these fields from user
+ * You can use AVOptions (av_opt* / av_set/get*()) to access these fields from user
* applications.
* The name string for AVOptions options matches the associated command line
* parameter name and can be found in libavcodec/options_table.h
@@ -2950,8 +2950,8 @@ typedef struct AVCodecContext {
#define FF_DEBUG_MMCO 0x00000800
#define FF_DEBUG_BUGS 0x00001000
#if FF_API_DEBUG_MV
-#define FF_DEBUG_VIS_QP 0x00002000 ///< only access through AVOptions from outside libavcodec
-#define FF_DEBUG_VIS_MB_TYPE 0x00004000 ///< only access through AVOptions from outside libavcodec
+#define FF_DEBUG_VIS_QP 0x00002000
+#define FF_DEBUG_VIS_MB_TYPE 0x00004000
#endif
#define FF_DEBUG_BUFFERS 0x00008000
#define FF_DEBUG_THREADS 0x00010000
@@ -2961,7 +2961,6 @@ typedef struct AVCodecContext {
#if FF_API_DEBUG_MV
/**
* debug
- * Code outside libavcodec should access this field using AVOptions
* - encoding: Set by user.
* - decoding: Set by user.
*/
@@ -3096,8 +3095,6 @@ typedef struct AVCodecContext {
* low resolution decoding, 1-> 1/2 size, 2->1/4 size
* - encoding: unused
* - decoding: Set by user.
- * Code outside libavcodec should access this field using:
- * av_codec_{get,set}_lowres(avctx)
*/
int lowres;
#endif
@@ -3398,8 +3395,6 @@ typedef struct AVCodecContext {
/**
* Timebase in which pkt_dts/pts and AVPacket.dts/pts are.
- * Code outside libavcodec should access this field using:
- * av_codec_{get,set}_pkt_timebase(avctx)
* - encoding unused.
* - decoding set by user.
*/
@@ -3407,8 +3402,6 @@ typedef struct AVCodecContext {
/**
* AVCodecDescriptor
- * Code outside libavcodec should access this field using:
- * av_codec_{get,set}_codec_descriptor(avctx)
* - encoding: unused.
* - decoding: set by libavcodec.
*/
@@ -3419,8 +3412,6 @@ typedef struct AVCodecContext {
* low resolution decoding, 1-> 1/2 size, 2->1/4 size
* - encoding: unused
* - decoding: Set by user.
- * Code outside libavcodec should access this field using:
- * av_codec_{get,set}_lowres(avctx)
*/
int lowres;
#endif
@@ -3461,7 +3452,6 @@ typedef struct AVCodecContext {
* However for formats that do not use pre-multiplied alpha
* there might be serious artefacts (though e.g. libswscale currently
* assumes pre-multiplied alpha anyway).
- * Code outside libavcodec should access this field using AVOptions
*
* - decoding: set by user
* - encoding: unused
@@ -3478,7 +3468,6 @@ typedef struct AVCodecContext {
#if !FF_API_DEBUG_MV
/**
* debug motion vectors
- * Code outside libavcodec should access this field using AVOptions
* - encoding: Set by user.
* - decoding: Set by user.
*/
@@ -3490,7 +3479,6 @@ typedef struct AVCodecContext {
/**
* custom intra quantization matrix
- * Code outside libavcodec should access this field using av_codec_g/set_chroma_intra_matrix()
* - encoding: Set by user, can be NULL.
* - decoding: unused.
*/
@@ -3499,8 +3487,6 @@ typedef struct AVCodecContext {
/**
* dump format separator.
* can be ", " or "\n " or anything else
- * Code outside libavcodec should access this field using AVOptions
- * (NO direct access).
* - encoding: Set by user.
* - decoding: Set by user.
*/
@@ -3510,13 +3496,12 @@ typedef struct AVCodecContext {
* ',' separated list of allowed decoders.
* If NULL then all are allowed
* - encoding: unused
- * - decoding: set by user through AVOPtions (NO direct access)
+ * - decoding: set by user
*/
char *codec_whitelist;
/*
* Properties of the stream that gets decoded
- * To be accessed through av_codec_get_properties() (NO direct access)
* - encoding: unused
* - decoding: set by libavcodec
*/
@@ -3645,7 +3630,7 @@ typedef struct AVCodec {
const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0
const enum AVSampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1
const uint64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
- uint8_t max_lowres; ///< maximum value for lowres supported by the decoder, no direct access, use av_codec_get_max_lowres()
+ uint8_t max_lowres; ///< maximum value for lowres supported by the decoder
const AVClass *priv_class; ///< AVClass for the private context
const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}
@@ -1649,7 +1649,7 @@ typedef struct AVFormatContext {
/**
* Audio preload in microseconds.
* Note, not all formats support this and unpredictable things may happen if it is used when not supported.
- * - encoding: Set by user via AVOptions (NO direct access)
+ * - encoding: Set by user
* - decoding: unused
*/
int audio_preload;
@@ -1657,7 +1657,7 @@ typedef struct AVFormatContext {
/**
* 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 via AVOptions (NO direct access)
+ * - encoding: Set by user
* - decoding: unused
*/
int max_chunk_duration;
@@ -1665,7 +1665,7 @@ typedef struct AVFormatContext {
/**
* 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 via AVOptions (NO direct access)
+ * - encoding: Set by user
* - decoding: unused
*/
int max_chunk_size;
@@ -1674,14 +1674,14 @@ typedef struct AVFormatContext {
* forces the use of wallclock timestamps as pts/dts of packets
* This has undefined results in the presence of B frames.
* - encoding: unused
- * - decoding: Set by user via AVOptions (NO direct access)
+ * - decoding: Set by user
*/
int use_wallclock_as_timestamps;
/**
* avio flags, used to force AVIO_FLAG_DIRECT.
* - encoding: unused
- * - decoding: Set by user via AVOptions (NO direct access)
+ * - decoding: Set by user
*/
int avio_flags;
@@ -1689,34 +1689,34 @@ typedef struct AVFormatContext {
* The duration field can be estimated through various ways, and this field can be used
* to know how the duration was estimated.
* - encoding: unused
- * - decoding: Read by user via AVOptions (NO direct access)
+ * - decoding: Read by user
*/
enum AVDurationEstimationMethod duration_estimation_method;
/**
* Skip initial bytes when opening stream
* - encoding: unused
- * - decoding: Set by user via AVOptions (NO direct access)
+ * - decoding: Set by user
*/
int64_t skip_initial_bytes;
/**
* Correct single timestamp overflows
* - encoding: unused
- * - decoding: Set by user via AVOptions (NO direct access)
+ * - decoding: Set by user
*/
unsigned int correct_ts_overflow;
/**
* Force seeking to any (also non key) frames.
* - encoding: unused
- * - decoding: Set by user via AVOptions (NO direct access)
+ * - decoding: Set by user
*/
int seek2any;
/**
* Flush the I/O context after each packet.
- * - encoding: Set by user via AVOptions (NO direct access)
+ * - encoding: Set by user
* - decoding: unused
*/
int flush_packets;
@@ -1726,14 +1726,14 @@ typedef struct AVFormatContext {
* The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes
* the format.
* - encoding: unused
- * - decoding: set by avformat, read by user via av_format_get_probe_score() (NO direct access)
+ * - decoding: set by avformat, read by user
*/
int probe_score;
/**
* number of bytes to read maximally to identify format.
* - encoding: unused
- * - decoding: set by user through AVOPtions (NO direct access)
+ * - decoding: set by user
*/
int format_probesize;
@@ -1741,7 +1741,7 @@ typedef struct AVFormatContext {
* ',' separated list of allowed decoders.
* If NULL then all are allowed
* - encoding: unused
- * - decoding: set by user through AVOptions (NO direct access)
+ * - decoding: set by user
*/
char *codec_whitelist;
@@ -1749,7 +1749,7 @@ typedef struct AVFormatContext {
* ',' separated list of allowed demuxers.
* If NULL then all are allowed
* - encoding: unused
- * - decoding: set by user through AVOptions (NO direct access)
+ * - decoding: set by user
*/
char *format_whitelist;
@@ -1771,7 +1771,7 @@ typedef struct AVFormatContext {
* Forced video codec.
* This allows forcing a specific decoder, even when there are multiple with
* the same codec_id.
- * Demuxing: Set by user via av_format_set_video_codec (NO direct access).
+ * Demuxing: Set by user
*/
AVCodec *video_codec;
@@ -1779,7 +1779,7 @@ typedef struct AVFormatContext {
* Forced audio codec.
* This allows forcing a specific decoder, even when there are multiple with
* the same codec_id.
- * Demuxing: Set by user via av_format_set_audio_codec (NO direct access).
+ * Demuxing: Set by user
*/
AVCodec *audio_codec;
@@ -1787,7 +1787,7 @@ typedef struct AVFormatContext {
* Forced subtitle codec.
* This allows forcing a specific decoder, even when there are multiple with
* the same codec_id.
- * Demuxing: Set by user via av_format_set_subtitle_codec (NO direct access).
+ * Demuxing: Set by user
*/
AVCodec *subtitle_codec;
@@ -1795,7 +1795,7 @@ typedef struct AVFormatContext {
* Forced data codec.
* This allows forcing a specific decoder, even when there are multiple with
* the same codec_id.
- * Demuxing: Set by user via av_format_set_data_codec (NO direct access).
+ * Demuxing: Set by user
*/
AVCodec *data_codec;
@@ -1819,15 +1819,13 @@ typedef struct AVFormatContext {
/**
* Output timestamp offset, in microseconds.
- * Muxing: set by user via AVOptions (NO direct access)
+ * Muxing: set by user
*/
int64_t output_ts_offset;
/**
* dump format separator.
* can be ", " or "\n " or anything else
- * Code outside libavformat should access this field using AVOptions
- * (NO direct access).
* - muxing: Set by user.
* - demuxing: Set by user.
*/
@@ -1864,7 +1862,7 @@ typedef struct AVFormatContext {
/**
* ',' separated list of allowed protocols.
* - encoding: unused
- * - decoding: set by user through AVOptions (NO direct access)
+ * - decoding: set by user
*/
char *protocol_whitelist;
@@ -1899,18 +1897,22 @@ typedef struct AVFormatContext {
/**
* ',' separated list of disallowed protocols.
* - encoding: unused
- * - decoding: set by user through AVOptions (NO direct access)
+ * - decoding: set by user
*/
char *protocol_blacklist;
/**
* The maximum number of streams.
* - encoding: unused
- * - decoding: set by user through AVOptions (NO direct access)
+ * - decoding: set by user
*/
int max_streams;
} AVFormatContext;
+/**
+ * Accessors for some AVFormatContext fields. These used to be provided for ABI
+ * compatibility, and do not need to be used anymore.
+ */
int av_format_get_probe_score(const AVFormatContext *s);
AVCodec * av_format_get_video_codec(const AVFormatContext *s);
void av_format_set_video_codec(AVFormatContext *s, AVCodec *c);
@@ -179,9 +179,6 @@ typedef struct AVFrameSideData {
*
* sizeof(AVFrame) is not a part of the public ABI, so new fields may be added
* to the end with a minor bump.
- * Similarly fields that are marked as to be only accessed by
- * av_opt_ptr() can be reordered. This allows 2 forks to add fields
- * without breaking compatibility with each other.
*
* Fields can be accessed through AVOptions, the name string used, matches the
* C structure field name for fields accessible through AVOptions. The AVClass
@@ -420,8 +417,6 @@ typedef struct AVFrame {
/**
* MPEG vs JPEG YUV range.
- * It must be accessed using av_frame_get_color_range() and
- * av_frame_set_color_range().
* - encoding: Set by user
* - decoding: Set by libavcodec
*/
@@ -433,8 +428,6 @@ typedef struct AVFrame {
/**
* YUV colorspace type.
- * It must be accessed using av_frame_get_colorspace() and
- * av_frame_set_colorspace().
* - encoding: Set by user
* - decoding: Set by libavcodec
*/
@@ -444,8 +437,6 @@ typedef struct AVFrame {
/**
* frame timestamp estimated using various heuristics, in stream time base
- * Code outside libavutil should access this field using:
- * av_frame_get_best_effort_timestamp(frame)
* - encoding: unused
* - decoding: set by libavcodec, read by user.
*/
@@ -453,8 +444,6 @@ typedef struct AVFrame {
/**
* reordered pos from the last AVPacket that has been input into the decoder
- * Code outside libavutil should access this field using:
- * av_frame_get_pkt_pos(frame)
* - encoding: unused
* - decoding: Read by user.
*/
@@ -463,8 +452,6 @@ typedef struct AVFrame {
/**
* duration of the corresponding packet, expressed in
* AVStream->time_base units, 0 if unknown.
- * Code outside libavutil should access this field using:
- * av_frame_get_pkt_duration(frame)
* - encoding: unused
* - decoding: Read by user.
*/
@@ -472,8 +459,6 @@ typedef struct AVFrame {
/**
* metadata.
- * Code outside libavutil should access this field using:
- * av_frame_get_metadata(frame)
* - encoding: Set by user.
* - decoding: Set by libavcodec.
*/
@@ -483,8 +468,6 @@ typedef struct AVFrame {
* decode error flags of the frame, set to a combination of
* FF_DECODE_ERROR_xxx flags if the decoder produced a frame, but there
* were errors during the decoding.
- * Code outside libavutil should access this field using:
- * av_frame_get_decode_error_flags(frame)
* - encoding: unused
* - decoding: set by libavcodec, read by user.
*/
@@ -494,8 +477,6 @@ typedef struct AVFrame {
/**
* number of audio channels, only used for audio.
- * Code outside libavutil should access this field using:
- * av_frame_get_channels(frame)
* - encoding: unused
* - decoding: Read by user.
*/
@@ -503,8 +484,7 @@ typedef struct AVFrame {
/**
* size of the corresponding packet containing the compressed
- * frame. It must be accessed using av_frame_get_pkt_size() and
- * av_frame_set_pkt_size().
+ * frame.
* It is set to a negative value if unknown.
* - encoding: unused
* - decoding: set by libavcodec, read by user.
@@ -514,13 +494,11 @@ typedef struct AVFrame {
#if FF_API_FRAME_QP
/**
* QP table
- * Not to be accessed directly from outside libavutil
*/
attribute_deprecated
int8_t *qscale_table;
/**
* QP store stride
- * Not to be accessed directly from outside libavutil
*/
attribute_deprecated
int qstride;
@@ -528,9 +506,6 @@ typedef struct AVFrame {
attribute_deprecated
int qscale_type;
- /**
- * Not to be accessed directly from outside libavutil
- */
AVBufferRef *qp_table_buf;
#endif
/**
@@ -552,9 +527,8 @@ typedef struct AVFrame {
} AVFrame;
/**
- * Accessors for some AVFrame fields.
- * The position of these field in the structure is not part of the ABI,
- * they should not be accessed directly outside libavutil.
+ * Accessors for some AVFrame fields. These used to be provided for ABI
+ * compatibility, and do not need to be used anymore.
*/
int64_t av_frame_get_best_effort_timestamp(const AVFrame *frame);
void av_frame_set_best_effort_timestamp(AVFrame *frame, int64_t val);