I will need to use the function from outside libpulse.
I added the channel map argument, because the function will be called
from another function that is expected to initialize the channel map.
I don't know if it's in practice necessary, but it shouldn't do any
harm either.
pulsecore/authkey.c pulsecore/authkey.h \
pulsecore/conf-parser.c pulsecore/conf-parser.h \
pulsecore/core-error.c pulsecore/core-error.h \
+ pulsecore/core-format.c pulsecore/core-format.h \
pulsecore/core-rtclock.c pulsecore/core-rtclock.h \
pulsecore/core-util.c pulsecore/core-util.h \
pulsecore/creds.h \
#include <pulse/internal.h>
#include <pulse/xmalloc.h>
+#include <pulsecore/core-format.h>
#include <pulsecore/core-util.h>
#include <pulsecore/i18n.h>
#include <pulsecore/macro.h>
return f;
}
-/* For compressed streams */
-static int pa_format_info_to_sample_spec_fake(pa_format_info *f, pa_sample_spec *ss) {
- int rate;
-
- pa_assert(f);
- pa_assert(ss);
-
- /* Note: When we add support for non-IEC61937 encapsulated compressed
- * formats, this function should return a non-zero values for these. */
-
- ss->format = PA_SAMPLE_S16LE;
- ss->channels = 2;
-
- pa_return_val_if_fail(pa_format_info_get_prop_int(f, PA_PROP_FORMAT_RATE, &rate) == 0, -PA_ERR_INVALID);
- ss->rate = (uint32_t) rate;
-
- if (f->encoding == PA_ENCODING_EAC3_IEC61937)
- ss->rate *= 4;
-
- return 0;
-}
-
/* For PCM streams */
int pa_format_info_to_sample_spec(pa_format_info *f, pa_sample_spec *ss, pa_channel_map *map) {
char *sf = NULL, *m = NULL;
pa_assert(ss);
if (!pa_format_info_is_pcm(f))
- return pa_format_info_to_sample_spec_fake(f, ss);
+ return pa_format_info_to_sample_spec_fake(f, ss, map);
if (pa_format_info_get_prop_string(f, PA_PROP_FORMAT_SAMPLE_FORMAT, &sf))
goto out;
--- /dev/null
+/***
+ This file is part of PulseAudio.
+
+ PulseAudio is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2.1 of the License,
+ or (at your option) any later version.
+
+ PulseAudio is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with PulseAudio; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "core-format.h"
+
+#include <pulse/def.h>
+
+#include <pulsecore/macro.h>
+
+int pa_format_info_to_sample_spec_fake(pa_format_info *f, pa_sample_spec *ss, pa_channel_map *map) {
+ int rate;
+
+ pa_assert(f);
+ pa_assert(ss);
+
+ /* Note: When we add support for non-IEC61937 encapsulated compressed
+ * formats, this function should return a non-zero values for these. */
+
+ ss->format = PA_SAMPLE_S16LE;
+ ss->channels = 2;
+
+ if (map)
+ pa_channel_map_init_stereo(map);
+
+ pa_return_val_if_fail(pa_format_info_get_prop_int(f, PA_PROP_FORMAT_RATE, &rate) == 0, -PA_ERR_INVALID);
+ ss->rate = (uint32_t) rate;
+
+ if (f->encoding == PA_ENCODING_EAC3_IEC61937)
+ ss->rate *= 4;
+
+ return 0;
+}
--- /dev/null
+#ifndef foocoreformathfoo
+#define foocoreformathfoo
+
+/***
+ This file is part of PulseAudio.
+
+ PulseAudio is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2.1 of the License,
+ or (at your option) any later version.
+
+ PulseAudio is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with PulseAudio; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+#include <pulse/format.h>
+
+/* For compressed formats. Converts the format info into a sample spec and a
+ * channel map that an ALSA device can use as its configuration parameters when
+ * playing back the compressed data. That is, the returned sample spec doesn't
+ * describe the audio content, but the device parameters. */
+int pa_format_info_to_sample_spec_fake(pa_format_info *f, pa_sample_spec *ss, pa_channel_map *map);
+
+#endif