OSDN Git Service
Jaroslav Kysela [Sun, 25 Nov 2007 22:19:49 +0000 (23:19 +0100)]
fix error path in snd_config_hook_load_for_all_cards()
Takashi Iwai [Fri, 23 Nov 2007 14:46:48 +0000 (15:46 +0100)]
Fix mmap with multi plugin
The mmap of multi plugin seems broken (for a long time!) due to its
creation of local buffer via snd_pcm_mmap(). Since the multi plugin
just needs to shadow the mmap buffer of each slave, it now has
mmap_shadow=1 and its own mmap/unmap method to do shadowing.
Takashi Iwai [Wed, 21 Nov 2007 11:19:43 +0000 (12:19 +0100)]
Clean up using gettimestamp()
Introduce a new local function gettimestamp() to get the current timestamp.
Takashi Iwai [Wed, 21 Nov 2007 11:10:35 +0000 (12:10 +0100)]
Fix timestamp in status in PCM direct plugins
PCM direct plugins didn't update the timestamp properly.
Now it always starts the slave PCM with MMAP tstamp_mode so that the
timestamp will be being updated. When a client is set up as MMAP
tstamp_mode as well, simply copy this slave timestamp. Otherwise
status callback calculates the current timestamp as usual.
Takashi Iwai [Tue, 20 Nov 2007 14:29:10 +0000 (15:29 +0100)]
pcm - Limit the avail_min minimum size
Fix avail_min if it's less than period_size. The too small avail_min
is simply useless and the cause of CPU hog with rate plugin.
Clemens Ladisch [Mon, 19 Nov 2007 07:07:19 +0000 (08:07 +0100)]
oxygen: enhance configuration
Remove the now superfluous softvol plugin from the CMI8788
configuration, use 24-bit samples for dmix, and add an alias for the
AV200 driver.
Clemens Ladisch [Mon, 19 Nov 2007 06:55:49 +0000 (07:55 +0100)]
alsa.conf: cosmetic change
Add a whitespace to make the ctl.hw definition better readable.
Takashi Iwai [Fri, 16 Nov 2007 11:06:43 +0000 (12:06 +0100)]
Fix wrong return values in direct plugins
Fixed the codes returning error values that are not set properly
via errno.
Stas Sergeev [Mon, 12 Nov 2007 11:01:16 +0000 (12:01 +0100)]
Remove ugly hack in rate plugin poll_descriptors callback
The rate plugin has ugly hacks in poll_descriptors callback to adjust
avail_min when partial read/write occurs. This causes often unexpected
problems like XRUNs, especially with two-period cases.
Let's remove that beast, it's rather harmful than useful.
Signed-off-by: Stas Sergeev <stsp@aknet.ru>
Clemens Ladisch [Mon, 12 Nov 2007 07:50:08 +0000 (08:50 +0100)]
simple mixer: fix calculation of control range
When calculating the value range of a control, the variables cannot be
initialized with zero because this would prevent the minimum from having
a value above zero or the maximum from having a value below zero.
Clemens Ladisch [Mon, 12 Nov 2007 07:49:10 +0000 (08:49 +0100)]
midiloop: use blocking mode
Busy waiting is evil - use blocking mode when reading the actual test data.
Takashi Iwai [Mon, 5 Nov 2007 11:46:46 +0000 (12:46 +0100)]
ioplug - Fix the refinement of period_* after periods
When changing only PERIODS after BUFFER_*, ioplug doesn't update
the corresponding PERIOD_* parameters properly. This should fix
ALSA bug#2601.
Takashi Iwai [Tue, 30 Oct 2007 13:28:30 +0000 (14:28 +0100)]
Re-add assert.h to asoundlib.h
Looks like many apps rely on implicit inclusion of assert.h in asoundlib.h.
Take it back again to make them happy.
Takashi Iwai [Tue, 30 Oct 2007 11:31:55 +0000 (12:31 +0100)]
Remove sequencer instrument layer
Remove obsoleted sequencer instrument layer from alsa-lib.
The old symbols are compiled in as default as dummy functions
(unless --disable-old-symbols is given to configure) so that
the old binaries can still work more or less.
Takashi Iwai [Tue, 30 Oct 2007 10:50:45 +0000 (11:50 +0100)]
Update asound_fm.h for patch loading over hwdep
Update asound_fm.h to add the new struct and ioctl for patch loading
over hwdep.
Takashi Iwai [Thu, 25 Oct 2007 13:36:03 +0000 (15:36 +0200)]
Remove assert from header files
Putting assert in the public macros isn't good idea at all.
Let's get rid of them.
Also, clean up snd*_alloca() functions to use a helper macro
instead of copy and paste.
Takashi Iwai [Thu, 25 Oct 2007 13:34:43 +0000 (15:34 +0200)]
Fix gcc compile warnings
Fix gcc compile warnings with nasty const cast. Let's use simply macros
instead of inline functions. It's just an array access after all...
Takashi Iwai [Wed, 24 Oct 2007 11:04:14 +0000 (13:04 +0200)]
Export dB conversion helper functions
Export helper functions to convert dB level and range.
snd_tlv_*dB*() are to convert dB level or range directly from TLV data.
snd_ctl_*dB*() are to get dB level or range from a control element.
Takashi Iwai [Wed, 24 Oct 2007 10:53:08 +0000 (12:53 +0200)]
Change assert condition in error message handler
Activating assert() in the default error message handler isn't always
good for producitve systems. Make this optional and enable only when
a special configure option is given (i.e. for explicit debugging).
Takashi Iwai [Thu, 18 Oct 2007 09:10:35 +0000 (11:10 +0200)]
snd_pcm_dmix_close: raise semaphore if unable to discard
This patch causes snd_pcm_dmix_close() to up a semaphore after downing it
if it is unable to discard it. It prevents some deadlock that I am
getting when a couple of applications interact and one of them closes the
device and later re-opens it.
From: Mike Gorse <mgorse@mgorse.dhs.org>
Jaroslav Kysela [Mon, 15 Oct 2007 08:36:46 +0000 (10:36 +0200)]
Added tag v1.0.15 for changeset
9e2f117f24b9
Jaroslav Kysela [Mon, 15 Oct 2007 08:36:46 +0000 (10:36 +0200)]
release 1.0.15
Patch-level: Merged
Jaroslav Kysela [Mon, 15 Oct 2007 08:24:55 +0000 (10:24 +0200)]
Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
Jaroslav Kysela [Fri, 21 Sep 2007 08:40:55 +0000 (10:40 +0200)]
Added tag v1.0.15rc3 for changeset
d2c731f5701f
Jaroslav Kysela [Fri, 21 Sep 2007 08:40:55 +0000 (10:40 +0200)]
release 1.0.15rc3
Patch-level: Merged
Takashi Iwai [Thu, 20 Sep 2007 11:20:03 +0000 (13:20 +0200)]
Fix wrong offset calculation in snd_pcm_{read|write}_mmap()
The offset used in snd_pcm_{read|write}_mmap() is not the linear offset
but the offset in a ring buffer. It has to be rounded.
Stas Sergeev [Wed, 19 Sep 2007 19:29:41 +0000 (21:29 +0200)]
PC-Speaker config update
The attached patch updates the PC-Speaker.conf for the use of softvol.
Signed-off-by: Stas Sergeev <stsp@aknet.ru>
Takashi Iwai [Mon, 17 Sep 2007 13:03:52 +0000 (15:03 +0200)]
Fix subdevice number to 0 for dmix/dsnoop
The dmix and dsnoop plugins need a fixed substream number instead of
the next-available one (-1) as the default number. Now it's set to 0.
Jaroslav Kysela [Wed, 12 Sep 2007 13:02:03 +0000 (15:02 +0200)]
changed python-incdir to python-includes for configure.in
Jaroslav Kysela [Wed, 12 Sep 2007 09:15:52 +0000 (11:15 +0200)]
Added tag v1.0.15rc2 for changeset
6e8e8b05cef4
Jaroslav Kysela [Wed, 12 Sep 2007 09:15:52 +0000 (11:15 +0200)]
release 1.0.15rc2
Patch-level: Merged
Takashi Iwai [Fri, 31 Aug 2007 14:41:19 +0000 (16:41 +0200)]
Allow empty pythonincdir option
The include path options can be empty if the python is installed in
the standard header path. So, configure shouldn't check its emptiness.
Takashi Iwai [Fri, 31 Aug 2007 14:40:07 +0000 (16:40 +0200)]
Fix a typo
$PYTHON_INCDIR itself already contains -I
Jaroslav Kysela [Fri, 31 Aug 2007 13:22:26 +0000 (15:22 +0200)]
improved python detection and added --with-pythonincdir for configure.in
Jaroslav Kysela [Thu, 30 Aug 2007 12:12:42 +0000 (14:12 +0200)]
alsa simple mixer - python basic abstraction - simplified using get/setArray
Jaroslav Kysela [Thu, 30 Aug 2007 08:23:29 +0000 (10:23 +0200)]
Added tag v1.0.15rc1 for changeset
0de58d1f43df
Jaroslav Kysela [Thu, 30 Aug 2007 08:23:29 +0000 (10:23 +0200)]
release 1.0.15rc1
Patch-level: Merged
Takashi Iwai [Wed, 29 Aug 2007 12:50:52 +0000 (14:50 +0200)]
Add dynamically created files to ignore file
Takashi Iwai [Wed, 29 Aug 2007 12:48:31 +0000 (14:48 +0200)]
Handle "Input Source" as a capture element
Some drivers use "Input Source" as the capture source mixer element because
mixer abstraction layer can't handle multiple "Capture Source" elements.
This patch adds a hack to handle Input Source as a capture route, and let
mixer apps know that it's a capture stuff, at least.
Takashi Iwai [Wed, 22 Aug 2007 12:24:58 +0000 (14:24 +0200)]
Add the missing include/mixer.h to doxygen.cfg
Takashi Iwai [Wed, 22 Aug 2007 11:12:21 +0000 (13:12 +0200)]
Add missing CMI8788.conf to Makefile.am
Takashi Iwai [Wed, 22 Aug 2007 09:41:58 +0000 (11:41 +0200)]
Continue build even if python-config doesn't exist
It's annoying that the configure script stops with an error if
python-config doesn't exist. It's no fatal error, so the configure
should disable the python components and continue.
Clemens Ladisch [Wed, 22 Aug 2007 07:42:13 +0000 (09:42 +0200)]
cmi8788: add alsa-lib config
Add a .conf file to enable dmix/dsnoop and softvol for CMI8788.
Using dmix helps mask the bug that all audio is forced to 48 kHz. :-)
Takashi Iwai [Wed, 15 Aug 2007 13:54:47 +0000 (15:54 +0200)]
Fix a typo in configure script
Takashi Iwai [Wed, 15 Aug 2007 12:22:33 +0000 (14:22 +0200)]
Fix use after free
Fixed use after free (ALSA bug#3300).
Takashi Iwai [Fri, 10 Aug 2007 15:41:49 +0000 (17:41 +0200)]
Add missing pcm_empty.c in doxygen configuration
Clemens Ladisch [Fri, 10 Aug 2007 07:41:17 +0000 (09:41 +0200)]
seq_midi_event: fix parsing of F9/FD bytes
Check for a valid event type when encoding a system real-time message to
prevent the bytes F9 or FD resulting in an empty sequencer message.
Clemens Ladisch [Fri, 10 Aug 2007 07:40:29 +0000 (09:40 +0200)]
seq_midi_event: fix parsing of missing data bytes
Reorganize the encoder logic to prevent status bytes that appear where
data bytes are expected from being interpreted as data bytes.
Clemens Ladisch [Fri, 10 Aug 2007 07:39:24 +0000 (09:39 +0200)]
seq_midi_event: prevent running status after system messages
Reset the event type after encoding a system message to prevent any
following data bytes from being interpreted as data for a running status
system message, which is not allowed in MIDI.
Clemens Ladisch [Fri, 10 Aug 2007 07:38:47 +0000 (09:38 +0200)]
seq_midi_event: fix encoding of data bytes after end of sysex
Create a new state ST_INVALID for the encoder to prevent data bytes at
the beginning of a stream or after a sysex message being interpreted as
note-off parameters.
Takashi Iwai [Mon, 6 Aug 2007 14:09:27 +0000 (16:09 +0200)]
Don't set PCM pointer at error in snd_pcm_hw_open()
snd_pcm_hw_open() may set a non-NULL to pcmp even if it returns an error.
Some codes like dmix expects it's NULL, and cause the double free().
Clemens Ladisch [Fri, 13 Jul 2007 10:44:43 +0000 (12:44 +0200)]
remove unused variables
Remove some unused variables that the compiler warned about.
Takashi Iwai [Wed, 11 Jul 2007 15:44:09 +0000 (17:44 +0200)]
Split mmap-emulation code from hw layer
Move out mmap-emulation code from hw layer to its own plugin.
This cleans up the mess in pcm_hw.c.
Takashi Iwai [Wed, 11 Jul 2007 14:55:54 +0000 (16:55 +0200)]
Fix clean-up of header files
Use DISTCLEANFILES instead of CLEANFILES for removal of dynamic
header files.
Jaroslav Kysela [Wed, 11 Jul 2007 08:10:12 +0000 (10:10 +0200)]
mixer simple basic abstraction - added python binding
reasons:
- rapid development
- class-like code structure
- more readable code
features:
- hcontrol binding is managed from python (opportunity to create
virtual mixer without driver or join multiple cards to behave as one)
Takashi Iwai [Tue, 10 Jul 2007 13:58:41 +0000 (15:58 +0200)]
Create asoundlib.h dynamically according to configure options
Create asoundlib.h dynamically according to configure options.
This avoids the inclusion of unused API headers.
Also don't install unused API headers.
Takashi Iwai [Thu, 5 Jul 2007 10:58:10 +0000 (12:58 +0200)]
Added PS3 configuration
Added PS3 configuration.
No iec958 PCM at this stage since it doesn't support passthru yet.
Takashi Iwai [Thu, 5 Jul 2007 10:15:16 +0000 (12:15 +0200)]
fix mmap emulation bug of recording doesn't work
From: Roy Huang <royhuang9@gmail.com>
Record doesn't work if enabling mmap emulation and rate conversion
needed, this patch fix this bug.
Takashi Iwai [Tue, 3 Jul 2007 18:22:21 +0000 (20:22 +0200)]
Fix undefined references in namehint.c
Fixed undefined references in namehint.c when not all components are
selected via configure options.
Takashi Iwai [Tue, 3 Jul 2007 17:55:57 +0000 (19:55 +0200)]
Use S16_BE as dmix format for PPC drivers
PPC drivers should use S16_BE as the base format of dmix/dsnoop.
This avoid confusion of format endianess via CPU emulation.
Takashi Iwai [Tue, 3 Jul 2007 17:52:33 +0000 (19:52 +0200)]
Add support of little-endian on i386/x86_64 dmix
i386/x86_64 alsa-lib may need to handle big-endian formats, e.g.
when running via qemu on PPC. The generic dmix code already has
both endian support, so let's use it as fallback.
Takashi Iwai [Thu, 28 Jun 2007 11:26:25 +0000 (13:26 +0200)]
Fix the build of lfloat plugin
Fixed the wrong check of softfloat in configure, which resulted in
disablement of lfloat plugin.
Jaroslav Kysela [Mon, 11 Jun 2007 08:52:17 +0000 (10:52 +0200)]
Added tag v1.0.14a for changeset
9005d28a1f9e
Jaroslav Kysela [Mon, 11 Jun 2007 08:52:17 +0000 (10:52 +0200)]
release 1.0.14a
Patch-level: Merged
Takashi Iwai [Fri, 8 Jun 2007 09:35:03 +0000 (11:35 +0200)]
Fix plugin directory
Fix a typo in configure script that results in a wrong plugin directory.
ALSA bug#3148
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3148
Takashi Iwai [Mon, 4 Jun 2007 13:22:04 +0000 (15:22 +0200)]
Properly disable -Bsymbolic-functions if ld doesn't support
Disable -Bsymbolic-functions option properly if the ld on the system
doesn't support it.
Jaroslav Kysela [Thu, 31 May 2007 06:54:49 +0000 (08:54 +0200)]
Added tag v1.0.14 for changeset
83a170c1f7c4
Jaroslav Kysela [Thu, 31 May 2007 06:54:49 +0000 (08:54 +0200)]
release 1.0.14
Patch-level: Merged
Takashi Iwai [Tue, 22 May 2007 16:38:58 +0000 (18:38 +0200)]
Specify subdevice number for Maestor3 dmix setting
The subdevice number of a dmix slave PCM has to be specified explicitly
for the device with multiple substreams such as Maestro3.
Clemens Ladisch [Mon, 21 May 2007 07:13:19 +0000 (09:13 +0200)]
dmix/dshare/dsnoop plugin: enable slowptr by default
Enabling the slowptr options does not make snd_pcm_delay() and related
functions much slower than they would have been with a hw device, while
disabling this option greatly reduces the accuracy of those functions,
thus creating more jitter in any media player application that
synchronizes its output to the sound device.
Therefore, it is preferrable to have this option enabled by default.
Steve Longerbeam [Fri, 18 May 2007 13:04:12 +0000 (15:04 +0200)]
Add support for gain in softvol plugin
This patch allows for gain in the softvol plugin, in addition to attenuation.
The plugin now has a "max_dB" parameter (up to 50 dB) as well as the
original "min_dB" parameter (down to -51 dB). max_dB defaults to 0 dB, so
unless max_dB is specified in a device conf, the behavior of the plugin will
be the same as before (attenuation only).
HDA-Intel.conf is also modified to use softvol for its default capture.
So now, capture is filtered through softvol (range -30 to +30 dB) before
being passed on to dsnoop as before.
The softvol plugin allows a range of -51 to +50 dB, so max_dB could be
increased to 50. But eventually samples are going to get clipped. At 40
dB I was beginning to get clipping when recording a sample sound at a
"reasonably soft" volume using a digital mic on the stac9205 HDA codec.
The motivation for this work is that some HDA codecs have no hardware gain
control for some paths. For instance, the stac9205 has support for digital
mics, but there is no gain control widget for this signal before it is placed
on the Azalia link (only a mute). Therefore gain can only be accomplished
via software.
Signed-off-by: Steve Longerbeam <stevel@embeddedalley.com>
Takashi Iwai [Tue, 15 May 2007 13:58:58 +0000 (15:58 +0200)]
Revert the wrong change in src/pcm/Makefile.am
Reverted the wrong change in src/pcm/Makefile.am, accidentally merged
from my own development version...
Takashi Iwai [Thu, 3 May 2007 18:55:54 +0000 (20:55 +0200)]
Add config and plugin directory options to configure
Added --with-configdir and --with-plugindir options to configure
which specify the directories for config files and plugin objects
respectively. The default paths when these options are not
specified are unchanged.
Jaroslav Kysela [Wed, 2 May 2007 06:45:45 +0000 (08:45 +0200)]
Added tag v1.0.14rc4 for changeset
b557eb8496bb
Jaroslav Kysela [Wed, 2 May 2007 06:45:45 +0000 (08:45 +0200)]
release 1.0.14rc4
Patch-level: Merged
Takashi Iwai [Tue, 10 Apr 2007 11:24:52 +0000 (13:24 +0200)]
Add --enable-symbolic-functions configure option
Added --enable-symbolic-functions configure option. This will detect
and pass -Bsymbolic-functions linker option, which gives you better
performance and smaller binary size. Only recent binutils supports
this option.
Takashi Iwai [Thu, 5 Apr 2007 15:19:40 +0000 (17:19 +0200)]
Add missing smixer.conf for installation
Takashi Iwai [Wed, 28 Mar 2007 12:31:46 +0000 (14:31 +0200)]
Fixed an access to uninitialized variable in pcm_rate.c
Fixed an access to uninitialized variable in pcm_rate.c (in error message).
Takashi Iwai [Wed, 28 Mar 2007 12:30:58 +0000 (14:30 +0200)]
Add missing control_ext entry
Added missing entry for control_ext.c for static symbol table.
Takashi Iwai [Wed, 28 Mar 2007 12:03:10 +0000 (14:03 +0200)]
Use AS_HELP_STRING in configure.in
Use AS_HELP_STRING macro in configure.in.
Fix some help descriptions.
Takashi Iwai [Wed, 28 Mar 2007 11:49:23 +0000 (13:49 +0200)]
Add src/control/ctl_symbols_list.c to .hgignore
Takashi Iwai [Wed, 28 Mar 2007 11:48:04 +0000 (13:48 +0200)]
Add --with-ctl-plugins configure option
Added --with-ctl-plugins configure option to specify the optinal
plugins to build.
Takashi Iwai [Wed, 28 Mar 2007 10:38:27 +0000 (12:38 +0200)]
Define an array of default rate plugins
Define an array of default rate plugins, set speexrate as the first
entry. The linear is used as a fallback.
Takashi Iwai [Thu, 22 Mar 2007 00:17:22 +0000 (01:17 +0100)]
Trivial fix of compile warning
Fix unused variable j.
Takashi Iwai [Wed, 21 Mar 2007 23:58:42 +0000 (00:58 +0100)]
String array for default rate plugin list
Change the rate converter type to allow string arrays in addition to
a string. When a string array is given, the rate plugin probes each
string and try to load the converter plugin in the order of the list.
For example, you can set
defaults.pcm.rate_converter [ "samplerate" "linear" ]
so that samplerate plugin is preferred to linear plugin if it's
installed.
Takashi Iwai [Wed, 21 Mar 2007 23:48:18 +0000 (00:48 +0100)]
Allow build without libdl and libpthread
Allow building alsa-lib without libdl and libpthread.
Added new options to configure, --with-libdl and --with-pthread.
Rene Herman [Wed, 21 Mar 2007 11:21:38 +0000 (12:21 +0100)]
Fix alsa-devel ML address
This replaces all occurences of alsa-devel@lists.s[ource]f[orge].net
that a simple recursive grep found in the current HG ALSA repos by
alsa-devel@alsa-project.org.
Signed-off-by: Rene Herman <rene.herman@gmail.com>
Takashi Iwai [Fri, 16 Mar 2007 14:22:27 +0000 (15:22 +0100)]
Fix build with no PCM plugin
When pcm plugin is disabled, the static build fails because of
lack of pcm_symbols_list.c. Fixed now.
Takashi Iwai [Tue, 13 Mar 2007 09:44:28 +0000 (10:44 +0100)]
Remove _snd_pcm_link_descriptors() and more comments
Removed the obsoleted _snd_pcm_link_descriptors() from pcm_local.h.
Added more comments on multi plugin.
Takashi Iwai [Tue, 13 Mar 2007 01:52:33 +0000 (02:52 +0100)]
More better fix for linked start/stop
Instead of link_fd, more generic callback link_slaves is introduced.
This is called for linking the slave streams as the source to the
given master stream.
Takashi Iwai [Mon, 12 Mar 2007 23:40:22 +0000 (00:40 +0100)]
Fix start/stop of multi plugin
The start/stop of sync'ed stream of multi plugin.
This should make some JACK users with multiple devices happier.
Clemens Ladisch [Mon, 12 Mar 2007 07:27:15 +0000 (08:27 +0100)]
fix a signedness warning
Takashi Iwai [Fri, 9 Mar 2007 16:06:23 +0000 (17:06 +0100)]
Improve the sample conversion in plug layer
Improve the sample conversion in plug layer for the sample bits
reduction. Use round instead of truncating, which introduces
more quantization noise.
Original patch by Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Takashi Iwai [Fri, 9 Mar 2007 14:30:38 +0000 (15:30 +0100)]
Check _POSIX_SOURCE for timeval definition
Check _POSIX_SOURCE for struct timeval definition.
In rare cases, _POSIX_C_SOURCE isn't defined but only _POSIX_SOURCE
is set, and it results in the confliction of timeval definition.
Jaroslav Kysela [Mon, 26 Feb 2007 08:21:12 +0000 (09:21 +0100)]
Added tag v1.0.14rc3 for changeset
3cfb9808fb42
Jaroslav Kysela [Mon, 26 Feb 2007 08:21:12 +0000 (09:21 +0100)]
release 1.0.14rc3
Patch-level: Merged
Clemens Ladisch [Tue, 13 Feb 2007 13:03:30 +0000 (14:03 +0100)]
add USB-Audio.conf to Makefile.am
Clemens Ladisch [Tue, 13 Feb 2007 08:01:31 +0000 (09:01 +0100)]
enable dmix-ing and proper 5.1 routing for USB audio devices
add a configuration file for USB audio devices
Clemens Ladisch [Mon, 12 Feb 2007 12:45:57 +0000 (13:45 +0100)]
fix SNDERR() format strings/arguments
Clemens Ladisch [Mon, 12 Feb 2007 12:45:03 +0000 (13:45 +0100)]
remove superfluous strdup() calls
Remove same calls of strdup() that were unnecessary because the
temporary string would not be modified or held longer than the lifetime
of the original string.