[FFmpeg-devel] [PATCH 1/5] avradio/vissualize: support simple skiping of chars
Michael Niedermayer
michael at niedermayer.cc
Sat Jul 22 17:11:00 EEST 2023
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
libavradio/vissualize.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/libavradio/vissualize.c b/libavradio/vissualize.c
index a3dcf5801b..2d397546dc 100644
--- a/libavradio/vissualize.c
+++ b/libavradio/vissualize.c
@@ -81,8 +81,11 @@ static void draw_char(uint8_t *frame_buffer, ptrdiff_t stride, char ch, int x0,
}
}
-static void draw_string(uint8_t *frame_buffer, ptrdiff_t stride, char *str, int x0, int y0, int xd, int yd, int r, int g, int b, int w, int h)
+static void draw_string(uint8_t *frame_buffer, ptrdiff_t stride, char *str, int x0, int y0, int xd, int yd, int r, int g, int b, int w, int h, int skipx)
{
+ x0 += xd*9*skipx;
+ y0 += yd*9*skipx;
+
while(*str) {
draw_char(frame_buffer, stride, *str++, x0, y0, xd, yd, r, g, b, w, h);
x0 += xd*9;
@@ -206,6 +209,7 @@ int ff_sdr_vissualization(SDRContext *sdr, AVStream *st, AVPacket *pkt)
int color = s->stream ? 64 : 32;
int size = s->stream ? 181 : 128;
int xd = size, yd = size;
+ int pos;
if (!s->in_station_list)
continue;
@@ -217,14 +221,14 @@ int ff_sdr_vissualization(SDRContext *sdr, AVStream *st, AVPacket *pkt)
}
av_strlcatf(text, sizeof(text), "%f Mhz %d %d %d",
f/1000000, (int)s->score, ff_sdr_histogram_score(s), s->timeout);
- draw_string(pkt->data, 4*w, text, xmid + 8*yd, 320*h2, xd, yd, color, color, color, w, h);
+ draw_string(pkt->data, 4*w, text, xmid + 8*yd, 320*h2, xd, yd, color, color, color, w, h, 0);
if (s->radiotext[0]) {
- draw_string(pkt->data, 4*w, s->radiotext, xmid + 8*yd, 320*h2 + 24*yd, xd, yd, color, color, color, w, h);
+ draw_string(pkt->data, 4*w, s->radiotext, xmid + 8*yd, 320*h2 + 24*yd, xd, yd, color, color, color, w, h, 0);
}
if (s->title[0] || s->artist[0]) {
int len = strlen(s->title) + 1;
- draw_string(pkt->data, 4*w, s->title , xmid + 8*yd, 320*h2 + 2*24*yd, xd, yd, color, color*1.5, color, w, h);
- draw_string(pkt->data, 4*w, s->artist, xmid + 8*yd + 9*xd*len, 320*h2 + 2*24*yd + 9*yd*len, xd, yd, color, color*2, color, w, h);
+ draw_string(pkt->data, 4*w, s->title , xmid + 8*yd, 320*h2 + 2*24*yd, xd, yd, color, color*1.5, color, w, h, 0);
+ draw_string(pkt->data, 4*w, s->artist, xmid + 8*yd, 320*h2 + 2*24*yd, xd, yd, color, color*2, color, w, h, len);
}
}
}
--
2.31.1
More information about the ffmpeg-devel
mailing list