[gst-devel] Create a mixer software

chuck berry kirkhammet2005 at gmail.com
Wed Nov 26 16:44:19 CET 2008


Hi, I'm developing a little mp3 player and I'm trying to implement a
control volume by GstMixer
>From internet I've found this code:

static gboolean _ctrl_set_mixer(GstMixer *mixer, gpointer user_data)
{
   const GList *tracks;

   tracks = gst_mixer_list_tracks (mixer);

   while (tracks != NULL) {
      GstMixerTrack *track = GST_MIXER_TRACK (tracks->data);

      if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
         CtrlVolume *self;

         self = CTRL_VOLUME (user_data);

         self->_priv->mixer = mixer;
         self->_priv->track = track;

         /* no need to ref the mixer element */
         g_object_ref (self->_priv->track);
         return TRUE;
      }

      tracks = tracks->next;
   }

   return FALSE;
}

static gboolean ctrl_volume_open (CtrlVolume *vol){
	
	CtrlVolume *self = (CtrlVolume *) vol;
	GList *mixer_list;
	
	if (self->_priv == NULL)
		return FALSE;
	 mixer_list = gst_audio_default_registry_mixer_filter
(_ctrl_set_mixer,TRUE,self);

    if (mixer_list == NULL){
 		g_print("non ho trovato mixer \n");
		return FALSE;
	}
    /* do not unref the mixer as we keep the ref for self->priv->mixer */
    g_list_free (mixer_list);

    return TRUE;
}

With these 2 function I can implement an hardware mixer but I want a
software mixer. What can I do that?
Thanks
Bye




More information about the gstreamer-devel mailing list