You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avfilter/vf_vectorscope: always flip output vertically
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user