diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index e48033dca094a03e095dcaded946eeb2cb1c536e..9ed6f508568f51a02777f3d64377175655a088aa 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -32,7 +32,7 @@ #include "libavutil/cpu.h" #define LIBAVCODEC_VERSION_MAJOR 52 -#define LIBAVCODEC_VERSION_MINOR 112 +#define LIBAVCODEC_VERSION_MINOR 113 #define LIBAVCODEC_VERSION_MICRO 1 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ @@ -2892,6 +2892,14 @@ typedef struct AVCodecContext { * - decoding: Set by user. */ int thread_safe_callbacks; + + /** + * 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. + */ + uint64_t vbv_delay; } AVCodecContext; /** diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 6167a9b20e135c48647927568897ac8510eca2da..a7f16080f4c2f7a49874582443a2718d2a4371cb 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -1381,6 +1381,7 @@ vbv_retry: s->vbv_delay_ptr[1] = vbv_delay>>5; s->vbv_delay_ptr[2] &= 0x07; s->vbv_delay_ptr[2] |= vbv_delay<<3; + avctx->vbv_delay = vbv_delay*300; } s->total_bits += s->frame_bits; avctx->frame_bits = s->frame_bits;