trigger for the audio scope vissualization
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 29 Jan 2007 22:06:55 +0000 (22:06 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 29 Jan 2007 22:06:55 +0000 (22:06 +0000)
Originally committed as revision 7761 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffplay.c

index 02f8132..1c3aa63 100644 (file)
--- 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(h<score && (b^c)<0){
+                h= score;
+                i_start= idx;
+            }
+        }
+
         s->last_i_start = i_start;
     } else {
         i_start = s->last_i_start;