avformat: Improve data streams/codec support
This adds data codec/stream handling where previously there was only audio/video/subtitles Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
ba97cf2c45
commit
a47c9331ef
@ -551,6 +551,7 @@ typedef struct AVOutputFormat {
|
|||||||
* @see avdevice_capabilities_free() for more details.
|
* @see avdevice_capabilities_free() for more details.
|
||||||
*/
|
*/
|
||||||
int (*free_device_capabilities)(struct AVFormatContext *s, struct AVDeviceCapabilitiesQuery *caps);
|
int (*free_device_capabilities)(struct AVFormatContext *s, struct AVDeviceCapabilitiesQuery *caps);
|
||||||
|
enum AVCodecID data_codec; /**< default data codec */
|
||||||
} AVOutputFormat;
|
} AVOutputFormat;
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
@ -1704,6 +1705,14 @@ typedef struct AVFormatContext {
|
|||||||
*/
|
*/
|
||||||
AVCodec *subtitle_codec;
|
AVCodec *subtitle_codec;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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).
|
||||||
|
*/
|
||||||
|
AVCodec *data_codec;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of bytes to be written as padding in a metadata header.
|
* Number of bytes to be written as padding in a metadata header.
|
||||||
* Demuxing: Unused.
|
* Demuxing: Unused.
|
||||||
@ -1755,6 +1764,12 @@ typedef struct AVFormatContext {
|
|||||||
* - demuxing: Set by user.
|
* - demuxing: Set by user.
|
||||||
*/
|
*/
|
||||||
uint8_t *dump_separator;
|
uint8_t *dump_separator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Forced Data codec_id.
|
||||||
|
* Demuxing: Set by user.
|
||||||
|
*/
|
||||||
|
enum AVCodecID data_codec_id;
|
||||||
} AVFormatContext;
|
} AVFormatContext;
|
||||||
|
|
||||||
int av_format_get_probe_score(const AVFormatContext *s);
|
int av_format_get_probe_score(const AVFormatContext *s);
|
||||||
@ -1764,6 +1779,8 @@ AVCodec * av_format_get_audio_codec(const AVFormatContext *s);
|
|||||||
void av_format_set_audio_codec(AVFormatContext *s, AVCodec *c);
|
void av_format_set_audio_codec(AVFormatContext *s, AVCodec *c);
|
||||||
AVCodec * av_format_get_subtitle_codec(const AVFormatContext *s);
|
AVCodec * av_format_get_subtitle_codec(const AVFormatContext *s);
|
||||||
void av_format_set_subtitle_codec(AVFormatContext *s, AVCodec *c);
|
void av_format_set_subtitle_codec(AVFormatContext *s, AVCodec *c);
|
||||||
|
AVCodec * av_format_get_data_codec(const AVFormatContext *s);
|
||||||
|
void av_format_set_data_codec(AVFormatContext *s, AVCodec *c);
|
||||||
int av_format_get_metadata_header_padding(const AVFormatContext *s);
|
int av_format_get_metadata_header_padding(const AVFormatContext *s);
|
||||||
void av_format_set_metadata_header_padding(AVFormatContext *s, int c);
|
void av_format_set_metadata_header_padding(AVFormatContext *s, int c);
|
||||||
void * av_format_get_opaque(const AVFormatContext *s);
|
void * av_format_get_opaque(const AVFormatContext *s);
|
||||||
|
@ -151,6 +151,8 @@ enum AVCodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name,
|
|||||||
return fmt->audio_codec;
|
return fmt->audio_codec;
|
||||||
else if (type == AVMEDIA_TYPE_SUBTITLE)
|
else if (type == AVMEDIA_TYPE_SUBTITLE)
|
||||||
return fmt->subtitle_codec;
|
return fmt->subtitle_codec;
|
||||||
|
else if (type == AVMEDIA_TYPE_DATA)
|
||||||
|
return fmt->data_codec;
|
||||||
else
|
else
|
||||||
return AV_CODEC_ID_NONE;
|
return AV_CODEC_ID_NONE;
|
||||||
}
|
}
|
||||||
|
@ -110,6 +110,7 @@ MAKE_ACCESSORS(AVStream, stream, char *, recommended_encoder_configuration)
|
|||||||
MAKE_ACCESSORS(AVFormatContext, format, AVCodec *, video_codec)
|
MAKE_ACCESSORS(AVFormatContext, format, AVCodec *, video_codec)
|
||||||
MAKE_ACCESSORS(AVFormatContext, format, AVCodec *, audio_codec)
|
MAKE_ACCESSORS(AVFormatContext, format, AVCodec *, audio_codec)
|
||||||
MAKE_ACCESSORS(AVFormatContext, format, AVCodec *, subtitle_codec)
|
MAKE_ACCESSORS(AVFormatContext, format, AVCodec *, subtitle_codec)
|
||||||
|
MAKE_ACCESSORS(AVFormatContext, format, AVCodec *, data_codec)
|
||||||
MAKE_ACCESSORS(AVFormatContext, format, int, metadata_header_padding)
|
MAKE_ACCESSORS(AVFormatContext, format, int, metadata_header_padding)
|
||||||
MAKE_ACCESSORS(AVFormatContext, format, void *, opaque)
|
MAKE_ACCESSORS(AVFormatContext, format, void *, opaque)
|
||||||
MAKE_ACCESSORS(AVFormatContext, format, av_format_control_message, control_message_cb)
|
MAKE_ACCESSORS(AVFormatContext, format, av_format_control_message, control_message_cb)
|
||||||
|
@ -30,8 +30,8 @@
|
|||||||
#include "libavutil/version.h"
|
#include "libavutil/version.h"
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_MAJOR 56
|
#define LIBAVFORMAT_VERSION_MAJOR 56
|
||||||
#define LIBAVFORMAT_VERSION_MINOR 18
|
#define LIBAVFORMAT_VERSION_MINOR 19
|
||||||
#define LIBAVFORMAT_VERSION_MICRO 101
|
#define LIBAVFORMAT_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||||
LIBAVFORMAT_VERSION_MINOR, \
|
LIBAVFORMAT_VERSION_MINOR, \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user