diff --git a/ffplay.c b/ffplay.c index 02f81320a8a6bb9c5dbfdce52a86a4d6abfecc91..1c3aa63e897820b54d38b3555ed57a9db939d2b0 100644 --- a/ffplay.c +++ b/ffplay.c @@ -782,7 +782,23 @@ static void video_audio_display(VideoState *s) delay -= s->width / 2; if (delay < s->width) delay = s->width; - i_start = compute_mod(s->sample_array_index - delay * channels, SAMPLE_ARRAY_SIZE); + + i_start= x = compute_mod(s->sample_array_index - delay * channels, SAMPLE_ARRAY_SIZE); + + h= INT_MIN; + for(i=0; i<1000; i+=channels){ + int idx= (SAMPLE_ARRAY_SIZE + x - i) % SAMPLE_ARRAY_SIZE; + int a= s->sample_array[idx]; + int b= s->sample_array[(idx + 4*channels)%SAMPLE_ARRAY_SIZE]; + int c= s->sample_array[(idx + 5*channels)%SAMPLE_ARRAY_SIZE]; + int d= s->sample_array[(idx + 9*channels)%SAMPLE_ARRAY_SIZE]; + int score= a-d; + if(hlast_i_start = i_start; } else { i_start = s->last_i_start;