Commit 0eb0b310 authored by Michael Niedermayer's avatar Michael Niedermayer

lavc: add pkt_timebase to allow avcodec to adjust pkt_dts/pts when needed

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent cb59e62a
...@@ -2946,6 +2946,15 @@ typedef struct AVCodecContext { ...@@ -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 { ...@@ -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[]={ ...@@ -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) ...@@ -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 @@ ...@@ -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, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment