History

avfilter/src_avsynctest: add support for commands

Paul B Mahol committed 3 years ago

Commit dc1d4a81 parent 5e7042f2 files · +15 −6Browse files

Unified · Split

2 files
  1. doc/filters.texi +4 −0
  2. libavfilter/src_avsynctest.c +11 −6
doc/filters.texi+4−0
@@ -31253,6 +31253,10 @@ Set stream output duration. By default duration is unlimited. · 31252 unmodified lines
3125331253 Set foreground/background/additional color.
3125431254 @end table
3125531255
31256+@subsection Commands
31257+
31258+This source supports the some above options as @ref{commands}.
31259+
3125631260 @anchor{movie}
3125731261 @section movie
3125831262
libavfilter/src_avsynctest.c+11−6
@@ -67,6 +67,7 @@ typedef struct AVSyncTestContext { · 66 unmodified lines
6767 #define OFFSET(x) offsetof(AVSyncTestContext, x)
6868 #define A AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
6969 #define V AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
70+#define R AV_OPT_FLAG_RUNTIME_PARAM
7071
7172 static const AVOption avsynctest_options[] = {
7273 {"size", "set frame size", OFFSET(w), AV_OPT_TYPE_IMAGE_SIZE, {.str="hd720"}, 0, 0, V },
@@ -75,14 +76,14 @@ static const AVOption avsynctest_options[] = { · 2 unmodified lines
7576 {"fr", "set frame rate", OFFSET(frame_rate), AV_OPT_TYPE_VIDEO_RATE, {.str="30"}, 0,INT_MAX, V },
7677 {"samplerate", "set sample rate", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64=44100},8000,384000, A },
7778 {"sr", "set sample rate", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64=44100},8000,384000, A },
78− {"amplitude", "set beep amplitude", OFFSET(amplitude), AV_OPT_TYPE_FLOAT, {.dbl=.7}, 0., 1., A },
79− {"a", "set beep amplitude", OFFSET(amplitude), AV_OPT_TYPE_FLOAT, {.dbl=.7}, 0., 1., A },
79+ {"amplitude", "set beep amplitude", OFFSET(amplitude), AV_OPT_TYPE_FLOAT, {.dbl=.7}, 0., 1., A|R },
80+ {"a", "set beep amplitude", OFFSET(amplitude), AV_OPT_TYPE_FLOAT, {.dbl=.7}, 0., 1., A|R },
8081 {"period", "set beep period", OFFSET(period), AV_OPT_TYPE_INT, {.i64=3}, 1, 99., A },
8182 {"p", "set beep period", OFFSET(period), AV_OPT_TYPE_INT, {.i64=3}, 1, 99., A },
82− {"delay", "set flash delay", OFFSET(delay), AV_OPT_TYPE_INT, {.i64=0}, -30, 30, V },
83− {"dl", "set flash delay", OFFSET(delay), AV_OPT_TYPE_INT, {.i64=0}, -30, 30, V },
84− {"cycle", "set delay cycle", OFFSET(cycle), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, V },
85− {"c", "set delay cycle", OFFSET(cycle), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, V },
83+ {"delay", "set flash delay", OFFSET(delay), AV_OPT_TYPE_INT, {.i64=0}, -30, 30, V|R },
84+ {"dl", "set flash delay", OFFSET(delay), AV_OPT_TYPE_INT, {.i64=0}, -30, 30, V|R },
85+ {"cycle", "set delay cycle", OFFSET(cycle), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, V|R },
86+ {"c", "set delay cycle", OFFSET(cycle), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, V|R },
8687 {"duration", "set duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64=0}, 0, INT64_MAX, V|A },
8788 {"d", "set duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64=0}, 0, INT64_MAX, V|A },
8889 {"fg", "set foreground color", OFFSET(rgba[0]), AV_OPT_TYPE_COLOR, {.str="white"}, 0, 0, V },
@@ -278,6 +279,9 @@ static int video_frame(AVFilterLink *outlink) · 189 unmodified lines
278279 int64_t delta, temp, intpart;
279280 AVFrame *out;
280281
282+ if (!s->cycle)
283+ s->vdelay = av_make_q(s->delay, 1);
284+
281285 delta = av_rescale_q(s->apts, s->frame_rate, av_make_q(s->sample_rate, 1)) - s->vpts;
282286 if (delta < 0)
283287 return 1;
@@ -401,4 +405,5 @@ const AVFilter ff_avsrc_avsynctest = { · 117 unmodified lines
401405 .activate = activate,
402406 FILTER_OUTPUTS(avsynctest_outputs),
403407 FILTER_QUERY_FUNC(query_formats),
408+ .process_command = ff_filter_process_command,
404409 };

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t