mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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>
This commit is contained in:
parent
71f88b1f38
commit
55bad0c602
@ -32,7 +32,7 @@
|
|||||||
#include "libavutil/cpu.h"
|
#include "libavutil/cpu.h"
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 52
|
#define LIBAVCODEC_VERSION_MAJOR 52
|
||||||
#define LIBAVCODEC_VERSION_MINOR 112
|
#define LIBAVCODEC_VERSION_MINOR 113
|
||||||
#define LIBAVCODEC_VERSION_MICRO 1
|
#define LIBAVCODEC_VERSION_MICRO 1
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||||
@ -2892,6 +2892,14 @@ typedef struct AVCodecContext {
|
|||||||
* - decoding: Set by user.
|
* - decoding: Set by user.
|
||||||
*/
|
*/
|
||||||
int thread_safe_callbacks;
|
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;
|
} AVCodecContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1381,6 +1381,7 @@ vbv_retry:
|
|||||||
s->vbv_delay_ptr[1] = vbv_delay>>5;
|
s->vbv_delay_ptr[1] = vbv_delay>>5;
|
||||||
s->vbv_delay_ptr[2] &= 0x07;
|
s->vbv_delay_ptr[2] &= 0x07;
|
||||||
s->vbv_delay_ptr[2] |= vbv_delay<<3;
|
s->vbv_delay_ptr[2] |= vbv_delay<<3;
|
||||||
|
avctx->vbv_delay = vbv_delay*300;
|
||||||
}
|
}
|
||||||
s->total_bits += s->frame_bits;
|
s->total_bits += s->frame_bits;
|
||||||
avctx->frame_bits = s->frame_bits;
|
avctx->frame_bits = s->frame_bits;
|
||||||
|
Loading…
Reference in New Issue
Block a user