diff options
author | Anton Khirnov <anton@khirnov.net> | 2022-07-11 11:04:17 +0300 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2022-07-19 13:27:17 +0300 |
commit | 4397f9a5a09d82846bf787295c60f1104cf7de9e (patch) | |
tree | afb4c8b8e6a9ad0d872e71b0edaba3ab576d08a8 /libavutil/frame.c | |
parent | 0a6bb7da55709d82b1cbb12d420db2d1fbb867d7 (diff) |
lavu/frame: add a duration field to AVFrame
The only duration field currently present in AVFrame is pkt_duration,
which is semantically restricted to those frames that are output by
decoders.
Add a new field that stores the frame's duration without regard for how
that frame was produced. Deprecate pkt_duration.
Diffstat (limited to 'libavutil/frame.c')
-rw-r--r-- | libavutil/frame.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libavutil/frame.c b/libavutil/frame.c index 4c16488c66..9c9bab3fcf 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -59,7 +59,12 @@ static void get_frame_defaults(AVFrame *frame) frame->pts = frame->pkt_dts = AV_NOPTS_VALUE; frame->best_effort_timestamp = AV_NOPTS_VALUE; + frame->duration = 0; +#if FF_API_PKT_DURATION +FF_DISABLE_DEPRECATION_WARNINGS frame->pkt_duration = 0; +FF_ENABLE_DEPRECATION_WARNINGS +#endif frame->pkt_pos = -1; frame->pkt_size = -1; frame->time_base = (AVRational){ 0, 1 }; @@ -283,6 +288,7 @@ static int frame_copy_props(AVFrame *dst, const AVFrame *src, int force_copy) dst->crop_left = src->crop_left; dst->crop_right = src->crop_right; dst->pts = src->pts; + dst->duration = src->duration; dst->repeat_pict = src->repeat_pict; dst->interlaced_frame = src->interlaced_frame; dst->top_field_first = src->top_field_first; @@ -292,7 +298,11 @@ static int frame_copy_props(AVFrame *dst, const AVFrame *src, int force_copy) dst->pkt_dts = src->pkt_dts; dst->pkt_pos = src->pkt_pos; dst->pkt_size = src->pkt_size; +#if FF_API_PKT_DURATION +FF_DISABLE_DEPRECATION_WARNINGS dst->pkt_duration = src->pkt_duration; +FF_ENABLE_DEPRECATION_WARNINGS +#endif dst->time_base = src->time_base; dst->reordered_opaque = src->reordered_opaque; dst->quality = src->quality; |