@@ -299,7 +299,8 @@ timestamp expressed in seconds, NAN if the input timestamp is unknown
sequential number of the input frame, starting from 0
@item pos
-the position in the file of the input frame, NAN if unknown
+the position in the file of the input frame, NAN if unknown; deprecated, do
+not use
@item w
@item h
@@ -3005,10 +3006,6 @@ depends on the filter input pad, and is usually 1/@var{sample_rate}.
@item pts_time
The presentation timestamp of the input frame in seconds.
-@item pos
-position of the frame in the input stream, -1 if this information in
-unavailable and/or meaningless (for example in case of synthetic audio)
-
@item fmt
The sample format.
@@ -7306,7 +7303,7 @@ number of samples consumed by the filter
@item nb_samples
number of samples in the current frame
@item pos
-original frame position in the file
+original frame position in the file; deprecated, do not use
@item pts
frame PTS
@item sample_rate
@@ -10428,7 +10425,8 @@ pixel format "yuv422p" @var{hsub} is 2 and @var{vsub} is 1.
The number of the input frame, starting from 0.
@item pos
-the position in the file of the input frame, NAN if unknown
+the position in the file of the input frame, NAN if unknown; deprecated,
+do not use
@item t
The timestamp expressed in seconds. It's NAN if the input timestamp is unknown.
@@ -12772,7 +12770,7 @@ frame count of the input frame starting from 0
@item pos
byte position of the corresponding packet in the input file, NAN if
-unspecified
+unspecified; deprecated, do not use
@item r
frame rate of the input video, NAN if the input frame rate is unknown
@@ -18151,7 +18149,8 @@ format. For example for the pixel format "yuv422p" @var{hsub} is 2 and
the number of input frame, starting from 0
@item pos
-the position in the file of the input frame, NAN if unknown
+the position in the file of the input frame, NAN if unknown; deprecated,
+do not use
@item t
The timestamp, expressed in seconds. It's NAN if the input timestamp is unknown.
@@ -18160,7 +18159,7 @@ The timestamp, expressed in seconds. It's NAN if the input timestamp is unknown.
This filter also supports the @ref{framesync} options.
-Note that the @var{n}, @var{pos}, @var{t} variables are available only
+Note that the @var{n}, @var{t} variables are available only
when evaluation is done @emph{per frame}, and will evaluate to NAN
when @option{eval} is set to @samp{init}.
@@ -18315,6 +18314,7 @@ The ordinal index of the main input frame, starting from 0.
@item pos
The byte offset position in the file of the main input frame, NAN if unknown.
+Deprecated, do not use.
@item t
The timestamp of the main input frame, expressed in seconds, NAN if unknown.
@@ -20199,6 +20199,7 @@ seconds. Only available with @code{eval=frame}.
The position (byte offset) of the frame in the input stream, or NaN if
this information is unavailable and/or meaningless (for example in case of synthetic video).
Only available with @code{eval=frame}.
+Deprecated, do not use.
@end table
@subsection Examples
@@ -20531,6 +20532,7 @@ seconds. Only available with @code{eval=frame}.
The position (byte offset) of the frame in the input stream, or NaN if
this information is unavailable and/or meaningless (for example in case of synthetic video).
Only available with @code{eval=frame}.
+Deprecated, do not use.
@end table
@section scale2ref
@@ -21154,10 +21156,6 @@ time base units. The time base unit depends on the filter input pad.
The Presentation TimeStamp of the input frame, expressed as a number of
seconds.
-@item pos
-The position of the frame in the input stream, or -1 if this information is
-unavailable and/or meaningless (for example in case of synthetic video).
-
@item fmt
The pixel format name.
@@ -22238,7 +22236,8 @@ The number of the input frame, starting from 0.
The timestamp expressed in seconds. It's NAN if the input timestamp is unknown.
@item pos
-the position in the file of the input frame, NAN if unknown
+the position in the file of the input frame, NAN if unknown; deprecated,
+do not use
@end table
@subsection Commands
@@ -28910,7 +28909,7 @@ This is 1 if the filtered frame is a key-frame, 0 otherwise.
@item pos
the position in the file of the filtered frame, -1 if the information
-is not available (e.g. for synthetic video)
+is not available (e.g. for synthetic video); deprecated, do not use
@item scene @emph{(video only)}
value between 0 and 1 to indicate a new scene; a low value reflects a low
@@ -29100,7 +29099,7 @@ constants:
@table @option
@item POS
Original position in the file of the frame, or undefined if undefined
-for the current frame.
+for the current frame. Deprecated, do not use.
@item PTS
The presentation timestamp in input.
@@ -29248,7 +29247,7 @@ the time in seconds of the current frame
@item POS
original position in the file of the frame, or undefined if undefined
-for the current frame
+for the current frame; deprecated, do not use
@item PREV_INPTS
The previous input PTS.
@@ -938,7 +938,11 @@ static int set_output_frame(AVCodecContext *avctx, AVFrame *frame,
frame->pts = pkt->pts;
frame->pkt_dts = pkt->dts;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
frame->pkt_size = pkt->size;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
*got_frame = 1;
@@ -549,9 +549,13 @@ static inline CopyRet copy_frame(AVCodecContext *avctx,
frame->pts = pkt_pts;
- frame->pkt_pos = -1;
frame->duration = 0;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
+ frame->pkt_pos = -1;
frame->pkt_size = -1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (!priv->need_second_field) {
*got_frame = 1;
@@ -623,9 +623,13 @@ static int cuvid_output_frame(AVCodecContext *avctx, AVFrame *frame)
/* CUVIDs opaque reordering breaks the internal pkt logic.
* So set pkt_pts and clear all the other pkt_ fields.
*/
- frame->pkt_pos = -1;
frame->duration = 0;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
+ frame->pkt_pos = -1;
frame->pkt_size = -1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
frame->interlaced_frame = !parsed_frame.is_deinterlacing && !parsed_frame.dispinfo.progressive_frame;
@@ -287,8 +287,12 @@ static inline int decode_simple_internal(AVCodecContext *avctx, AVFrame *frame,
if (!(codec->caps_internal & FF_CODEC_CAP_SETS_PKT_DTS))
frame->pkt_dts = pkt->dts;
if (avctx->codec->type == AVMEDIA_TYPE_VIDEO) {
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
if(!avctx->has_b_frames)
frame->pkt_pos = pkt->pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
//FIXME these should be under if(!avctx->has_b_frames)
/* get_buffer is supposed to set frame parameters */
if (!(avctx->codec->capabilities & AV_CODEC_CAP_DR1)) {
@@ -1312,9 +1316,13 @@ int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx,
};
frame->pts = pkt->pts;
- frame->pkt_pos = pkt->pos;
frame->duration = pkt->duration;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
+ frame->pkt_pos = pkt->pos;
frame->pkt_size = pkt->size;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
for (int i = 0; i < FF_ARRAY_ELEMS(sd); i++) {
size_t size;
@@ -1355,7 +1363,11 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame)
int ret = ff_decode_frame_props_from_pkt(avctx, frame, pkt);
if (ret < 0)
return ret;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
frame->pkt_size = pkt->stream_index;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
#if FF_API_REORDERED_OPAQUE
FF_DISABLE_DEPRECATION_WARNINGS
@@ -79,8 +79,12 @@ static void uavs3d_output_callback(uavs3d_io_frm_t *dec_frame) {
frm->pts = dec_frame->pts;
frm->pkt_dts = dec_frame->dts;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
frm->pkt_pos = dec_frame->pkt_pos;
frm->pkt_size = dec_frame->pkt_size;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
#if FF_API_FRAME_PICTURE_NUMBER
FF_DISABLE_DEPRECATION_WARNINGS
frm->coded_picture_number = dec_frame->dtr;
@@ -175,8 +179,12 @@ static int libuavs3d_decode_frame(AVCodecContext *avctx, AVFrame *frm,
uavs3d_io_frm_t *frm_dec = &h->dec_frame;
buf_end = buf + buf_size;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
frm_dec->pkt_pos = avpkt->pos;
frm_dec->pkt_size = avpkt->size;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
while (!finish) {
int bs_len;
@@ -343,7 +343,11 @@ static int create_subcc_packet(AVFormatContext *avctx, AVFrame *frame,
memcpy(lavfi->subcc_packet.data, sd->data, sd->size);
lavfi->subcc_packet.stream_index = stream_idx;
lavfi->subcc_packet.pts = frame->pts;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
lavfi->subcc_packet.pos = frame->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
return 0;
}
@@ -450,7 +454,11 @@ static int lavfi_read_packet(AVFormatContext *avctx, AVPacket *pkt)
pkt->stream_index = stream_idx;
pkt->pts = frame->pts;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
pkt->pos = frame->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (st->codecpar->codec_type != AVMEDIA_TYPE_VIDEO)
av_frame_free(&frame);
@@ -213,12 +213,11 @@ FF_ENABLE_DEPRECATION_WARNINGS
av_channel_layout_describe(&buf->ch_layout, chlayout_str, sizeof(chlayout_str));
av_log(ctx, AV_LOG_INFO,
- "n:%"PRId64" pts:%s pts_time:%s pos:%"PRId64" "
+ "n:%"PRId64" pts:%s pts_time:%s "
"fmt:%s channels:%d chlayout:%s rate:%d nb_samples:%d "
"checksum:%08"PRIX32" ",
inlink->frame_count_out,
av_ts2str(buf->pts), av_ts2timestr(buf->pts, &inlink->time_base),
- buf->pkt_pos,
av_get_sample_fmt_name(buf->format), buf->ch_layout.nb_channels, chlayout_str,
buf->sample_rate, buf->nb_samples,
checksum);
@@ -48,7 +48,9 @@ static const char *const var_names[] = {
"nb_channels", ///< number of channels
"nb_consumed_samples", ///< number of samples consumed by the filter
"nb_samples", ///< number of samples in the current frame
+#if FF_API_FRAME_PKT
"pos", ///< position in the file of the frame
+#endif
"pts", ///< frame presentation timestamp
"sample_rate", ///< sample rate
"startpts", ///< PTS at start of stream
@@ -288,7 +290,9 @@ static int config_output(AVFilterLink *outlink)
vol->var_values[VAR_N] =
vol->var_values[VAR_NB_CONSUMED_SAMPLES] =
vol->var_values[VAR_NB_SAMPLES] =
+#if FF_API_FRAME_PKT
vol->var_values[VAR_POS] =
+#endif
vol->var_values[VAR_PTS] =
vol->var_values[VAR_STARTPTS] =
vol->var_values[VAR_STARTT] =
@@ -330,7 +334,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
AVFilterLink *outlink = inlink->dst->outputs[0];
int nb_samples = buf->nb_samples;
AVFrame *out_buf;
- int64_t pos;
AVFrameSideData *sd = av_frame_get_side_data(buf, AV_FRAME_DATA_REPLAYGAIN);
int ret;
@@ -380,8 +383,15 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
vol->var_values[VAR_T ] = TS2T(buf->pts, inlink->time_base);
vol->var_values[VAR_N ] = inlink->frame_count_out;
- pos = buf->pkt_pos;
- vol->var_values[VAR_POS] = pos == -1 ? NAN : pos;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
+ {
+ int64_t pos;
+ pos = buf->pkt_pos;
+ vol->var_values[VAR_POS] = pos == -1 ? NAN : pos;
+ }
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (vol->eval_mode == EVAL_MODE_FRAME)
set_volume(ctx);
@@ -272,7 +272,11 @@ static int request_frame(AVFilterLink *outlink)
memcpy(samplesref->data[0], flite->wave_samples,
nb_samples * flite->wave->num_channels * 2);
samplesref->pts = flite->pts;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
samplesref->pkt_pos = -1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
samplesref->sample_rate = flite->wave->sample_rate;
flite->pts += nb_samples;
flite->wave_samples += nb_samples * flite->wave->num_channels;
@@ -487,7 +487,9 @@ static const char *const var_names[] = {
enum {
VAR_T,
VAR_N,
+#if FF_API_FRAME_PKT
VAR_POS,
+#endif
VAR_W,
VAR_H,
VAR_VARS_NB
@@ -1464,7 +1466,11 @@ int ff_inlink_evaluate_timeline_at_frame(AVFilterLink *link, const AVFrame *fram
{
AVFilterContext *dstctx = link->dst;
int64_t pts = frame->pts;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
int64_t pos = frame->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (!dstctx->enable_str)
return 1;
@@ -1473,7 +1479,9 @@ int ff_inlink_evaluate_timeline_at_frame(AVFilterLink *link, const AVFrame *fram
dstctx->var_values[VAR_T] = pts == AV_NOPTS_VALUE ? NAN : pts * av_q2d(link->time_base);
dstctx->var_values[VAR_W] = link->w;
dstctx->var_values[VAR_H] = link->h;
+#if FF_API_FRAME_PKT
dstctx->var_values[VAR_POS] = pos == -1 ? NAN : pos;
+#endif
return fabs(av_expr_eval(dstctx->enable, dstctx->var_values, NULL)) >= 0.5;
}
@@ -134,7 +134,9 @@ enum var_name {
VAR_PREV_SELECTED_N,
VAR_KEY,
+#if FF_API_FRAME_PKT
VAR_POS,
+#endif
VAR_SCENE,
@@ -339,7 +341,11 @@ static void select_frame(AVFilterContext *ctx, AVFrame *frame)
select->var_values[VAR_N ] = inlink->frame_count_out;
select->var_values[VAR_PTS] = TS2D(frame->pts);
select->var_values[VAR_T ] = TS2D(frame->pts) * av_q2d(inlink->time_base);
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
select->var_values[VAR_POS] = frame->pkt_pos == -1 ? NAN : frame->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
select->var_values[VAR_KEY] = frame->key_frame;
select->var_values[VAR_CONCATDEC_SELECT] = get_concatdec_select(frame, av_rescale_q(frame->pts, inlink->time_base, AV_TIME_BASE_Q));
@@ -43,7 +43,9 @@
static const char *const var_names[] = {
"N", /* frame number */
"T", /* frame time in seconds */
+#if FF_API_FRAME_PKT
"POS", /* original position in the file of the frame */
+#endif
"PTS", /* frame pts */
"TS", /* interval start time in seconds */
"TE", /* interval end time in seconds */
@@ -56,7 +58,9 @@ static const char *const var_names[] = {
enum var_name {
VAR_N,
VAR_T,
+#if FF_API_FRAME_PKT
VAR_POS,
+#endif
VAR_PTS,
VAR_TS,
VAR_TE,
@@ -531,7 +535,11 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *ref)
double current = TS2T(ref->pts, inlink->time_base);
var_values[VAR_N] = inlink->frame_count_in;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
var_values[VAR_POS] = ref->pkt_pos == -1 ? NAN : ref->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
var_values[VAR_PTS] = TS2D(ref->pts);
var_values[VAR_T] = current;
var_values[VAR_TS] = start;
@@ -45,7 +45,9 @@ static const char *const var_names[] = {
"N", ///< frame / sample number (starting at zero)
"NB_CONSUMED_SAMPLES", ///< number of samples consumed by the filter (only audio)
"NB_SAMPLES", ///< number of samples in the current frame (only audio)
+#if FF_API_FRAME_PKT
"POS", ///< original position in the file of the frame
+#endif
"PREV_INPTS", ///< previous input PTS
"PREV_INT", ///< previous input time in seconds
"PREV_OUTPTS", ///< previous output PTS
@@ -70,7 +72,9 @@ enum var_name {
VAR_N,
VAR_NB_CONSUMED_SAMPLES,
VAR_NB_SAMPLES,
+#if FF_API_FRAME_PKT
VAR_POS,
+#endif
VAR_PREV_INPTS,
VAR_PREV_INT,
VAR_PREV_OUTPTS,
@@ -161,7 +165,11 @@ static double eval_pts(SetPTSContext *setpts, AVFilterLink *inlink, AVFrame *fra
}
setpts->var_values[VAR_PTS ] = TS2D(pts);
setpts->var_values[VAR_T ] = TS2T(pts, inlink->time_base);
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
setpts->var_values[VAR_POS ] = !frame || frame->pkt_pos == -1 ? NAN : frame->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
setpts->var_values[VAR_RTCTIME ] = av_gettime();
if (frame) {
@@ -187,11 +195,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
frame->pts = D2TS(d);
av_log(inlink->dst, AV_LOG_TRACE,
- "N:%"PRId64" PTS:%s T:%f POS:%s",
+ "N:%"PRId64" PTS:%s T:%f",
(int64_t)setpts->var_values[VAR_N],
d2istr(setpts->var_values[VAR_PTS]),
- setpts->var_values[VAR_T],
- d2istr(setpts->var_values[VAR_POS]));
+ setpts->var_values[VAR_T]);
switch (inlink->type) {
case AVMEDIA_TYPE_VIDEO:
av_log(inlink->dst, AV_LOG_TRACE, " INTERLACED:%"PRId64,
@@ -242,10 +249,9 @@ static int activate(AVFilterContext *ctx)
if (ff_inlink_acknowledge_status(inlink, &status, &pts)) {
double d = eval_pts(setpts, inlink, NULL, pts);
- av_log(ctx, AV_LOG_TRACE, "N:EOF PTS:%s T:%f POS:%s -> PTS:%s T:%f\n",
+ av_log(ctx, AV_LOG_TRACE, "N:EOF PTS:%s T:%f -> PTS:%s T:%f\n",
d2istr(setpts->var_values[VAR_PTS]),
setpts->var_values[VAR_T],
- d2istr(setpts->var_values[VAR_POS]),
d2istr(d), TS2T(d, inlink->time_base));
ff_outlink_set_status(outlink, status, D2TS(d));
return 0;
@@ -50,7 +50,9 @@ static const char *const var_names[] = {
"x",
"y",
"n", ///< number of frame
+#if FF_API_FRAME_PKT
"pos", ///< position in the file
+#endif
"t", ///< timestamp expressed in seconds
NULL
};
@@ -68,7 +70,9 @@ enum var_name {
VAR_X,
VAR_Y,
VAR_N,
+#if FF_API_FRAME_PKT
VAR_POS,
+#endif
VAR_T,
VAR_VARS_NB
};
@@ -145,7 +149,9 @@ static int config_input(AVFilterLink *link)
s->var_values[VAR_OUT_H] = s->var_values[VAR_OH] = NAN;
s->var_values[VAR_N] = 0;
s->var_values[VAR_T] = NAN;
+#if FF_API_FRAME_PKT
s->var_values[VAR_POS] = NAN;
+#endif
av_image_fill_max_pixsteps(s->max_step, NULL, pix_desc);
@@ -257,8 +263,12 @@ static int filter_frame(AVFilterLink *link, AVFrame *frame)
s->var_values[VAR_N] = link->frame_count_out;
s->var_values[VAR_T] = frame->pts == AV_NOPTS_VALUE ?
NAN : frame->pts * av_q2d(link->time_base);
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
s->var_values[VAR_POS] = frame->pkt_pos == -1 ?
NAN : frame->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
s->var_values[VAR_X] = av_expr_eval(s->x_pexpr, s->var_values, NULL);
s->var_values[VAR_Y] = av_expr_eval(s->y_pexpr, s->var_values, NULL);
/* It is necessary if x is expressed from y */
@@ -280,8 +290,8 @@ static int filter_frame(AVFilterLink *link, AVFrame *frame)
s->y &= ~((1 << s->vsub) - 1);
}
- av_log(ctx, AV_LOG_TRACE, "n:%d t:%f pos:%f x:%d y:%d x+w:%d y+h:%d\n",
- (int)s->var_values[VAR_N], s->var_values[VAR_T], s->var_values[VAR_POS],
+ av_log(ctx, AV_LOG_TRACE, "n:%d t:%f x:%d y:%d x+w:%d y+h:%d\n",
+ (int)s->var_values[VAR_N], s->var_values[VAR_T],
s->x, s->y, s->x+s->w, s->y+s->h);
if (desc->flags & AV_PIX_FMT_FLAG_HWACCEL) {
@@ -90,11 +90,15 @@ static const char *const var_names[] = {
"x",
"y",
"pict_type",
+#if FF_API_FRAME_PKT
"pkt_pos",
+#endif
#if FF_API_PKT_DURATION
"pkt_duration",
#endif
+#if FF_API_FRAME_PKT
"pkt_size",
+#endif
"duration",
NULL
};
@@ -133,11 +137,15 @@ enum var_name {
VAR_X,
VAR_Y,
VAR_PICT_TYPE,
+#if FF_API_FRAME_PKT
VAR_PKT_POS,
+#endif
#if FF_API_PKT_DURATION
VAR_PKT_DURATION,
#endif
+#if FF_API_FRAME_PKT
VAR_PKT_SIZE,
+#endif
VAR_DURATION,
VAR_VARS_NB
};
@@ -1654,7 +1662,12 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
NAN : frame->pts * av_q2d(inlink->time_base);
s->var_values[VAR_PICT_TYPE] = frame->pict_type;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
s->var_values[VAR_PKT_POS] = frame->pkt_pos;
+ s->var_values[VAR_PKT_SIZE] = frame->pkt_size;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
#if FF_API_PKT_DURATION
FF_DISABLE_DEPRECATION_WARNINGS
s->var_values[VAR_PKT_DURATION] = frame->pkt_duration * av_q2d(inlink->time_base);
@@ -1665,7 +1678,6 @@ FF_DISABLE_DEPRECATION_WARNINGS
FF_ENABLE_DEPRECATION_WARNINGS
#endif
s->var_values[VAR_DURATION] = frame->duration * av_q2d(inlink->time_base);
- s->var_values[VAR_PKT_SIZE] = frame->pkt_size;
s->metadata = frame->metadata;
@@ -221,7 +221,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
AVFilterLink *outlink = inlink->dst->outputs[0];
EQContext *eq = ctx->priv;
AVFrame *out;
- int64_t pos = in->pkt_pos;
const AVPixFmtDescriptor *desc;
int i;
@@ -235,7 +234,14 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
desc = av_pix_fmt_desc_get(inlink->format);
eq->var_values[VAR_N] = inlink->frame_count_out;
- eq->var_values[VAR_POS] = pos == -1 ? NAN : pos;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
+ {
+ int64_t pos = in->pkt_pos;
+ eq->var_values[VAR_POS] = pos == -1 ? NAN : pos;
+ }
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
eq->var_values[VAR_T] = TS2T(in->pts, inlink->time_base);
if (eq->eval_mode == EVAL_MODE_FRAME) {
@@ -30,7 +30,9 @@
static const char *const var_names[] = {
"n", // frame count
+#if FF_API_FRAME_PKT
"pos", // frame position
+#endif
"r", // frame rate
"t", // timestamp expressed in seconds
NULL
@@ -38,7 +40,9 @@ static const char *const var_names[] = {
enum var_name {
VAR_N,
+#if FF_API_FRAME_PKT
VAR_POS,
+#endif
VAR_R,
VAR_T,
VAR_NB
@@ -55,7 +55,9 @@ static const char *const var_names[] = {
"x",
"y",
"n", ///< number of frame
+#if FF_API_FRAME_PKT
"pos", ///< position in the file
+#endif
"t", ///< timestamp expressed in seconds
NULL
};
@@ -290,7 +292,9 @@ static int config_input_overlay(AVFilterLink *inlink)
s->var_values[VAR_Y] = NAN;
s->var_values[VAR_N] = 0;
s->var_values[VAR_T] = NAN;
+#if FF_API_FRAME_PKT
s->var_values[VAR_POS] = NAN;
+#endif
if ((ret = set_expr(&s->x_pexpr, s->x_expr, "x", ctx)) < 0 ||
(ret = set_expr(&s->y_pexpr, s->y_expr, "y", ctx)) < 0)
@@ -1007,12 +1011,18 @@ static int do_blend(FFFrameSync *fs)
return ff_filter_frame(ctx->outputs[0], mainpic);
if (s->eval_mode == EVAL_MODE_FRAME) {
- int64_t pos = mainpic->pkt_pos;
s->var_values[VAR_N] = inlink->frame_count_out;
s->var_values[VAR_T] = mainpic->pts == AV_NOPTS_VALUE ?
NAN : mainpic->pts * av_q2d(inlink->time_base);
- s->var_values[VAR_POS] = pos == -1 ? NAN : pos;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
+ {
+ int64_t pos = mainpic->pkt_pos;
+ s->var_values[VAR_POS] = pos == -1 ? NAN : pos;
+ }
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
s->var_values[VAR_OVERLAY_W] = s->var_values[VAR_OW] = second->width;
s->var_values[VAR_OVERLAY_H] = s->var_values[VAR_OH] = second->height;
@@ -1020,8 +1030,8 @@ static int do_blend(FFFrameSync *fs)
s->var_values[VAR_MAIN_H ] = s->var_values[VAR_MH] = mainpic->height;
eval_expr(ctx);
- av_log(ctx, AV_LOG_DEBUG, "n:%f t:%f pos:%f x:%f xi:%d y:%f yi:%d\n",
- s->var_values[VAR_N], s->var_values[VAR_T], s->var_values[VAR_POS],
+ av_log(ctx, AV_LOG_DEBUG, "n:%f t:%f x:%f xi:%d y:%f yi:%d\n",
+ s->var_values[VAR_N], s->var_values[VAR_T],
s->var_values[VAR_X], s->x,
s->var_values[VAR_Y], s->y);
}
@@ -34,7 +34,9 @@ enum var_name {
VAR_X,
VAR_Y,
VAR_N,
+#if FF_API_FRAME_PKT
VAR_POS,
+#endif
VAR_T,
VAR_VARS_NB
};
@@ -68,7 +68,9 @@ enum var_name {
VAR_X,
VAR_Y,
VAR_N,
+#if FF_API_FRAME_PKT
VAR_POS,
+#endif
VAR_T,
VAR_VARS_NB
};
@@ -87,7 +89,9 @@ static const char *const var_names[] = {
"x",
"y",
"n", ///< number of frame
+#if FF_API_FRAME_PKT
"pos", ///< position in the file
+#endif
"t", ///< timestamp expressed in seconds
NULL
};
@@ -238,8 +242,6 @@ static int overlay_cuda_blend(FFFrameSync *fs)
AVFrame *input_main, *input_overlay;
- int pos = 0;
-
ctx->cu_ctx = cuda_ctx;
// read main and overlay frames from inputs
@@ -268,11 +270,19 @@ static int overlay_cuda_blend(FFFrameSync *fs)
}
if (ctx->eval_mode == EVAL_MODE_FRAME) {
- pos = input_main->pkt_pos;
ctx->var_values[VAR_N] = inlink->frame_count_out;
ctx->var_values[VAR_T] = input_main->pts == AV_NOPTS_VALUE ?
NAN : input_main->pts * av_q2d(inlink->time_base);
- ctx->var_values[VAR_POS] = pos == -1 ? NAN : pos;
+
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
+ {
+ int64_t pos = input_main->pkt_pos;
+ ctx->var_values[VAR_POS] = pos == -1 ? NAN : pos;
+ }
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
+
ctx->var_values[VAR_OVERLAY_W] = ctx->var_values[VAR_OW] = input_overlay->width;
ctx->var_values[VAR_OVERLAY_H] = ctx->var_values[VAR_OH] = input_overlay->height;
ctx->var_values[VAR_MAIN_W ] = ctx->var_values[VAR_MW] = input_main->width;
@@ -280,8 +290,8 @@ static int overlay_cuda_blend(FFFrameSync *fs)
eval_expr(avctx);
- av_log(avctx, AV_LOG_DEBUG, "n:%f t:%f pos:%f x:%f xi:%d y:%f yi:%d\n",
- ctx->var_values[VAR_N], ctx->var_values[VAR_T], ctx->var_values[VAR_POS],
+ av_log(avctx, AV_LOG_DEBUG, "n:%f t:%f x:%f xi:%d y:%f yi:%d\n",
+ ctx->var_values[VAR_N], ctx->var_values[VAR_T],
ctx->var_values[VAR_X], ctx->x_position,
ctx->var_values[VAR_Y], ctx->y_position);
}
@@ -355,7 +365,9 @@ static int config_input_overlay(AVFilterLink *inlink)
s->var_values[VAR_Y] = NAN;
s->var_values[VAR_N] = 0;
s->var_values[VAR_T] = NAN;
+#if FF_API_FRAME_PKT
s->var_values[VAR_POS] = NAN;
+#endif
if ((ret = set_expr(&s->x_pexpr, s->x_expr, "x", ctx)) < 0 ||
(ret = set_expr(&s->y_pexpr, s->y_expr, "y", ctx)) < 0)
@@ -56,7 +56,9 @@ static const char *const var_names[] = {
"ovsub",
"n",
"t",
+#if FF_API_FRAME_PKT
"pos",
+#endif
"main_w",
"main_h",
"main_a",
@@ -84,7 +86,9 @@ enum var_name {
VAR_OVSUB,
VAR_N,
VAR_T,
+#if FF_API_FRAME_PKT
VAR_POS,
+#endif
VAR_S2R_MAIN_W,
VAR_S2R_MAIN_H,
VAR_S2R_MAIN_A,
@@ -205,7 +209,9 @@ static int check_exprs(AVFilterContext *ctx)
if (scale->eval_mode == EVAL_MODE_INIT &&
(vars_w[VAR_N] || vars_h[VAR_N] ||
vars_w[VAR_T] || vars_h[VAR_T] ||
+#if FF_API_FRAME_PKT
vars_w[VAR_POS] || vars_h[VAR_POS] ||
+#endif
vars_w[VAR_S2R_MAIN_N] || vars_h[VAR_S2R_MAIN_N] ||
vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T] ||
vars_w[VAR_S2R_MAIN_POS] || vars_h[VAR_S2R_MAIN_POS]) ) {
@@ -738,8 +744,16 @@ static int scale_frame(AVFilterLink *link, AVFrame *in, AVFrame **frame_out)
if (scale->eval_mode == EVAL_MODE_FRAME &&
!frame_changed &&
ctx->filter != &ff_vf_scale2ref &&
- !(vars_w[VAR_N] || vars_w[VAR_T] || vars_w[VAR_POS]) &&
- !(vars_h[VAR_N] || vars_h[VAR_T] || vars_h[VAR_POS]) &&
+ !(vars_w[VAR_N] || vars_w[VAR_T]
+#if FF_API_FRAME_PKT
+ || vars_w[VAR_POS]
+#endif
+ ) &&
+ !(vars_h[VAR_N] || vars_h[VAR_T]
+#if FF_API_FRAME_PKT
+ || vars_h[VAR_POS]
+#endif
+ ) &&
scale->w && scale->h)
goto scale;
@@ -761,11 +775,19 @@ static int scale_frame(AVFilterLink *link, AVFrame *in, AVFrame **frame_out)
if (ctx->filter == &ff_vf_scale2ref) {
scale->var_values[VAR_S2R_MAIN_N] = link->frame_count_out;
scale->var_values[VAR_S2R_MAIN_T] = TS2T(in->pts, link->time_base);
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
scale->var_values[VAR_S2R_MAIN_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
} else {
scale->var_values[VAR_N] = link->frame_count_out;
scale->var_values[VAR_T] = TS2T(in->pts, link->time_base);
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
scale->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
link->dst->inputs[0]->format = in->format;
@@ -915,7 +937,11 @@ static int filter_frame_ref(AVFilterLink *link, AVFrame *in)
if (scale->eval_mode == EVAL_MODE_FRAME) {
scale->var_values[VAR_N] = link->frame_count_out;
scale->var_values[VAR_T] = TS2T(in->pts, link->time_base);
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
scale->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
return ff_filter_frame(outlink, in);
@@ -84,7 +84,9 @@ static const char *const var_names[] = {
"dar",
"n",
"t",
+#if FF_API_FRAME_PKT
"pos",
+#endif
"main_w",
"main_h",
"main_a",
@@ -92,7 +94,9 @@ static const char *const var_names[] = {
"main_dar", "mdar",
"main_n",
"main_t",
+#if FF_API_FRAME_PKT
"main_pos",
+#endif
NULL
};
@@ -106,7 +110,9 @@ enum var_name {
VAR_DAR,
VAR_N,
VAR_T,
+#if FF_API_FRAME_PKT
VAR_POS,
+#endif
VAR_S2R_MAIN_W,
VAR_S2R_MAIN_H,
VAR_S2R_MAIN_A,
@@ -114,7 +120,9 @@ enum var_name {
VAR_S2R_MAIN_DAR, VAR_S2R_MDAR,
VAR_S2R_MAIN_N,
VAR_S2R_MAIN_T,
+#if FF_API_FRAME_PKT
VAR_S2R_MAIN_POS,
+#endif
VARS_NB
};
@@ -204,8 +212,11 @@ static int check_exprs(AVFilterContext* ctx)
vars_w[VAR_S2R_MAIN_DAR] || vars_h[VAR_S2R_MAIN_DAR] ||
vars_w[VAR_S2R_MDAR] || vars_h[VAR_S2R_MDAR] ||
vars_w[VAR_S2R_MAIN_N] || vars_h[VAR_S2R_MAIN_N] ||
- vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T] ||
- vars_w[VAR_S2R_MAIN_POS] || vars_h[VAR_S2R_MAIN_POS])) {
+ vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T]
+#if FF_API_FRAME_PKT
+ || vars_w[VAR_S2R_MAIN_POS] || vars_h[VAR_S2R_MAIN_POS]
+#endif
+ )) {
av_log(ctx, AV_LOG_ERROR, "Expressions with scale2ref_npp variables are not valid in scale_npp filter.\n");
return AVERROR(EINVAL);
}
@@ -213,11 +224,16 @@ static int check_exprs(AVFilterContext* ctx)
if (scale->eval_mode == EVAL_MODE_INIT &&
(vars_w[VAR_N] || vars_h[VAR_N] ||
vars_w[VAR_T] || vars_h[VAR_T] ||
+#if FF_API_FRAME_PKT
vars_w[VAR_POS] || vars_h[VAR_POS] ||
+#endif
vars_w[VAR_S2R_MAIN_N] || vars_h[VAR_S2R_MAIN_N] ||
- vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T] ||
- vars_w[VAR_S2R_MAIN_POS] || vars_h[VAR_S2R_MAIN_POS]) ) {
- av_log(ctx, AV_LOG_ERROR, "Expressions with frame variables 'n', 't', 'pos' are not valid in init eval_mode.\n");
+ vars_w[VAR_S2R_MAIN_T] || vars_h[VAR_S2R_MAIN_T]
+#if FF_API_FRAME_PKT
+ || vars_w[VAR_S2R_MAIN_POS] || vars_h[VAR_S2R_MAIN_POS]
+#endif
+ ) ) {
+ av_log(ctx, AV_LOG_ERROR, "Expressions with frame variables 'n', 't', are not valid in init eval_mode.\n");
return AVERROR(EINVAL);
}
@@ -790,9 +806,16 @@ static int nppscale_scale(AVFilterLink *link, AVFrame *out, AVFrame *in)
av_expr_count_vars(s->h_pexpr, vars_h, VARS_NB);
if (s->eval_mode == EVAL_MODE_FRAME && !frame_changed && ctx->filter != &ff_vf_scale2ref_npp &&
- !(vars_w[VAR_N] || vars_w[VAR_T] || vars_w[VAR_POS]) &&
- !(vars_h[VAR_N] || vars_h[VAR_T] || vars_h[VAR_POS]) &&
- s->w && s->h)
+ !(vars_w[VAR_N] || vars_w[VAR_T]
+#if FF_API_FRAME_PKT
+ || vars_w[VAR_POS]
+#endif
+ ) &&
+ !(vars_h[VAR_N] || vars_h[VAR_T]
+#if FF_API_FRAME_PKT
+ || vars_h[VAR_POS]
+#endif
+ ) && s->w && s->h)
goto scale;
if (s->eval_mode == EVAL_MODE_INIT) {
@@ -813,11 +836,19 @@ static int nppscale_scale(AVFilterLink *link, AVFrame *out, AVFrame *in)
if (ctx->filter == &ff_vf_scale2ref_npp) {
s->var_values[VAR_S2R_MAIN_N] = link->frame_count_out;
s->var_values[VAR_S2R_MAIN_T] = TS2T(in->pts, link->time_base);
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
s->var_values[VAR_S2R_MAIN_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
} else {
s->var_values[VAR_N] = link->frame_count_out;
s->var_values[VAR_T] = TS2T(in->pts, link->time_base);
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
s->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
link->format = in->format;
@@ -932,7 +963,11 @@ static int nppscale_filter_frame_ref(AVFilterLink *link, AVFrame *in)
if (scale->eval_mode == EVAL_MODE_FRAME) {
scale->var_values[VAR_N] = link->frame_count_out;
scale->var_values[VAR_T] = TS2T(in->pts, link->time_base);
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
scale->var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
return ff_filter_frame(outlink, in);
@@ -713,12 +713,11 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
av_log(ctx, AV_LOG_INFO,
"n:%4"PRId64" pts:%7s pts_time:%-7s duration:%7"PRId64
- " duration_time:%-7s pos:%9"PRId64" "
+ " duration_time:%-7s "
"fmt:%s sar:%d/%d s:%dx%d i:%c iskey:%d type:%c ",
inlink->frame_count_out,
av_ts2str(frame->pts), av_ts2timestr(frame->pts, &inlink->time_base),
frame->duration, av_ts2timestr(frame->duration, &inlink->time_base),
- frame->pkt_pos,
desc->name,
frame->sample_aspect_ratio.num, frame->sample_aspect_ratio.den,
frame->width, frame->height,
@@ -64,8 +64,16 @@ static int query_formats(AVFilterContext *ctx)
return ff_set_common_formats(ctx, ff_formats_pixdesc_filter(0, reject_flags));
}
-static const char *const var_names[] = { "w", "h", "a", "n", "t", "pos", "sar", "dar", NULL };
-enum { VAR_W, VAR_H, VAR_A, VAR_N, VAR_T, VAR_POS, VAR_SAR, VAR_DAR, VAR_VARS_NB };
+static const char *const var_names[] = { "w", "h", "a", "n", "t",
+#if FF_API_FRAME_PKT
+ "pos",
+#endif
+ "sar", "dar", NULL };
+enum { VAR_W, VAR_H, VAR_A, VAR_N, VAR_T,
+#if FF_API_FRAME_PKT
+ VAR_POS,
+#endif
+ VAR_SAR, VAR_DAR, VAR_VARS_NB };
static int filter_frame(AVFilterLink *inlink, AVFrame *in)
{
@@ -90,7 +98,11 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
var_values[VAR_DAR] = var_values[VAR_A] * var_values[VAR_SAR];
var_values[VAR_N] = inlink->frame_count_out;
var_values[VAR_T] = in->pts == AV_NOPTS_VALUE ? NAN : in->pts * av_q2d(inlink->time_base);
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
var_values[VAR_POS] = in->pkt_pos == -1 ? NAN : in->pkt_pos;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
ret = av_expr_parse_and_eval(&dw, s->w,
var_names, &var_values[0],
@@ -48,8 +48,12 @@ FF_DISABLE_DEPRECATION_WARNINGS
frame->pkt_duration = 0;
FF_ENABLE_DEPRECATION_WARNINGS
#endif
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
frame->pkt_pos = -1;
frame->pkt_size = -1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
frame->time_base = (AVRational){ 0, 1 };
frame->key_frame = 1;
frame->sample_aspect_ratio = (AVRational){ 0, 1 };
@@ -279,8 +283,12 @@ static int frame_copy_props(AVFrame *dst, const AVFrame *src, int force_copy)
dst->sample_rate = src->sample_rate;
dst->opaque = src->opaque;
dst->pkt_dts = src->pkt_dts;
+#if FF_API_FRAME_PKT
+FF_DISABLE_DEPRECATION_WARNINGS
dst->pkt_pos = src->pkt_pos;
dst->pkt_size = src->pkt_size;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
#if FF_API_PKT_DURATION
FF_DISABLE_DEPRECATION_WARNINGS
dst->pkt_duration = src->pkt_duration;
@@ -611,12 +611,17 @@ typedef struct AVFrame {
*/
int64_t best_effort_timestamp;
+#if FF_API_FRAME_PKT
/**
* reordered pos from the last AVPacket that has been input into the decoder
* - encoding: unused
* - decoding: Read by user.
+ * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user
+ * data from packets to frames
*/
+ attribute_deprecated
int64_t pkt_pos;
+#endif
#if FF_API_PKT_DURATION
/**
@@ -662,14 +667,19 @@ typedef struct AVFrame {
int channels;
#endif
+#if FF_API_FRAME_PKT
/**
* size of the corresponding packet containing the compressed
* frame.
* It is set to a negative value if unknown.
* - encoding: unused
* - decoding: set by libavcodec, read by user.
+ * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user
+ * data from packets to frames
*/
+ attribute_deprecated
int pkt_size;
+#endif
/**
* For hwaccel-format frames, this should be a reference to the
@@ -113,6 +113,7 @@
#define FF_API_PKT_DURATION (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_REORDERED_OPAQUE (LIBAVUTIL_VERSION_MAJOR < 59)
#define FF_API_FRAME_PICTURE_NUMBER (LIBAVUTIL_VERSION_MAJOR < 59)
+#define FF_API_FRAME_PKT (LIBAVUTIL_VERSION_MAJOR < 59)
/**
* @}