]> git.sesse.net Git - vlc/blobdiff - src/audio_output/common.c
Ignore unmute if volume hasn't been set or muted. fixes #3636
[vlc] / src / audio_output / common.c
index 151bf8b63d77fe19bc1ae18ea36d76b119ec5ee6..e3c7d94c377771950b25267ea464586b26f77047 100644 (file)
@@ -79,7 +79,8 @@ aout_instance_t * __aout_New( vlc_object_t * p_parent )
     aout_instance_t * p_aout;
 
     /* Allocate descriptor. */
-    p_aout = vlc_object_create( p_parent, VLC_OBJECT_AOUT );
+    p_aout = vlc_custom_create( p_parent, sizeof( *p_aout ), VLC_OBJECT_AOUT,
+                                "audio output" );
     if( p_aout == NULL )
     {
         return NULL;
@@ -101,6 +102,8 @@ aout_instance_t * __aout_New( vlc_object_t * p_parent )
 
     vlc_object_set_destructor( p_aout, aout_Destructor );
 
+    vlc_object_attach( p_aout, p_parent );
+
     return p_aout;
 }
 
@@ -199,7 +202,7 @@ unsigned int aout_FormatNbChannels( const audio_sample_format_t * p_format )
  *****************************************************************************/
 unsigned int aout_BitsPerSample( vlc_fourcc_t i_format )
 {
-    switch( i_format )
+    switch( vlc_fourcc_GetCodec( AUDIO_ES, i_format ) )
     {
     case VLC_CODEC_U8:
     case VLC_CODEC_S8:
@@ -219,11 +222,13 @@ unsigned int aout_BitsPerSample( vlc_fourcc_t i_format )
 
     case VLC_CODEC_S32L:
     case VLC_CODEC_S32B:
-    case VLC_CODEC_FL32:
+    case VLC_CODEC_F32L:
+    case VLC_CODEC_F32B:
     case VLC_CODEC_FI32:
         return 32;
 
-    case VLC_CODEC_FL64:
+    case VLC_CODEC_F64L:
+    case VLC_CODEC_F64B:
         return 64;
 
     default: