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@passwd.hu>
This commit is contained in:
		
							parent
							
								
									a7425f712a
								
							
						
					
					
						commit
						573f05a753
					
				| @ -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) |         if (realloc_texture(&s->vis_texture, SDL_PIXELFORMAT_ARGB8888, s->width, s->height, SDL_BLENDMODE_NONE, 1) < 0) | ||||||
|             return; |             return; | ||||||
| 
 | 
 | ||||||
|  |         if (s->xpos >= s->width) | ||||||
|  |             s->xpos = 0; | ||||||
|         nb_display_channels= FFMIN(nb_display_channels, 2); |         nb_display_channels= FFMIN(nb_display_channels, 2); | ||||||
|         if (rdft_bits != s->rdft_bits) { |         if (rdft_bits != s->rdft_bits) { | ||||||
|             av_rdft_end(s->rdft); |             av_rdft_end(s->rdft); | ||||||
| @ -1197,8 +1199,6 @@ static void video_audio_display(VideoState *s) | |||||||
|         } |         } | ||||||
|         if (!s->paused) |         if (!s->paused) | ||||||
|             s->xpos++; |             s->xpos++; | ||||||
|         if (s->xpos >= s->width) |  | ||||||
|             s->xpos= s->xleft; |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user