|
@@ -810,20 +810,20 @@ static void video_audio_display(VideoState *s)
|
|
|
|
|
|
i_start= x = compute_mod(s->sample_array_index - delay * channels, SAMPLE_ARRAY_SIZE);
|
|
|
if(s->show_audio==1){
|
|
|
- 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;
|
|
|
+ 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 {
|
|
@@ -832,45 +832,45 @@ static void video_audio_display(VideoState *s)
|
|
|
|
|
|
bgcolor = SDL_MapRGB(screen->format, 0x00, 0x00, 0x00);
|
|
|
if(s->show_audio==1){
|
|
|
- fill_rectangle(screen,
|
|
|
- s->xleft, s->ytop, s->width, s->height,
|
|
|
- bgcolor);
|
|
|
-
|
|
|
- fgcolor = SDL_MapRGB(screen->format, 0xff, 0xff, 0xff);
|
|
|
-
|
|
|
- /* total height for one channel */
|
|
|
- h = s->height / nb_display_channels;
|
|
|
- /* graph height / 2 */
|
|
|
- h2 = (h * 9) / 20;
|
|
|
- for(ch = 0;ch < nb_display_channels; ch++) {
|
|
|
- i = i_start + ch;
|
|
|
- y1 = s->ytop + ch * h + (h / 2); /* position of center line */
|
|
|
- for(x = 0; x < s->width; x++) {
|
|
|
- y = (s->sample_array[i] * h2) >> 15;
|
|
|
- if (y < 0) {
|
|
|
- y = -y;
|
|
|
- ys = y1 - y;
|
|
|
- } else {
|
|
|
- ys = y1;
|
|
|
+ fill_rectangle(screen,
|
|
|
+ s->xleft, s->ytop, s->width, s->height,
|
|
|
+ bgcolor);
|
|
|
+
|
|
|
+ fgcolor = SDL_MapRGB(screen->format, 0xff, 0xff, 0xff);
|
|
|
+
|
|
|
+ /* total height for one channel */
|
|
|
+ h = s->height / nb_display_channels;
|
|
|
+ /* graph height / 2 */
|
|
|
+ h2 = (h * 9) / 20;
|
|
|
+ for(ch = 0;ch < nb_display_channels; ch++) {
|
|
|
+ i = i_start + ch;
|
|
|
+ y1 = s->ytop + ch * h + (h / 2); /* position of center line */
|
|
|
+ for(x = 0; x < s->width; x++) {
|
|
|
+ y = (s->sample_array[i] * h2) >> 15;
|
|
|
+ if (y < 0) {
|
|
|
+ y = -y;
|
|
|
+ ys = y1 - y;
|
|
|
+ } else {
|
|
|
+ ys = y1;
|
|
|
+ }
|
|
|
+ fill_rectangle(screen,
|
|
|
+ s->xleft + x, ys, 1, y,
|
|
|
+ fgcolor);
|
|
|
+ i += channels;
|
|
|
+ if (i >= SAMPLE_ARRAY_SIZE)
|
|
|
+ i -= SAMPLE_ARRAY_SIZE;
|
|
|
}
|
|
|
- fill_rectangle(screen,
|
|
|
- s->xleft + x, ys, 1, y,
|
|
|
- fgcolor);
|
|
|
- i += channels;
|
|
|
- if (i >= SAMPLE_ARRAY_SIZE)
|
|
|
- i -= SAMPLE_ARRAY_SIZE;
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- fgcolor = SDL_MapRGB(screen->format, 0x00, 0x00, 0xff);
|
|
|
+ fgcolor = SDL_MapRGB(screen->format, 0x00, 0x00, 0xff);
|
|
|
|
|
|
- for(ch = 1;ch < nb_display_channels; ch++) {
|
|
|
- y = s->ytop + ch * h;
|
|
|
- fill_rectangle(screen,
|
|
|
- s->xleft, y, s->width, 1,
|
|
|
- fgcolor);
|
|
|
- }
|
|
|
- SDL_UpdateRect(screen, s->xleft, s->ytop, s->width, s->height);
|
|
|
+ for(ch = 1;ch < nb_display_channels; ch++) {
|
|
|
+ y = s->ytop + ch * h;
|
|
|
+ fill_rectangle(screen,
|
|
|
+ s->xleft, y, s->width, 1,
|
|
|
+ fgcolor);
|
|
|
+ }
|
|
|
+ SDL_UpdateRect(screen, s->xleft, s->ytop, s->width, s->height);
|
|
|
}else{
|
|
|
nb_display_channels= FFMIN(nb_display_channels, 2);
|
|
|
if(rdft_bits != s->rdft_bits){
|