attempt to retain samples in mlt_frame_mix_audio, make consumers request the number...
[melted] / mlt / src / modules / sdl / consumer_sdl.c
index 714fc66..943a0d1 100644 (file)
@@ -199,9 +199,13 @@ static int consumer_play_audio( consumer_sdl this, mlt_frame frame, int init_aud
        // Get the properties of this consumer
        mlt_properties properties = this->properties;
        mlt_audio_format afmt = mlt_audio_pcm;
-       int channels;
-       int samples;
-       int frequency;
+
+       // Set the preferred params of the test card signal
+       int channels = 2;
+       int frequency = 48000;
+       static int counter = 0;
+       int samples = mlt_sample_calculator( ( this->height < 576 ? 29.97 : 25 ), frequency, counter++ );
+       
        int16_t *pcm;
        int bytes;
 
@@ -232,13 +236,10 @@ static int consumer_play_audio( consumer_sdl this, mlt_frame frame, int init_aud
                        fprintf( stderr, "SDL failed to open audio: %s\n", SDL_GetError() );
                        init_audio = 2;
                }
-               else
+               else if ( got.size != 0 )
                {
-                       if ( got.size != 0 )
-                       {
-                               SDL_PauseAudio( 0 );
-                               init_audio = 0;
-                       }
+                       SDL_PauseAudio( 0 );
+                       init_audio = 0;
                }
        }