[FFmpeg-cvslog] fftools/ffplay: do not write out of rdft visualization texture
Marton Balint
git at videolan.org
Wed Mar 10 21:20:50 EET 2021
ffmpeg | branch: master | Marton Balint <cus at passwd.hu> | Wed Mar 3 23:23:10 2021 +0100| [573f05a7533cd9aed3ed895b4fa4ad8fcba4e56a] | committer: Marton Balint
fftools/ffplay: do not write out of rdft visualization texture
If the window is resized it was possible that xpos pointed outside the
visualization texture. By rearranging the overflow check we make sure this (and
a crash) does not happen.
We also don't have to use xleft for start position, as that is 0 anyways, and
if we ever want to take into account xleft then the texture should be
positioned accordingly when rendering.
Signed-off-by: Marton Balint <cus at passwd.hu>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=573f05a7533cd9aed3ed895b4fa4ad8fcba4e56a
---
fftools/ffplay.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index 471d4a2ac9..e14c800b8f 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -1148,6 +1148,8 @@ static void video_audio_display(VideoState *s)
if (realloc_texture(&s->vis_texture, SDL_PIXELFORMAT_ARGB8888, s->width, s->height, SDL_BLENDMODE_NONE, 1) < 0)
return;
+ if (s->xpos >= s->width)
+ s->xpos = 0;
nb_display_channels= FFMIN(nb_display_channels, 2);
if (rdft_bits != s->rdft_bits) {
av_rdft_end(s->rdft);
@@ -1197,8 +1199,6 @@ static void video_audio_display(VideoState *s)
}
if (!s->paused)
s->xpos++;
- if (s->xpos >= s->width)
- s->xpos= s->xleft;
}
}
More information about the ffmpeg-cvslog
mailing list