summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorChristophe Massiot <massiot@via.ecp.fr>2011-02-10 16:38:03 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-02-16 02:07:51 +0100
commitb6d0700058aeb6ef2c4655d6738c51ed2eb80e56 (patch)
tree01a48449cbcf1161994f684d9d746f990e23b272 /libavcodec
parentc4c9fb4690a6df0ca37e78206fe528d9cc102c85 (diff)
Pass VBV delay to the calling application via ctx
VBV delay is useful for T-STD compliance in some TS muxers. It is certainly possible to retrieve it by parsing the output of FFmpeg, but getting it from the context makes it simpler and less error-prone. Signed-off-by: Mans Rullgard <mans@mansr.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/avcodec.h10
-rw-r--r--libavcodec/mpegvideo_enc.c1
2 files changed, 10 insertions, 1 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 6fbc433dc4..6af5066a9e 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, \
@@ -2902,6 +2902,14 @@ typedef struct AVCodecContext {
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;
+
+ /**
* Current statistics for PTS correction.
* - decoding: maintained and used by libavcodec, not intended to be used by user apps
* - encoding: unused
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index 6167a9b20e..a7f16080f4 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;