mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-19 05:17:04 +00:00
lavf: add an AVClass to AVStream on next major bump
Also add a function to retrieve that class, analogously to avformat_get_class(). This will be useful for adding an AVOption for dispositions.
This commit is contained in:
parent
85433fb937
commit
ed75a08d36
@ -14,6 +14,10 @@ libavutil: 2021-04-27
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2021-11-xx - xxxxxxxxxx - lavf 59.9.100 - avformat.h
|
||||
Add av_stream_get_class(). Schedule adding AVStream.av_class at libavformat
|
||||
major version 60.
|
||||
|
||||
2021-11-12 - xxxxxxxxxx - lavu 57.8.100 - hwcontext_vulkan.h
|
||||
Added AVFrame.sem_value, AVVulkanDeviceContext.queue_family_encode_index,
|
||||
nb_encode_queues, queue_family_decode_index, and nb_decode_queues.
|
||||
|
@ -909,6 +909,13 @@ typedef struct AVIndexEntry {
|
||||
* sizeof(AVStream) must not be used outside libav*.
|
||||
*/
|
||||
typedef struct AVStream {
|
||||
#if FF_API_AVSTREAM_CLASS
|
||||
/**
|
||||
* A class for @ref avoptions. Set on stream creation.
|
||||
*/
|
||||
const AVClass *av_class;
|
||||
#endif
|
||||
|
||||
int index; /**< stream index in AVFormatContext */
|
||||
/**
|
||||
* Format-specific stream ID.
|
||||
@ -1864,6 +1871,14 @@ void avformat_free_context(AVFormatContext *s);
|
||||
*/
|
||||
const AVClass *avformat_get_class(void);
|
||||
|
||||
/**
|
||||
* Get the AVClass for AVStream. It can be used in combination with
|
||||
* AV_OPT_SEARCH_FAKE_OBJ for examining options.
|
||||
*
|
||||
* @see av_opt_find().
|
||||
*/
|
||||
const AVClass *av_stream_get_class(void);
|
||||
|
||||
/**
|
||||
* Add a new stream to a media file.
|
||||
*
|
||||
|
@ -721,6 +721,17 @@ void avformat_free_context(AVFormatContext *s)
|
||||
av_free(s);
|
||||
}
|
||||
|
||||
static const AVClass stream_class = {
|
||||
.class_name = "AVStream",
|
||||
.item_name = av_default_item_name,
|
||||
.version = LIBAVUTIL_VERSION_INT,
|
||||
};
|
||||
|
||||
const AVClass *av_stream_get_class(void)
|
||||
{
|
||||
return &stream_class;
|
||||
}
|
||||
|
||||
AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c)
|
||||
{
|
||||
FFFormatContext *const si = ffformatcontext(s);
|
||||
@ -745,6 +756,10 @@ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c)
|
||||
return NULL;
|
||||
st = &sti->pub;
|
||||
|
||||
#if FF_API_AVSTREAM_CLASS
|
||||
st->av_class = &stream_class;
|
||||
#endif
|
||||
|
||||
st->codecpar = avcodec_parameters_alloc();
|
||||
if (!st->codecpar)
|
||||
goto fail;
|
||||
|
@ -32,7 +32,7 @@
|
||||
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
|
||||
// Also please add any ticket numbers that you believe might be affected here
|
||||
#define LIBAVFORMAT_VERSION_MAJOR 59
|
||||
#define LIBAVFORMAT_VERSION_MINOR 8
|
||||
#define LIBAVFORMAT_VERSION_MINOR 9
|
||||
#define LIBAVFORMAT_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||
@ -58,6 +58,7 @@
|
||||
#define FF_API_LAVF_PRIV_OPT (LIBAVFORMAT_VERSION_MAJOR < 60)
|
||||
#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 60)
|
||||
#define FF_API_AVIOCONTEXT_WRITTEN (LIBAVFORMAT_VERSION_MAJOR < 60)
|
||||
#define FF_API_AVSTREAM_CLASS (LIBAVFORMAT_VERSION_MAJOR > 59)
|
||||
|
||||
|
||||
#define FF_API_R_FRAME_RATE 1
|
||||
|
Loading…
Reference in New Issue
Block a user