summaryrefslogtreecommitdiff
path: root/ffplay.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2007-01-29 22:06:55 +0000
committerMichael Niedermayer <michaelni@gmx.at>2007-01-29 22:06:55 +0000
commitac50bcc834a3d2cee880813424072768f84c6229 (patch)
tree346e0db298615c81ac287e3ca10b8f92b7498095 /ffplay.c
parenta58b82f874a08978ab2b1bcd1c07c0c8fa0ccdfd (diff)
trigger for the audio scope vissualization
Originally committed as revision 7761 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffplay.c')
-rw-r--r--ffplay.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/ffplay.c b/ffplay.c
index 02f81320a8..1c3aa63e89 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(h<score && (b^c)<0){
+ h= score;
+ i_start= idx;
+ }
+ }
+
s->last_i_start = i_start;
} else {
i_start = s->last_i_start;