avfilter/vf_vectorscope: always flip output vertically

Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
Paul B Mahol 2016-03-20 21:03:43 +01:00
parent 65efcaeb84
commit 8f66a2da38
7 changed files with 28 additions and 20 deletions

@ -911,7 +911,7 @@ static void draw_htext(AVFrame *out, int x, int y, float o1, float o2, const cha
int v = color[plane];
uint8_t *p = out->data[plane] + y * out->linesize[plane] + (x + i * 8);
for (char_y = 0; char_y < font_height; char_y++) {
for (char_y = font_height - 1; char_y >= 0; char_y--) {
for (mask = 0x80; mask; mask >>= 1) {
if (font[txt[i] * font_height + char_y] & mask)
p[0] = p[0] * o2 + v * o1;
@ -937,7 +937,7 @@ static void draw_htext16(AVFrame *out, int x, int y, float o1, float o2, const c
int v = color[plane];
uint16_t *p = (uint16_t *)(out->data[plane] + y * out->linesize[plane]) + (x + i * 8);
for (char_y = 0; char_y < font_height; char_y++) {
for (char_y = font_height - 1; char_y >= 0; char_y--) {
for (mask = 0x80; mask; mask >>= 1) {
if (font[txt[i] * font_height + char_y] & mask)
p[0] = p[0] * o2 + v * o1;
@ -1207,6 +1207,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
VectorscopeContext *s = ctx->priv;
AVFilterLink *outlink = ctx->outputs[0];
AVFrame *out;
int plane;
if (s->colorspace) {
s->cs = (s->depth - 8) * 2 + s->colorspace - 1;
@ -1232,6 +1233,13 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
s->vectorscope(s, in, out, s->pd);
s->graticulef(s, out, s->x, s->y, s->pd, s->cs);
for (plane = 0; plane < 4; plane++) {
if (out->data[plane]) {
out->data[plane] += (s->size - 1) * out->linesize[plane];
out->linesize[plane] = -out->linesize[plane];
}
}
av_frame_free(&in);
return ff_filter_frame(outlink, out);
}

@ -1,4 +1,4 @@
#tb 0: 1/25
0, 0, 0, 1, 196608, 0x1890aa30
0, 1, 1, 1, 196608, 0xa490acf9
0, 2, 2, 1, 196608, 0x404a775d
0, 0, 0, 1, 196608, 0xf6e3aa30
0, 1, 1, 1, 196608, 0x5584acf9
0, 2, 2, 1, 196608, 0xa862775d

@ -1,4 +1,4 @@
#tb 0: 1/25
0, 0, 0, 1, 196608, 0x9bfcfae5
0, 1, 1, 1, 196608, 0x1ac6fcbf
0, 2, 2, 1, 196608, 0x31cb1088
0, 0, 0, 1, 196608, 0x5e62fae5
0, 1, 1, 1, 196608, 0x4c27fcbf
0, 2, 2, 1, 196608, 0xb7531088

@ -1,4 +1,4 @@
#tb 0: 1/25
0, 0, 0, 1, 196608, 0x6e698770
0, 1, 1, 1, 196608, 0x374d74a7
0, 2, 2, 1, 196608, 0x3d817143
0, 0, 0, 1, 196608, 0x83df8770
0, 1, 1, 1, 196608, 0xa6a674a7
0, 2, 2, 1, 196608, 0x11757143

@ -1,4 +1,4 @@
#tb 0: 1/25
0, 0, 0, 1, 196608, 0x4d2e53c4
0, 1, 1, 1, 196608, 0x795e1dcc
0, 2, 2, 1, 196608, 0xe4268800
0, 0, 0, 1, 196608, 0x326953c4
0, 1, 1, 1, 196608, 0x870e1dcc
0, 2, 2, 1, 196608, 0x87cb8800

@ -1,4 +1,4 @@
#tb 0: 1/25
0, 0, 0, 1, 196608, 0x8e4171e2
0, 1, 1, 1, 196608, 0xf3d371e2
0, 2, 2, 1, 196608, 0xb9cb71e2
0, 0, 0, 1, 196608, 0x79ba71e2
0, 1, 1, 1, 196608, 0x909271e2
0, 2, 2, 1, 196608, 0x143971e2

@ -1,4 +1,4 @@
#tb 0: 1/25
0, 0, 0, 1, 196608, 0xa0939af1
0, 1, 1, 1, 196608, 0x43699af1
0, 2, 2, 1, 196608, 0x69a19af1
0, 0, 0, 1, 196608, 0xa2899af1
0, 1, 1, 1, 196608, 0x26409af1
0, 2, 2, 1, 196608, 0xf5209af1