lavf: deprecate avformat_transfer_internal_stream_timing_info()
And av_stream_get_codec_timebase(). They were both added for ffmpeg CLI, which no longer calls either of them. Furthermore the notion of "internal stream timing info" that needs to be transferred with a special magic API function is fundamentally flawed and should be removed.
This commit is contained in:
parent
10185e2d4c
commit
9fb8d13d56
@ -2,6 +2,10 @@ The last version increases of all libraries were on 2024-03-07
|
|||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2024-07-xx - xxxxxxxxxx - lavf 61 - avformat.h
|
||||||
|
Deprecate avformat_transfer_internal_stream_timing_info()
|
||||||
|
and av_stream_get_codec_timebase() without replacement.
|
||||||
|
|
||||||
2024-07-08 - xxxxxxxxxx - lavc 61.10.100 - packet.h
|
2024-07-08 - xxxxxxxxxx - lavc 61.10.100 - packet.h
|
||||||
Add AV_PKT_DATA_FRAME_CROPPING.
|
Add AV_PKT_DATA_FRAME_CROPPING.
|
||||||
|
|
||||||
|
@ -770,6 +770,7 @@ AVRational av_guess_frame_rate(AVFormatContext *format, AVStream *st, AVFrame *f
|
|||||||
return fr;
|
return fr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if FF_API_INTERNAL_TIMING
|
||||||
int avformat_transfer_internal_stream_timing_info(const AVOutputFormat *ofmt,
|
int avformat_transfer_internal_stream_timing_info(const AVOutputFormat *ofmt,
|
||||||
AVStream *ost, const AVStream *ist,
|
AVStream *ost, const AVStream *ist,
|
||||||
enum AVTimebaseSource copy_tb)
|
enum AVTimebaseSource copy_tb)
|
||||||
@ -849,6 +850,7 @@ AVRational av_stream_get_codec_timebase(const AVStream *st)
|
|||||||
{
|
{
|
||||||
return cffstream(st)->avctx ? cffstream(st)->avctx->time_base : cffstream(st)->transferred_mux_tb;
|
return cffstream(st)->avctx ? cffstream(st)->avctx->time_base : cffstream(st)->transferred_mux_tb;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void avpriv_set_pts_info(AVStream *st, int pts_wrap_bits,
|
void avpriv_set_pts_info(AVStream *st, int pts_wrap_bits,
|
||||||
unsigned int pts_num, unsigned int pts_den)
|
unsigned int pts_num, unsigned int pts_den)
|
||||||
|
@ -3047,6 +3047,7 @@ int avformat_match_stream_specifier(AVFormatContext *s, AVStream *st,
|
|||||||
|
|
||||||
int avformat_queue_attached_pictures(AVFormatContext *s);
|
int avformat_queue_attached_pictures(AVFormatContext *s);
|
||||||
|
|
||||||
|
#if FF_API_INTERNAL_TIMING
|
||||||
enum AVTimebaseSource {
|
enum AVTimebaseSource {
|
||||||
AVFMT_TBCF_AUTO = -1,
|
AVFMT_TBCF_AUTO = -1,
|
||||||
AVFMT_TBCF_DECODER,
|
AVFMT_TBCF_DECODER,
|
||||||
@ -3057,25 +3058,20 @@ enum AVTimebaseSource {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transfer internal timing information from one stream to another.
|
* @deprecated do not call this function
|
||||||
*
|
|
||||||
* This function is useful when doing stream copy.
|
|
||||||
*
|
|
||||||
* @param ofmt target output format for ost
|
|
||||||
* @param ost output stream which needs timings copy and adjustments
|
|
||||||
* @param ist reference input stream to copy timings from
|
|
||||||
* @param copy_tb define from where the stream codec timebase needs to be imported
|
|
||||||
*/
|
*/
|
||||||
|
attribute_deprecated
|
||||||
int avformat_transfer_internal_stream_timing_info(const AVOutputFormat *ofmt,
|
int avformat_transfer_internal_stream_timing_info(const AVOutputFormat *ofmt,
|
||||||
AVStream *ost, const AVStream *ist,
|
AVStream *ost, const AVStream *ist,
|
||||||
enum AVTimebaseSource copy_tb);
|
enum AVTimebaseSource copy_tb);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the internal codec timebase from a stream.
|
* @deprecated do not call this function
|
||||||
*
|
|
||||||
* @param st input stream to extract the timebase from
|
|
||||||
*/
|
*/
|
||||||
|
attribute_deprecated
|
||||||
AVRational av_stream_get_codec_timebase(const AVStream *st);
|
AVRational av_stream_get_codec_timebase(const AVStream *st);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
|
@ -411,7 +411,9 @@ typedef struct FFStream {
|
|||||||
|
|
||||||
const struct AVCodecDescriptor *codec_desc;
|
const struct AVCodecDescriptor *codec_desc;
|
||||||
|
|
||||||
|
#if FF_API_INTERNAL_TIMING
|
||||||
AVRational transferred_mux_tb;
|
AVRational transferred_mux_tb;
|
||||||
|
#endif
|
||||||
} FFStream;
|
} FFStream;
|
||||||
|
|
||||||
static av_always_inline FFStream *ffstream(AVStream *st)
|
static av_always_inline FFStream *ffstream(AVStream *st)
|
||||||
|
@ -318,7 +318,9 @@ AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c)
|
|||||||
sti->pts_buffer[i] = AV_NOPTS_VALUE;
|
sti->pts_buffer[i] = AV_NOPTS_VALUE;
|
||||||
|
|
||||||
st->sample_aspect_ratio = (AVRational) { 0, 1 };
|
st->sample_aspect_ratio = (AVRational) { 0, 1 };
|
||||||
|
#if FF_API_INTERNAL_TIMING
|
||||||
sti->transferred_mux_tb = (AVRational) { 0, 1 };;
|
sti->transferred_mux_tb = (AVRational) { 0, 1 };;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if FF_API_AVSTREAM_SIDE_DATA
|
#if FF_API_AVSTREAM_SIDE_DATA
|
||||||
sti->inject_global_side_data = si->inject_global_side_data;
|
sti->inject_global_side_data = si->inject_global_side_data;
|
||||||
|
@ -47,6 +47,7 @@
|
|||||||
#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 62)
|
#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 62)
|
||||||
|
|
||||||
#define FF_API_GET_DUR_ESTIMATE_METHOD (LIBAVFORMAT_VERSION_MAJOR < 62)
|
#define FF_API_GET_DUR_ESTIMATE_METHOD (LIBAVFORMAT_VERSION_MAJOR < 62)
|
||||||
|
#define FF_API_INTERNAL_TIMING (LIBAVFORMAT_VERSION_MAJOR < 62)
|
||||||
|
|
||||||
#define FF_API_R_FRAME_RATE 1
|
#define FF_API_R_FRAME_RATE 1
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user