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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user