... | ... |
@@ -11696,13 +11696,17 @@ Set the output frame rate. Default value is @code{25}. |
11696 | 11696 |
@item rc |
11697 | 11697 |
@item gc |
11698 | 11698 |
@item bc |
11699 |
-Specify the red, green and blue contrast. Default values are @code{40}, @code{160} and @code{80}. |
|
11699 |
+@item ac |
|
11700 |
+Specify the red, green, blue and alpha contrast. Default values are @code{40}, |
|
11701 |
+@code{160}, @code{80} and @code{255}. |
|
11700 | 11702 |
Allowed range is @code{[0, 255]}. |
11701 | 11703 |
|
11702 | 11704 |
@item rf |
11703 | 11705 |
@item gf |
11704 | 11706 |
@item bf |
11705 |
-Specify the red, green and blue fade. Default values are @code{15}, @code{10} and @code{5}. |
|
11707 |
+@item af |
|
11708 |
+Specify the red, green, blue and alpha fade. Default values are @code{15}, |
|
11709 |
+@code{10}, @code{5} and @code{5}. |
|
11706 | 11710 |
Allowed range is @code{[0, 255]}. |
11707 | 11711 |
|
11708 | 11712 |
@item zoom |
... | ... |
@@ -45,8 +45,8 @@ typedef struct AudioVectorScopeContext { |
45 | 45 |
int w, h; |
46 | 46 |
int hw, hh; |
47 | 47 |
int mode; |
48 |
- int contrast[3]; |
|
49 |
- int fade[3]; |
|
48 |
+ int contrast[4]; |
|
49 |
+ int fade[4]; |
|
50 | 50 |
double zoom; |
51 | 51 |
AVRational frame_rate; |
52 | 52 |
} AudioVectorScopeContext; |
... | ... |
@@ -63,13 +63,15 @@ static const AVOption avectorscope_options[] = { |
63 | 63 |
{ "r", "set video rate", OFFSET(frame_rate), AV_OPT_TYPE_VIDEO_RATE, {.str="25"}, 0, 0, FLAGS }, |
64 | 64 |
{ "size", "set video size", OFFSET(w), AV_OPT_TYPE_IMAGE_SIZE, {.str="400x400"}, 0, 0, FLAGS }, |
65 | 65 |
{ "s", "set video size", OFFSET(w), AV_OPT_TYPE_IMAGE_SIZE, {.str="400x400"}, 0, 0, FLAGS }, |
66 |
- { "rc", "set red contrast", OFFSET(contrast[0]), AV_OPT_TYPE_INT, {.i64=40}, 0, 255, FLAGS }, |
|
66 |
+ { "rc", "set red contrast", OFFSET(contrast[0]), AV_OPT_TYPE_INT, {.i64=40}, 0, 255, FLAGS }, |
|
67 | 67 |
{ "gc", "set green contrast", OFFSET(contrast[1]), AV_OPT_TYPE_INT, {.i64=160}, 0, 255, FLAGS }, |
68 |
- { "bc", "set blue contrast", OFFSET(contrast[2]), AV_OPT_TYPE_INT, {.i64=80}, 0, 255, FLAGS }, |
|
68 |
+ { "bc", "set blue contrast", OFFSET(contrast[2]), AV_OPT_TYPE_INT, {.i64=80}, 0, 255, FLAGS }, |
|
69 |
+ { "ac", "set alpha contrast", OFFSET(contrast[3]), AV_OPT_TYPE_INT, {.i64=255}, 0, 255, FLAGS }, |
|
69 | 70 |
{ "rf", "set red fade", OFFSET(fade[0]), AV_OPT_TYPE_INT, {.i64=15}, 0, 255, FLAGS }, |
70 | 71 |
{ "gf", "set green fade", OFFSET(fade[1]), AV_OPT_TYPE_INT, {.i64=10}, 0, 255, FLAGS }, |
71 |
- { "bf", "set blue fade", OFFSET(fade[2]), AV_OPT_TYPE_INT, {.i64=5}, 0, 255, FLAGS }, |
|
72 |
- { "zoom", "set zoom factor", OFFSET(zoom), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 1, 10, FLAGS }, |
|
72 |
+ { "bf", "set blue fade", OFFSET(fade[2]), AV_OPT_TYPE_INT, {.i64=5}, 0, 255, FLAGS }, |
|
73 |
+ { "af", "set alpha fade", OFFSET(fade[3]), AV_OPT_TYPE_INT, {.i64=5}, 0, 255, FLAGS }, |
|
74 |
+ { "zoom", "set zoom factor", OFFSET(zoom), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 1, 10, FLAGS }, |
|
73 | 75 |
{ NULL } |
74 | 76 |
}; |
75 | 77 |
|
... | ... |
@@ -92,6 +94,7 @@ static void draw_dot(AudioVectorScopeContext *s, unsigned x, unsigned y) |
92 | 92 |
dst[0] = FFMIN(dst[0] + s->contrast[0], 255); |
93 | 93 |
dst[1] = FFMIN(dst[1] + s->contrast[1], 255); |
94 | 94 |
dst[2] = FFMIN(dst[2] + s->contrast[2], 255); |
95 |
+ dst[3] = FFMIN(dst[3] + s->contrast[3], 255); |
|
95 | 96 |
} |
96 | 97 |
|
97 | 98 |
static void fade(AudioVectorScopeContext *s) |
... | ... |
@@ -106,6 +109,7 @@ static void fade(AudioVectorScopeContext *s) |
106 | 106 |
d[j+0] = FFMAX(d[j+0] - s->fade[0], 0); |
107 | 107 |
d[j+1] = FFMAX(d[j+1] - s->fade[1], 0); |
108 | 108 |
d[j+2] = FFMAX(d[j+2] - s->fade[2], 0); |
109 |
+ d[j+3] = FFMAX(d[j+3] - s->fade[3], 0); |
|
109 | 110 |
} |
110 | 111 |
d += linesize; |
111 | 112 |
} |