You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
lavc: export the timestamps when decoding in AVFrame.pts
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.
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user