#include <vlc_input.h>
#include <vlc_vout.h>
#include <vlc_keys.h>
-#include <vlc_aout_intf.h>
#include "libvlc_internal.h"
#include "media_internal.h" // libvlc_media_set_state()
return VLC_SUCCESS;
}
-static input_thread_t *find_input (vlc_object_t *obj)
-{
- libvlc_media_player_t *mp = (libvlc_media_player_t *)obj;
-
- return libvlc_get_input_thread (mp);
-}
-
/* */
static void libvlc_media_player_destroy( libvlc_media_player_t * );
var_Create (mp, "aout", VLC_VAR_STRING | VLC_VAR_DOINHERIT);
var_Create (mp, "mute", VLC_VAR_BOOL);
var_Create (mp, "volume", VLC_VAR_FLOAT);
- var_Create (mp, "find-input-callback", VLC_VAR_ADDRESS);
- var_SetAddress (mp, "find-input-callback", find_input);
var_Create (mp, "corks", VLC_VAR_INTEGER);
var_Create (mp, "amem-data", VLC_VAR_ADDRESS);
var_Create (mp, "amem-setup", VLC_VAR_ADDRESS);
var_Create (mp, "amem-rate", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);
var_Create (mp, "amem-channels", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT);
- var_Create (mp, "equalizer-preamp", VLC_VAR_FLOAT);
- var_Create (mp, "equalizer-bands", VLC_VAR_STRING);
-
mp->p_md = NULL;
mp->state = libvlc_NothingSpecial;
mp->p_libvlc_instance = instance;
mp->input.p_thread = NULL;
- mp->input.p_resource = NULL;
+ mp->input.p_resource = input_resource_New(VLC_OBJECT(mp));
+ if (unlikely(mp->input.p_resource == NULL))
+ {
+ vlc_object_release(mp);
+ return NULL;
+ }
vlc_mutex_init (&mp->input.lock);
mp->i_refcount = 1;
mp->p_event_manager = libvlc_event_manager_new(mp, instance);
if (unlikely(mp->p_event_manager == NULL))
{
+ input_resource_Release(mp->input.p_resource);
vlc_object_release(mp);
return NULL;
}
/* No need for lock_input() because no other threads knows us anymore */
if( p_mi->input.p_thread )
release_input_thread(p_mi, true);
- if( p_mi->input.p_resource )
- {
- input_resource_Terminate( p_mi->input.p_resource );
- input_resource_Release( p_mi->input.p_resource );
- p_mi->input.p_resource = NULL;
- }
+ input_resource_Terminate( p_mi->input.p_resource );
+ input_resource_Release( p_mi->input.p_resource );
vlc_mutex_destroy( &p_mi->input.lock );
libvlc_event_manager_release( p_mi->p_event_manager );
return -1;
}
- if( !p_mi->input.p_resource )
- p_mi->input.p_resource = input_resource_New( VLC_OBJECT( p_mi ) );
p_input_thread = input_Create( p_mi, p_mi->p_md->p_input_item, NULL,
p_mi->input.p_resource );
unlock(p_mi);
}
p_mi->input.p_thread = p_input_thread;
unlock_input(p_mi);
-
- if( strlen( var_GetString( p_mi, "equalizer-bands" ) ) > 0 )
- aout_EnableFilter( p_mi, "equalizer", true );
-
return 0;
}
libvlc_event_send( p_mi->p_event_manager, &event );
}
- if( p_mi->input.p_resource != NULL )
- input_resource_Terminate( p_mi->input.p_resource );
+ input_resource_Terminate( p_mi->input.p_resource );
unlock_input(p_mi);
}
if ( !p_input_thread )
return false;
- b_will_play = !p_input_thread->b_die && !p_input_thread->b_dead;
+ b_will_play = !p_input_thread->b_dead;
vlc_object_release( p_input_thread );
return b_will_play;
vlc_object_release( p_input_thread );
}
}
-
-int libvlc_media_player_set_equalizer( libvlc_media_player_t *p_mi, libvlc_equalizer_t *p_equalizer )
-{
- if ( !p_equalizer )
- {
- aout_EnableFilter( p_mi, "equalizer", false );
- var_SetString( p_mi, "equalizer-bands", NULL );
- return 0;
- }
-
- var_SetFloat( p_mi, "equalizer-preamp", p_equalizer->f_preamp );
-
- char *psz_bands = NULL;
- for ( int i = 0; i < EQZ_BANDS_MAX; i++ )
- {
- char *psz;
- if ( asprintf( &psz, "%s %.07f", psz_bands ? psz_bands : "", p_equalizer->f_amp[i] ) == -1 )
- {
- free( psz_bands );
- return -1;
- }
- free( psz_bands );
- psz_bands = psz;
- }
- var_SetString( p_mi, "equalizer-bands", psz_bands );
- free( psz_bands );
-
- aout_EnableFilter( p_mi, "equalizer", true );
- return 0;
-}