Currently it's exported as AVFrame.pkt_pts, which is also the only use for that field. The reason it is done like this is that lavc used to export various codec-specific "timing" information in AVFrame.pts, which is not done anymore. Since it is confusing to the callers to have a separate field which is used only for decoder timestamps and nothing else, deprecate pkt_pts and use just AVFrame.pts everywhere.tags/n3.2
| @@ -13,6 +13,10 @@ libavutil: 2015-08-28 | |||||
| API changes, most recent first: | API changes, most recent first: | ||||
| 2016-xx-xx - xxxxxxx - lavc 57.24.0 - avcodec.h | |||||
| Decoders now export the frame timestamp as AVFrame.pts. It was | |||||
| previously exported as AVFrame.pkt_pts, which is now deprecated. | |||||
| 2016-xx-xx - xxxxxxx - lavu 55.16.0 - hwcontext.h hwcontext_qsv.h | 2016-xx-xx - xxxxxxx - lavu 55.16.0 - hwcontext.h hwcontext_qsv.h | ||||
| Add AV_HWDEVICE_TYPE_QSV and a new installed header with QSV-specific | Add AV_HWDEVICE_TYPE_QSV and a new installed header with QSV-specific | ||||
| hwcontext definitions. | hwcontext definitions. | ||||
| @@ -326,7 +326,12 @@ static int libschroedinger_decode_frame(AVCodecContext *avctx, | |||||
| framewithpts->frame->components[2].length); | framewithpts->frame->components[2].length); | ||||
| /* Fill frame with current buffer data from Schroedinger. */ | /* Fill frame with current buffer data from Schroedinger. */ | ||||
| avframe->pkt_pts = framewithpts->pts; | |||||
| avframe->pts = framewithpts->pts; | |||||
| #if FF_API_PKT_PTS | |||||
| FF_DISABLE_DEPRECATION_WARNINGS | |||||
| avframe->pkt_pts = avframe->pts; | |||||
| FF_ENABLE_DEPRECATION_WARNINGS | |||||
| #endif | |||||
| avframe->linesize[0] = framewithpts->frame->components[0].stride; | avframe->linesize[0] = framewithpts->frame->components[0].stride; | ||||
| avframe->linesize[1] = framewithpts->frame->components[1].stride; | avframe->linesize[1] = framewithpts->frame->components[1].stride; | ||||
| avframe->linesize[2] = framewithpts->frame->components[2].stride; | avframe->linesize[2] = framewithpts->frame->components[2].stride; | ||||
| @@ -631,7 +631,12 @@ static int ffmal_copy_frame(AVCodecContext *avctx, AVFrame *frame, | |||||
| avctx->pix_fmt, avctx->width, avctx->height); | avctx->pix_fmt, avctx->width, avctx->height); | ||||
| } | } | ||||
| frame->pkt_pts = buffer->pts == MMAL_TIME_UNKNOWN ? AV_NOPTS_VALUE : buffer->pts; | |||||
| frame->pts = buffer->pts == MMAL_TIME_UNKNOWN ? AV_NOPTS_VALUE : buffer->pts; | |||||
| #if FF_API_PKT_PTS | |||||
| FF_DISABLE_DEPRECATION_WARNINGS | |||||
| frame->pkt_pts = frame->pts; | |||||
| FF_ENABLE_DEPRECATION_WARNINGS | |||||
| #endif | |||||
| frame->pkt_dts = AV_NOPTS_VALUE; | frame->pkt_dts = AV_NOPTS_VALUE; | ||||
| done: | done: | ||||
| @@ -352,7 +352,12 @@ static int qsv_decode(AVCodecContext *avctx, QSVContext *q, | |||||
| outsurf = out_frame->surface; | outsurf = out_frame->surface; | ||||
| frame->pkt_pts = frame->pts = outsurf->Data.TimeStamp; | |||||
| #if FF_API_PKT_PTS | |||||
| FF_DISABLE_DEPRECATION_WARNINGS | |||||
| frame->pkt_pts = outsurf->Data.TimeStamp; | |||||
| FF_ENABLE_DEPRECATION_WARNINGS | |||||
| #endif | |||||
| frame->pts = outsurf->Data.TimeStamp; | |||||
| frame->repeat_pict = | frame->repeat_pict = | ||||
| outsurf->Info.PicStruct & MFX_PICSTRUCT_FRAME_TRIPLING ? 4 : | outsurf->Info.PicStruct & MFX_PICSTRUCT_FRAME_TRIPLING ? 4 : | ||||
| @@ -551,11 +551,21 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame) | |||||
| frame->reordered_opaque = avctx->reordered_opaque; | frame->reordered_opaque = avctx->reordered_opaque; | ||||
| if (!pkt) { | if (!pkt) { | ||||
| #if FF_API_PKT_PTS | |||||
| FF_DISABLE_DEPRECATION_WARNINGS | |||||
| frame->pkt_pts = AV_NOPTS_VALUE; | frame->pkt_pts = AV_NOPTS_VALUE; | ||||
| FF_ENABLE_DEPRECATION_WARNINGS | |||||
| #endif | |||||
| frame->pts = AV_NOPTS_VALUE; | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| #if FF_API_PKT_PTS | |||||
| FF_DISABLE_DEPRECATION_WARNINGS | |||||
| frame->pkt_pts = pkt->pts; | frame->pkt_pts = pkt->pts; | ||||
| FF_ENABLE_DEPRECATION_WARNINGS | |||||
| #endif | |||||
| frame->pts = pkt->pts; | |||||
| for (i = 0; i < FF_ARRAY_ELEMS(sd); i++) { | for (i = 0; i < FF_ARRAY_ELEMS(sd); i++) { | ||||
| int size; | int size; | ||||
| @@ -28,7 +28,7 @@ | |||||
| #include "libavutil/version.h" | #include "libavutil/version.h" | ||||
| #define LIBAVCODEC_VERSION_MAJOR 57 | #define LIBAVCODEC_VERSION_MAJOR 57 | ||||
| #define LIBAVCODEC_VERSION_MINOR 23 | |||||
| #define LIBAVCODEC_VERSION_MINOR 24 | |||||
| #define LIBAVCODEC_VERSION_MICRO 0 | #define LIBAVCODEC_VERSION_MICRO 0 | ||||
| #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | ||||
| @@ -397,7 +397,11 @@ int av_frame_copy_props(AVFrame *dst, const AVFrame *src) | |||||
| dst->palette_has_changed = src->palette_has_changed; | dst->palette_has_changed = src->palette_has_changed; | ||||
| dst->sample_rate = src->sample_rate; | dst->sample_rate = src->sample_rate; | ||||
| dst->opaque = src->opaque; | dst->opaque = src->opaque; | ||||
| #if FF_API_PKT_PTS | |||||
| FF_DISABLE_DEPRECATION_WARNINGS | |||||
| dst->pkt_pts = src->pkt_pts; | dst->pkt_pts = src->pkt_pts; | ||||
| FF_ENABLE_DEPRECATION_WARNINGS | |||||
| #endif | |||||
| dst->pkt_dts = src->pkt_dts; | dst->pkt_dts = src->pkt_dts; | ||||
| dst->reordered_opaque = src->reordered_opaque; | dst->reordered_opaque = src->reordered_opaque; | ||||
| dst->quality = src->quality; | dst->quality = src->quality; | ||||
| @@ -210,10 +210,14 @@ typedef struct AVFrame { | |||||
| */ | */ | ||||
| int64_t pts; | int64_t pts; | ||||
| #if FF_API_PKT_PTS | |||||
| /** | /** | ||||
| * PTS copied from the AVPacket that was decoded to produce this frame. | * PTS copied from the AVPacket that was decoded to produce this frame. | ||||
| * @deprecated use the pts field instead | |||||
| */ | */ | ||||
| attribute_deprecated | |||||
| int64_t pkt_pts; | int64_t pkt_pts; | ||||
| #endif | |||||
| /** | /** | ||||
| * DTS copied from the AVPacket that triggered returning this frame. | * DTS copied from the AVPacket that triggered returning this frame. | ||||
| @@ -102,6 +102,9 @@ | |||||
| #ifndef FF_API_VAAPI | #ifndef FF_API_VAAPI | ||||
| #define FF_API_VAAPI (LIBAVUTIL_VERSION_MAJOR < 56) | #define FF_API_VAAPI (LIBAVUTIL_VERSION_MAJOR < 56) | ||||
| #endif | #endif | ||||
| #ifndef FF_API_PKT_PTS | |||||
| #define FF_API_PKT_PTS (LIBAVUTIL_VERSION_MAJOR < 56) | |||||
| #endif | |||||
| /** | /** | ||||