All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 6/6] pcm:plug: save converter config
@ 2017-02-17  7:18 sutar.mounesh
  2017-02-17 17:44 ` Takashi Iwai
  0 siblings, 1 reply; 3+ messages in thread
From: sutar.mounesh @ 2017-02-17  7:18 UTC (permalink / raw)
  To: patch; +Cc: Mounesh Sutar, alsa-devel, Andreas Pape, mounesh_sutar

From: Andreas Pape <apape@de.adit-jv.com>

Passed config is freed after call to open, thus it is invalid when
trying to extract the converter name. So config entry is saved
for later usage.

Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Mounesh Sutar <sutar.mounesh@gmail.com>

diff --git a/src/pcm/pcm_plug.c b/src/pcm/pcm_plug.c
index 266707b..6d0c03d 100644
--- a/src/pcm/pcm_plug.c
+++ b/src/pcm/pcm_plug.c
@@ -64,6 +64,8 @@ static int snd_pcm_plug_close(snd_pcm_t *pcm)
 	snd_pcm_plug_t *plug = pcm->private_data;
 	int err, result = 0;
 	free(plug->ttable);
+	if (plug->rate_converter)
+		snd_config_delete((snd_config_t*)plug->rate_converter);
 	assert(plug->gen.slave == plug->req_slave);
 	if (plug->gen.close_slave) {
 		snd_pcm_unlink_hw_ptr(pcm, plug->req_slave);
@@ -1108,7 +1110,15 @@ int snd_pcm_plug_open(snd_pcm_t **pcmp,
 	plug->sformat = sformat;
 	plug->schannels = schannels;
 	plug->srate = srate;
-	plug->rate_converter = rate_converter;
+	if (rate_converter) {
+		if ((err = snd_config_copy((snd_config_t**)&plug->rate_converter,
+					   (snd_config_t *)rate_converter)) < 0)
+			free(plug);
+			return err;
+	}
+	else
+		snd_config_delete((snd_config_t*)plug->rate_converter);
+
 	plug->gen.slave = plug->req_slave = slave;
 	plug->gen.close_slave = close_slave;
 	plug->route_policy = route_policy;
@@ -1119,6 +1129,8 @@ int snd_pcm_plug_open(snd_pcm_t **pcmp,
 	
 	err = snd_pcm_new(&pcm, SND_PCM_TYPE_PLUG, name, slave->stream, slave->mode);
 	if (err < 0) {
+		if (plug->rate_converter)
+			snd_config_delete((snd_config_t*)plug->rate_converter);
 		free(plug);
 		return err;
 	}
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 6/6] pcm:plug: save converter config
  2017-02-17  7:18 [PATCH 6/6] pcm:plug: save converter config sutar.mounesh
@ 2017-02-17 17:44 ` Takashi Iwai
  2017-02-27  7:31   ` Sutar, Mounesh
  0 siblings, 1 reply; 3+ messages in thread
From: Takashi Iwai @ 2017-02-17 17:44 UTC (permalink / raw)
  To: sutar.mounesh; +Cc: alsa-devel, Andreas Pape, mounesh_sutar

On Fri, 17 Feb 2017 08:18:02 +0100,
sutar.mounesh@gmail.com wrote:
> 
> From: Andreas Pape <apape@de.adit-jv.com>
> 
> Passed config is freed after call to open, thus it is invalid when
> trying to extract the converter name. So config entry is saved
> for later usage.
> 
> Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
> Signed-off-by: Mounesh Sutar <sutar.mounesh@gmail.com>
> 
> diff --git a/src/pcm/pcm_plug.c b/src/pcm/pcm_plug.c
> index 266707b..6d0c03d 100644
> --- a/src/pcm/pcm_plug.c
> +++ b/src/pcm/pcm_plug.c
> @@ -64,6 +64,8 @@ static int snd_pcm_plug_close(snd_pcm_t *pcm)
>  	snd_pcm_plug_t *plug = pcm->private_data;
>  	int err, result = 0;
>  	free(plug->ttable);
> +	if (plug->rate_converter)
> +		snd_config_delete((snd_config_t*)plug->rate_converter);
>  	assert(plug->gen.slave == plug->req_slave);
>  	if (plug->gen.close_slave) {
>  		snd_pcm_unlink_hw_ptr(pcm, plug->req_slave);
> @@ -1108,7 +1110,15 @@ int snd_pcm_plug_open(snd_pcm_t **pcmp,
>  	plug->sformat = sformat;
>  	plug->schannels = schannels;
>  	plug->srate = srate;
> -	plug->rate_converter = rate_converter;
> +	if (rate_converter) {
> +		if ((err = snd_config_copy((snd_config_t**)&plug->rate_converter,
> +					   (snd_config_t *)rate_converter)) < 0)
> +			free(plug);
> +			return err;
> +	}
> +	else
> +		snd_config_delete((snd_config_t*)plug->rate_converter);

Why do we need to delete plug->rate_converter here...?
It's nowhere assigned after the patch?


thanks,

Takashi

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 6/6] pcm:plug: save converter config
  2017-02-17 17:44 ` Takashi Iwai
