[FFmpeg-cvslog] fftools/ffplay: do not write out of rdft visualization texture

Marton Balint git at videolan.org
Sun Mar 28 13:02:21 EEST 2021


ffmpeg | branch: release/4.3 | Marton Balint <cus at passwd.hu> | Wed Mar  3 23:23:10 2021 +0100| [4bbcaf75595425292e1ac23f8c99dbd8f7b9f9bc] | 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>
(cherry picked from commit 573f05a7533cd9aed3ed895b4fa4ad8fcba4e56a)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4bbcaf75595425292e1ac23f8c99dbd8f7b9f9bc
---

 fftools/ffplay.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fftools/ffplay.c b/fftools/ffplay.c
index d673b8049a..41339b30e3 100644
--- a/fftools/ffplay.c
+++ b/fftools/ffplay.c
@@ -1151,6 +1151,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);
@@ -1200,8 +1202,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