5050 * avcodec_default_get_buffer2 or avcodec_default_get_encode_buffer.
5151 */
5252#define AV_CODEC_CAP_DR1 (1 << 1)
53- #if FF_API_FLAG_TRUNCATED
54- /**
55- * @deprecated Use parsers to always send proper frames.
56- */
57- #define AV_CODEC_CAP_TRUNCATED (1 << 3)
58- #endif
5953/**
6054 * Encoder or decoder requires flushing with NULL input at the end in order to
6155 * give the complete and correct output.
8680 */
8781#define AV_CODEC_CAP_SMALL_LAST_FRAME (1 << 6)
8882
83+ #if FF_API_SUBFRAMES
8984/**
9085 * Codec can output multiple frames per AVPacket
9186 * Normally demuxers return one frame at a time, demuxers which do not do
9893 * as a last resort.
9994 */
10095#define AV_CODEC_CAP_SUBFRAMES (1 << 8)
96+ #endif
97+
10198/**
10299 * Codec is experimental and is thus avoided in favor of non experimental
103100 * encoders
125122 * multithreading-capable external libraries.
126123 */
127124#define AV_CODEC_CAP_OTHER_THREADS (1 << 15)
128- #if FF_API_AUTO_THREADS
129- #define AV_CODEC_CAP_AUTO_THREADS AV_CODEC_CAP_OTHER_THREADS
130- #endif
131125/**
132126 * Audio encoder supports receiving a different number of samples in each call.
133127 */
143137 */
144138#define AV_CODEC_CAP_AVOID_PROBING (1 << 17)
145139
146- #if FF_API_UNUSED_CODEC_CAPS
147- /**
148- * Deprecated and unused. Use AVCodecDescriptor.props instead
149- */
150- #define AV_CODEC_CAP_INTRA_ONLY 0x40000000
151- /**
152- * Deprecated and unused. Use AVCodecDescriptor.props instead
153- */
154- #define AV_CODEC_CAP_LOSSLESS 0x80000000
155- #endif
156-
157140/**
158141 * Codec is backed by a hardware implementation. Typically used to
159142 * identify a non-hwaccel hardware decoder. For information about hwaccels, use
169152#define AV_CODEC_CAP_HYBRID (1 << 19)
170153
171154/**
172- * This codec takes the reordered_opaque field from input AVFrames
173- * and returns it in the corresponding field in AVCodecContext after
174- * encoding.
155+ * This encoder can reorder user opaque values from input AVFrames and return
156+ * them with corresponding output packets.
157+ * @see AV_CODEC_FLAG_COPY_OPAQUE
175158 */
176159#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE (1 << 20)
177160
182165 */
183166#define AV_CODEC_CAP_ENCODER_FLUSH (1 << 21)
184167
168+ /**
169+ * The encoder is able to output reconstructed frame data, i.e. raw frames that
170+ * would be produced by decoding the encoded bitstream.
171+ *
172+ * Reconstructed frame output is enabled by the AV_CODEC_FLAG_RECON_FRAME flag.
173+ */
174+ #define AV_CODEC_CAP_ENCODER_RECON_FRAME (1 << 22)
175+
185176/**
186177 * AVProfile.
187178 */
@@ -214,19 +205,21 @@ typedef struct AVCodec {
214205 */
215206 int capabilities ;
216207 uint8_t max_lowres ; ///< maximum value for lowres supported by the decoder
217- const AVRational * supported_framerates ; ///< array of supported framerates, or NULL if any, array is terminated by {0,0}
218- const enum AVPixelFormat * pix_fmts ; ///< array of supported pixel formats, or NULL if unknown, array is terminated by -1
219- const int * supported_samplerates ; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0
220- const enum AVSampleFormat * sample_fmts ; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1
221- #if FF_API_OLD_CHANNEL_LAYOUT
208+
222209 /**
223- * @deprecated use ch_layouts instead
210+ * Deprecated codec capabilities.
224211 */
225212 attribute_deprecated
226- const uint64_t * channel_layouts ; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
227- #endif
213+ const AVRational * supported_framerates ; ///< @deprecated use avcodec_get_supported_config()
214+ attribute_deprecated
215+ const enum AVPixelFormat * pix_fmts ; ///< @deprecated use avcodec_get_supported_config()
216+ attribute_deprecated
217+ const int * supported_samplerates ; ///< @deprecated use avcodec_get_supported_config()
218+ attribute_deprecated
219+ const enum AVSampleFormat * sample_fmts ; ///< @deprecated use avcodec_get_supported_config()
220+
228221 const AVClass * priv_class ; ///< AVClass for the private context
229- const AVProfile * profiles ; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN }
222+ const AVProfile * profiles ; ///< array of recognized profiles, or NULL if unknown, array is terminated by {AV_PROFILE_UNKNOWN }
230223
231224 /**
232225 * Group name of the codec implementation.
@@ -242,7 +235,9 @@ typedef struct AVCodec {
242235
243236 /**
244237 * Array of supported channel layouts, terminated with a zeroed layout.
238+ * @deprecated use avcodec_get_supported_config()
245239 */
240+ attribute_deprecated
246241 const AVChannelLayout * ch_layouts ;
247242} AVCodec ;
248243
0 commit comments