Commit 2bd21b96 authored by Calvin Walton's avatar Calvin Walton Committed by Gyan Doshi

vf_drawtext: Add pkt_pos, pkt_duration, pkt_size as variables

Changes to vf_drawtext.c written by
Calvin Walton <calvin.walton@kepstin.ca>

Changes to filters.texi written by
greg Luce <electron.rotoscope@gmail.com>
with lots of help from Moritz Barsnick and Gyan

Fixes #7947.
parent b7b6ddd5
...@@ -9002,6 +9002,17 @@ to each other, so you can for example specify @code{y=x/dar}. ...@@ -9002,6 +9002,17 @@ to each other, so you can for example specify @code{y=x/dar}.
@item pict_type @item pict_type
A one character description of the current frame's picture type. A one character description of the current frame's picture type.
@item pkt_pos
The current packet's position in the input file or stream
(in bytes, from the start of the input). A value of -1 indicates
this info is not available.
@item pkt_duration
The current packet's duration, in seconds.
@item pkt_size
The current packet's size (in bytes).
@end table @end table
@anchor{drawtext_expansion} @anchor{drawtext_expansion}
......
...@@ -31,7 +31,8 @@ ...@@ -31,7 +31,8 @@
#define LIBAVFILTER_VERSION_MAJOR 7 #define LIBAVFILTER_VERSION_MAJOR 7
#define LIBAVFILTER_VERSION_MINOR 56 #define LIBAVFILTER_VERSION_MINOR 56
#define LIBAVFILTER_VERSION_MICRO 100 #define LIBAVFILTER_VERSION_MICRO 101
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
LIBAVFILTER_VERSION_MINOR, \ LIBAVFILTER_VERSION_MINOR, \
......
...@@ -88,6 +88,9 @@ static const char *const var_names[] = { ...@@ -88,6 +88,9 @@ static const char *const var_names[] = {
"x", "x",
"y", "y",
"pict_type", "pict_type",
"pkt_pos",
"pkt_duration",
"pkt_size",
NULL NULL
}; };
...@@ -125,6 +128,9 @@ enum var_name { ...@@ -125,6 +128,9 @@ enum var_name {
VAR_X, VAR_X,
VAR_Y, VAR_Y,
VAR_PICT_TYPE, VAR_PICT_TYPE,
VAR_PKT_POS,
VAR_PKT_DURATION,
VAR_PKT_SIZE,
VAR_VARS_NB VAR_VARS_NB
}; };
...@@ -1516,6 +1522,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) ...@@ -1516,6 +1522,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
NAN : frame->pts * av_q2d(inlink->time_base); NAN : frame->pts * av_q2d(inlink->time_base);
s->var_values[VAR_PICT_TYPE] = frame->pict_type; s->var_values[VAR_PICT_TYPE] = frame->pict_type;
s->var_values[VAR_PKT_POS] = frame->pkt_pos;
s->var_values[VAR_PKT_DURATION] = frame->pkt_duration * av_q2d(inlink->time_base);
s->var_values[VAR_PKT_SIZE] = frame->pkt_size;
s->metadata = frame->metadata; s->metadata = frame->metadata;
draw_text(ctx, frame, frame->width, frame->height); draw_text(ctx, frame, frame->width, frame->height);
......
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