mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-28 12:32:17 +02:00
lavc: add pkt_timebase to allow avcodec to adjust pkt_dts/pts when needed
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
cb59e62abb
commit
0eb0b310c4
@ -2946,6 +2946,15 @@ typedef struct AVCodecContext {
|
|||||||
*/
|
*/
|
||||||
uint64_t vbv_delay;
|
uint64_t vbv_delay;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Timebase in which pkt_dts/pts and AVPacket.dts/pts are.
|
||||||
|
* Code outside libavcodec should access this field using:
|
||||||
|
* avcodec_set_pkt_timebase(avctx)
|
||||||
|
* - encoding unused.
|
||||||
|
* - decodimg set by user
|
||||||
|
*/
|
||||||
|
AVRational pkt_timebase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Current statistics for PTS correction.
|
* Current statistics for PTS correction.
|
||||||
* - decoding: maintained and used by libavcodec, not intended to be used by user apps
|
* - decoding: maintained and used by libavcodec, not intended to be used by user apps
|
||||||
@ -2957,6 +2966,9 @@ typedef struct AVCodecContext {
|
|||||||
int64_t pts_correction_last_dts; /// DTS of the last frame
|
int64_t pts_correction_last_dts; /// DTS of the last frame
|
||||||
} AVCodecContext;
|
} AVCodecContext;
|
||||||
|
|
||||||
|
AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx);
|
||||||
|
void av_codec_set_pkt_timebase (AVCodecContext *avctx, AVRational val);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AVProfile.
|
* AVProfile.
|
||||||
*/
|
*/
|
||||||
|
@ -409,6 +409,7 @@ static const AVOption options[]={
|
|||||||
{"s32p", "32-bit signed integer planar", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_S32P }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
|
{"s32p", "32-bit signed integer planar", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_S32P }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
|
||||||
{"fltp", "32-bit float planar", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_FLTP }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
|
{"fltp", "32-bit float planar", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_FLTP }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
|
||||||
{"dblp", "64-bit double planar", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_DBLP }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
|
{"dblp", "64-bit double planar", 0, AV_OPT_TYPE_CONST, {.dbl = AV_SAMPLE_FMT_DBLP }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
|
||||||
|
{"pkt_timebase", NULL, OFFSET(pkt_timebase), AV_OPT_TYPE_RATIONAL, {.dbl = 0 }, 0, INT_MAX, 0},
|
||||||
{NULL},
|
{NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -726,6 +726,8 @@ MAKE_ACCESSORS(AVFrame, frame, int64_t, pkt_pos)
|
|||||||
MAKE_ACCESSORS(AVFrame, frame, int64_t, channel_layout)
|
MAKE_ACCESSORS(AVFrame, frame, int64_t, channel_layout)
|
||||||
MAKE_ACCESSORS(AVFrame, frame, int, sample_rate)
|
MAKE_ACCESSORS(AVFrame, frame, int, sample_rate)
|
||||||
|
|
||||||
|
MAKE_ACCESSORS(AVCodecContext, codec, AVRational, pkt_timebase)
|
||||||
|
|
||||||
static void avcodec_get_subtitle_defaults(AVSubtitle *sub)
|
static void avcodec_get_subtitle_defaults(AVSubtitle *sub)
|
||||||
{
|
{
|
||||||
memset(sub, 0, sizeof(*sub));
|
memset(sub, 0, sizeof(*sub));
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 54
|
#define LIBAVCODEC_VERSION_MAJOR 54
|
||||||
#define LIBAVCODEC_VERSION_MINOR 35
|
#define LIBAVCODEC_VERSION_MINOR 36
|
||||||
#define LIBAVCODEC_VERSION_MICRO 100
|
#define LIBAVCODEC_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user