mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
Merge commit '2507b5dd674834be7261772996f47ae3b95cca69'
* commit '2507b5dd674834be7261772996f47ae3b95cca69': mpegvideo_enc: export vbv_delay in side data Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
This commit is contained in:
commit
31ae2308b3
@ -3162,13 +3162,18 @@ typedef struct AVCodecContext {
|
||||
int error_rate;
|
||||
#endif
|
||||
|
||||
#if FF_API_VBV_DELAY
|
||||
/**
|
||||
* VBV delay coded in the last frame (in periods of a 27 MHz clock).
|
||||
* Used for compliant TS muxing.
|
||||
* - encoding: Set by libavcodec.
|
||||
* - decoding: unused.
|
||||
* @deprecated this value is now exported as a part of
|
||||
* AV_PKT_DATA_CPB_PROPERTIES packet side data
|
||||
*/
|
||||
attribute_deprecated
|
||||
uint64_t vbv_delay;
|
||||
#endif
|
||||
|
||||
#if FF_API_SIDEDATA_ONLY_PKT
|
||||
/**
|
||||
|
@ -1948,6 +1948,9 @@ vbv_retry:
|
||||
s->out_format == FMT_MPEG1 &&
|
||||
90000LL * (avctx->rc_buffer_size - 1) <=
|
||||
s->avctx->rc_max_rate * 0xFFFFLL) {
|
||||
AVCPBProperties *props;
|
||||
size_t props_size;
|
||||
|
||||
int vbv_delay, min_delay;
|
||||
double inbits = s->avctx->rc_max_rate *
|
||||
av_q2d(s->avctx->time_base);
|
||||
@ -1974,7 +1977,17 @@ vbv_retry:
|
||||
s->vbv_delay_ptr[1] = vbv_delay >> 5;
|
||||
s->vbv_delay_ptr[2] &= 0x07;
|
||||
s->vbv_delay_ptr[2] |= vbv_delay << 3;
|
||||
|
||||
props = av_cpb_properties_alloc(&props_size);
|
||||
if (!props)
|
||||
return AVERROR(ENOMEM);
|
||||
props->vbv_delay = vbv_delay * 300;
|
||||
|
||||
#if FF_API_VBV_DELAY
|
||||
FF_DISABLE_DEPRECATION_WARNINGS
|
||||
avctx->vbv_delay = vbv_delay * 300;
|
||||
FF_ENABLE_DEPRECATION_WARNINGS
|
||||
#endif
|
||||
}
|
||||
s->total_bits += s->frame_bits;
|
||||
avctx->frame_bits = s->frame_bits;
|
||||
|
@ -197,5 +197,8 @@
|
||||
#ifndef FF_API_RTP_CALLBACK
|
||||
#define FF_API_RTP_CALLBACK (LIBAVCODEC_VERSION_MAJOR < 59)
|
||||
#endif
|
||||
#ifndef FF_API_VBV_DELAY
|
||||
#define FF_API_VBV_DELAY (LIBAVCODEC_VERSION_MAJOR < 59)
|
||||
#endif
|
||||
|
||||
#endif /* AVCODEC_VERSION_H */
|
||||
|
Loading…
Reference in New Issue
Block a user