|
|
|
@ -24,6 +24,8 @@ |
|
|
|
|
* video presentation timestamp (PTS) modification filter |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
#include <inttypes.h> |
|
|
|
|
|
|
|
|
|
#include "libavutil/eval.h" |
|
|
|
|
#include "libavutil/internal.h" |
|
|
|
|
#include "libavutil/mathematics.h" |
|
|
|
@ -175,24 +177,24 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) |
|
|
|
|
d = av_expr_eval(setpts->expr, setpts->var_values, NULL); |
|
|
|
|
frame->pts = D2TS(d); |
|
|
|
|
|
|
|
|
|
av_log(inlink->dst, AV_LOG_DEBUG, |
|
|
|
|
"N:%"PRId64" PTS:%s T:%f POS:%s", |
|
|
|
|
(int64_t)setpts->var_values[VAR_N], |
|
|
|
|
d2istr(setpts->var_values[VAR_PTS]), |
|
|
|
|
setpts->var_values[VAR_T], |
|
|
|
|
d2istr(setpts->var_values[VAR_POS])); |
|
|
|
|
av_dlog(inlink->dst, |
|
|
|
|
"N:%"PRId64" PTS:%s T:%f POS:%s", |
|
|
|
|
(int64_t)setpts->var_values[VAR_N], |
|
|
|
|
d2istr(setpts->var_values[VAR_PTS]), |
|
|
|
|
setpts->var_values[VAR_T], |
|
|
|
|
d2istr(setpts->var_values[VAR_POS])); |
|
|
|
|
switch (inlink->type) { |
|
|
|
|
case AVMEDIA_TYPE_VIDEO: |
|
|
|
|
av_log(inlink->dst, AV_LOG_DEBUG, " INTERLACED:%"PRId64, |
|
|
|
|
(int64_t)setpts->var_values[VAR_INTERLACED]); |
|
|
|
|
av_dlog(inlink->dst, " INTERLACED:%"PRId64, |
|
|
|
|
(int64_t)setpts->var_values[VAR_INTERLACED]); |
|
|
|
|
break; |
|
|
|
|
case AVMEDIA_TYPE_AUDIO: |
|
|
|
|
av_log(inlink->dst, AV_LOG_DEBUG, " NB_SAMPLES:%"PRId64" NB_CONSUMED_SAMPLES:%"PRId64, |
|
|
|
|
(int64_t)setpts->var_values[VAR_NB_SAMPLES], |
|
|
|
|
(int64_t)setpts->var_values[VAR_NB_CONSUMED_SAMPLES]); |
|
|
|
|
av_dlog(inlink->dst, " NB_SAMPLES:%"PRId64" NB_CONSUMED_SAMPLES:%"PRId64, |
|
|
|
|
(int64_t)setpts->var_values[VAR_NB_SAMPLES], |
|
|
|
|
(int64_t)setpts->var_values[VAR_NB_CONSUMED_SAMPLES]); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
av_log(inlink->dst, AV_LOG_DEBUG, " -> PTS:%s T:%f\n", d2istr(d), TS2T(d, inlink->time_base)); |
|
|
|
|
av_dlog(inlink->dst, " -> PTS:%s T:%f\n", d2istr(d), TS2T(d, inlink->time_base)); |
|
|
|
|
|
|
|
|
|
if (inlink->type == AVMEDIA_TYPE_VIDEO) { |
|
|
|
|
setpts->var_values[VAR_N] += 1.0; |
|
|
|
|