avfilter/vf_vectorscope: always flip output vertically
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
65efcaeb84
commit
8f66a2da38
@ -911,7 +911,7 @@ static void draw_htext(AVFrame *out, int x, int y, float o1, float o2, const cha
|
|||||||
int v = color[plane];
|
int v = color[plane];
|
||||||
|
|
||||||
uint8_t *p = out->data[plane] + y * out->linesize[plane] + (x + i * 8);
|
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) {
|
for (mask = 0x80; mask; mask >>= 1) {
|
||||||
if (font[txt[i] * font_height + char_y] & mask)
|
if (font[txt[i] * font_height + char_y] & mask)
|
||||||
p[0] = p[0] * o2 + v * o1;
|
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];
|
int v = color[plane];
|
||||||
|
|
||||||
uint16_t *p = (uint16_t *)(out->data[plane] + y * out->linesize[plane]) + (x + i * 8);
|
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) {
|
for (mask = 0x80; mask; mask >>= 1) {
|
||||||
if (font[txt[i] * font_height + char_y] & mask)
|
if (font[txt[i] * font_height + char_y] & mask)
|
||||||
p[0] = p[0] * o2 + v * o1;
|
p[0] = p[0] * o2 + v * o1;
|
||||||
@ -1207,6 +1207,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
|
|||||||
VectorscopeContext *s = ctx->priv;
|
VectorscopeContext *s = ctx->priv;
|
||||||
AVFilterLink *outlink = ctx->outputs[0];
|
AVFilterLink *outlink = ctx->outputs[0];
|
||||||
AVFrame *out;
|
AVFrame *out;
|
||||||
|
int plane;
|
||||||
|
|
||||||
if (s->colorspace) {
|
if (s->colorspace) {
|
||||||
s->cs = (s->depth - 8) * 2 + s->colorspace - 1;
|
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->vectorscope(s, in, out, s->pd);
|
||||||
s->graticulef(s, out, s->x, s->y, s->pd, s->cs);
|
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);
|
av_frame_free(&in);
|
||||||
return ff_filter_frame(outlink, out);
|
return ff_filter_frame(outlink, out);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#tb 0: 1/25
|
#tb 0: 1/25
|
||||||
0, 0, 0, 1, 196608, 0x1890aa30
|
0, 0, 0, 1, 196608, 0xf6e3aa30
|
||||||
0, 1, 1, 1, 196608, 0xa490acf9
|
0, 1, 1, 1, 196608, 0x5584acf9
|
||||||
0, 2, 2, 1, 196608, 0x404a775d
|
0, 2, 2, 1, 196608, 0xa862775d
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#tb 0: 1/25
|
#tb 0: 1/25
|
||||||
0, 0, 0, 1, 196608, 0x9bfcfae5
|
0, 0, 0, 1, 196608, 0x5e62fae5
|
||||||
0, 1, 1, 1, 196608, 0x1ac6fcbf
|
0, 1, 1, 1, 196608, 0x4c27fcbf
|
||||||
0, 2, 2, 1, 196608, 0x31cb1088
|
0, 2, 2, 1, 196608, 0xb7531088
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#tb 0: 1/25
|
#tb 0: 1/25
|
||||||
0, 0, 0, 1, 196608, 0x6e698770
|
0, 0, 0, 1, 196608, 0x83df8770
|
||||||
0, 1, 1, 1, 196608, 0x374d74a7
|
0, 1, 1, 1, 196608, 0xa6a674a7
|
||||||
0, 2, 2, 1, 196608, 0x3d817143
|
0, 2, 2, 1, 196608, 0x11757143
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#tb 0: 1/25
|
#tb 0: 1/25
|
||||||
0, 0, 0, 1, 196608, 0x4d2e53c4
|
0, 0, 0, 1, 196608, 0x326953c4
|
||||||
0, 1, 1, 1, 196608, 0x795e1dcc
|
0, 1, 1, 1, 196608, 0x870e1dcc
|
||||||
0, 2, 2, 1, 196608, 0xe4268800
|
0, 2, 2, 1, 196608, 0x87cb8800
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#tb 0: 1/25
|
#tb 0: 1/25
|
||||||
0, 0, 0, 1, 196608, 0x8e4171e2
|
0, 0, 0, 1, 196608, 0x79ba71e2
|
||||||
0, 1, 1, 1, 196608, 0xf3d371e2
|
0, 1, 1, 1, 196608, 0x909271e2
|
||||||
0, 2, 2, 1, 196608, 0xb9cb71e2
|
0, 2, 2, 1, 196608, 0x143971e2
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#tb 0: 1/25
|
#tb 0: 1/25
|
||||||
0, 0, 0, 1, 196608, 0xa0939af1
|
0, 0, 0, 1, 196608, 0xa2899af1
|
||||||
0, 1, 1, 1, 196608, 0x43699af1
|
0, 1, 1, 1, 196608, 0x26409af1
|
||||||
0, 2, 2, 1, 196608, 0x69a19af1
|
0, 2, 2, 1, 196608, 0xf5209af1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user