]> git.sesse.net Git - vlc/commitdiff
spatializer: setup filter_t only on success
authorRémi Denis-Courmont <remi@remlab.net>
Tue, 6 Nov 2012 17:38:20 +0000 (19:38 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Tue, 6 Nov 2012 17:38:20 +0000 (19:38 +0200)
modules/audio_filter/spatializer/spatializer.cpp

index dee38c5842e8d6158b14ea67ce4c254b580c08ab..5b4bd90bf2e2d4f7b421043aeec3ef22890866e7 100644 (file)
@@ -134,24 +134,6 @@ static int Open( vlc_object_t *p_this )
     filter_sys_t *p_sys;
     vlc_object_t *p_aout = p_filter->p_parent;
 
-    if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 ||
-        p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
-    {
-        p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32;
-        p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32;
-        msg_Warn( p_filter, "bad input or output format" );
-        return VLC_EGENERIC;
-    }
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
-    {
-        memcpy( &p_filter->fmt_out.audio, &p_filter->fmt_in.audio,
-                sizeof(audio_sample_format_t) );
-        msg_Warn( p_filter, "input and output formats are not similar" );
-        return VLC_EGENERIC;
-    }
-
-    p_filter->pf_audio_filter = DoWork;
-
      /* Allocate structure */
     p_sys = p_filter->p_sys = (filter_sys_t*)malloc( sizeof( *p_sys ) );
     if( !p_sys )
@@ -177,6 +159,9 @@ static int Open( vlc_object_t *p_this )
                          callbacks[i].fp_callback, p_sys );
     }
 
+    p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32;
+    p_filter->fmt_out.audio = p_filter->fmt_in.audio;
+    p_filter->pf_audio_filter = DoWork;
     return VLC_SUCCESS;
 }