#define AVFORMAT_AVFORMAT_H
#define LIBAVFORMAT_VERSION_MAJOR 52
-#define LIBAVFORMAT_VERSION_MINOR 77
+#define LIBAVFORMAT_VERSION_MINOR 79
#define LIBAVFORMAT_VERSION_MICRO 0
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
#define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION)
+/**
+ * Those FF_API_* defines are not part of public API.
+ * They may change, break or disappear at any time.
+ */
+#ifndef FF_API_MAX_STREAMS
+#define FF_API_MAX_STREAMS (LIBAVFORMAT_VERSION_MAJOR < 53)
+#endif
+#ifndef FF_API_OLD_METADATA
+#define FF_API_OLD_METADATA (LIBAVFORMAT_VERSION_MAJOR < 53)
+#endif
+#ifndef FF_API_URL_CLASS
+#define FF_API_URL_CLASS (LIBAVFORMAT_VERSION_MAJOR >= 53)
+#endif
+#ifndef FF_API_URL_RESETBUF
+#define FF_API_URL_RESETBUF (LIBAVFORMAT_VERSION_MAJOR < 53)
+#endif
+#ifndef FF_API_REGISTER_PROTOCOL
+#define FF_API_REGISTER_PROTOCOL (LIBAVFORMAT_VERSION_MAJOR < 53)
+#endif
+
/**
* I return the LIBAVFORMAT_VERSION_INT constant. You got
* a fucking problem with that, douchebag?
/**
* Get a metadata element with matching key.
+ *
* @param prev Set to the previous matching element to find the next.
* If set to NULL the first matching element is returned.
* @param flags Allows case as well as suffix-insensitive comparisons.
AVMetadataTag *
av_metadata_get(AVMetadata *m, const char *key, const AVMetadataTag *prev, int flags);
-#if LIBAVFORMAT_VERSION_MAJOR == 52
+#if FF_API_OLD_METADATA
/**
- * Set the given tag in m, overwriting an existing tag.
- * @param key tag key to add to m (will be av_strduped)
- * @param value tag value to add to m (will be av_strduped)
+ * Set the given tag in *pm, overwriting an existing tag.
+ *
+ * @param pm pointer to a pointer to a metadata struct. If *pm is NULL
+ * a metadata struct is allocated and put in *pm.
+ * @param key tag key to add to *pm (will be av_strduped)
+ * @param value tag value to add to *pm (will be av_strduped)
* @return >= 0 on success otherwise an error code <0
* @deprecated Use av_metadata_set2() instead.
*/
#endif
/**
- * Set the given tag in m, overwriting an existing tag.
- * @param key tag key to add to m (will be av_strduped depending on flags)
- * @param value tag value to add to m (will be av_strduped depending on flags).
+ * Set the given tag in *pm, overwriting an existing tag.
+ *
+ * @param pm pointer to a pointer to a metadata struct. If *pm is NULL
+ * a metadata struct is allocated and put in *pm.
+ * @param key tag key to add to *pm (will be av_strduped depending on flags)
+ * @param value tag value to add to *pm (will be av_strduped depending on flags).
* Passing a NULL value will cause an existing tag to be deleted.
* @return >= 0 on success otherwise an error code <0
*/
* Convert all the metadata sets from ctx according to the source and
* destination conversion tables. If one of the tables is NULL, then
* tags are converted to/from ffmpeg generic tag names.
+ *
* @param d_conv destination tags format conversion table
* @param s_conv source tags format conversion table
*/
-void av_metadata_conv(struct AVFormatContext *ctx,const AVMetadataConv *d_conv,
- const AVMetadataConv *s_conv);
+void av_metadata_conv(struct AVFormatContext *ctx, const AVMetadataConv *d_conv,
+ const AVMetadataConv *s_conv);
/**
* Free all the memory allocated for an AVMetadata struct.
*/
int64_t duration;
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
+#if FF_API_OLD_METADATA
char language[4]; /**< ISO 639-2/B 3-letter language code (empty string if undefined) */
#endif
#if LIBAVFORMAT_VERSION_INT < (53<<16)
int64_t unused[4+1];
+#endif
+#if FF_API_OLD_METADATA
char *filename; /**< source filename of the stream */
#endif
*/
typedef struct AVProgram {
int id;
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
+#if FF_API_OLD_METADATA
char *provider_name; ///< network name for DVB streams
char *name; ///< service name for DVB streams
#endif
int id; ///< unique ID to identify the chapter
AVRational time_base; ///< time base in which the start/end timestamps are specified
int64_t start, end; ///< chapter start/end time in time_base units
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
+#if FF_API_OLD_METADATA
char *title; ///< chapter title
#endif
AVMetadata *metadata;
} AVChapter;
-#if LIBAVFORMAT_VERSION_MAJOR < 53
+#if FF_API_MAX_STREAMS
#define MAX_STREAMS 20
#endif
char filename[1024]; /**< input or output filename */
/* stream info */
int64_t timestamp;
-#if LIBAVFORMAT_VERSION_INT < (53<<16)
+#if FF_API_OLD_METADATA
char title[512];
char author[512];
char copyright[512];
/**
* Return the next frame of a stream.
+ * This function returns what is stored in the file, and does not validate
+ * that what is there are valid frames for the decoder. It will split what is
+ * stored in the file into frames and return one for each call. It will not
+ * omit invalid data between valid frames so as to give the decoder the maximum
+ * information possible for decoding.
*
* The returned packet is valid
* until the next av_read_frame() or until av_close_input_file() and