@ 2017-02-27  7:31   ` Sutar, Mounesh
  0 siblings, 0 replies; 3+ messages in thread
From: Sutar, Mounesh @ 2017-02-27  7:31 UTC (permalink / raw)
  To: Takashi Iwai, sutar.mounesh; +Cc: alsa-devel, Andreas Pape

Hi Takashi,

Yes, it is redundant to delete plug->rate_converter.
The patch has been fixed and submitted.

Regards,
Mounesh


-----Original Message-----
From: Takashi Iwai [mailto:tiwai@suse.de] 
Sent: 17 February 2017 23:15
To: sutar.mounesh@gmail.com
Cc: alsa-devel@alsa-project.org; Sutar, Mounesh <Mounesh_Sutar@mentor.com>; Andreas Pape <apape@de.adit-jv.com>
Subject: Re: [PATCH 6/6] pcm:plug: save converter config

On Fri, 17 Feb 2017 08:18:02 +0100,
sutar.mounesh@gmail.com wrote:
> 
> From: Andreas Pape <apape@de.adit-jv.com>
> 
> Passed config is freed after call to open, thus it is invalid when 
> trying to extract the converter name. So config entry is saved for 
> later usage.
> 
> Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
> Signed-off-by: Mounesh Sutar <sutar.mounesh@gmail.com>
> 
> diff --git a/src/pcm/pcm_plug.c b/src/pcm/pcm_plug.c index 
> 266707b..6d0c03d 100644
> --- a/src/pcm/pcm_plug.c
> +++ b/src/pcm/pcm_plug.c
> @@ -64,6 +64,8 @@ static int snd_pcm_plug_close(snd_pcm_t *pcm)
>  	snd_pcm_plug_t *plug = pcm->private_data;
>  	int err, result = 0;
>  	free(plug->ttable);
> +	if (plug->rate_converter)
> +		snd_config_delete((snd_config_t*)plug->rate_converter);
>  	assert(plug->gen.slave == plug->req_slave);
>  	if (plug->gen.close_slave) {
>  		snd_pcm_unlink_hw_ptr(pcm, plug->req_slave); @@ -1108,7 +1110,15 @@ 
> int snd_pcm_plug_open(snd_pcm_t **pcmp,
>  	plug->sformat = sformat;
>  	plug->schannels = schannels;
>  	plug->srate = srate;
> -	plug->rate_converter = rate_converter;
> +	if (rate_converter) {
> +		if ((err = snd_config_copy((snd_config_t**)&plug->rate_converter,
> +					   (snd_config_t *)rate_converter)) < 0)
> +			free(plug);
> +			return err;
> +	}
> +	else
> +		snd_config_delete((snd_config_t*)plug->rate_converter);

Why do we need to delete plug->rate_converter here...?
It's nowhere assigned after the patch?


thanks,

Takashi

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-02-27  7:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-17  7:18 [PATCH 6/6] pcm:plug: save converter config sutar.mounesh
2017-02-17 17:44 ` Takashi Iwai
2017-02-27  7:31   ` Sutar, Mounesh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.