diff options
author | Lennart Poettering <lennart@poettering.net> | 2008-03-27 23:29:32 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2008-03-27 23:29:32 +0000 |
commit | b79c6b6bc0546f6e1c3b032f67d244c68ba20808 (patch) | |
tree | 6d26fec76fe6a3d708a7c8025feee23289accc3c /src/pulsecore/core-scache.c | |
parent | b0a20498dbdaf0af981f5351b6295a33a3fa7121 (diff) |
merge r2105 from trunk
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/prepare-0.9.10@2159 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/pulsecore/core-scache.c')
-rw-r--r-- | src/pulsecore/core-scache.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/pulsecore/core-scache.c b/src/pulsecore/core-scache.c index 732d90dd..46444a90 100644 --- a/src/pulsecore/core-scache.c +++ b/src/pulsecore/core-scache.c @@ -145,9 +145,16 @@ static pa_scache_entry* scache_add_item(pa_core *c, const char *name) { int pa_scache_add_item(pa_core *c, const char *name, const pa_sample_spec *ss, const pa_channel_map *map, const pa_memchunk *chunk, uint32_t *idx) { pa_scache_entry *e; char st[PA_SAMPLE_SPEC_SNPRINT_MAX]; + pa_channel_map tmap; pa_assert(c); pa_assert(name); + pa_assert(!ss || pa_sample_spec_valid(ss)); + pa_assert(!map || (pa_channel_map_valid(map) && ss && ss->channels == map->channels)); + + if (ss && !map) + if (!(map = pa_channel_map_init_auto(&tmap, ss->channels, PA_CHANNEL_MAP_DEFAULT))) + return -1; if (chunk && chunk->length > PA_SCACHE_ENTRY_SIZE_MAX) return -1; @@ -155,9 +162,11 @@ int pa_scache_add_item(pa_core *c, const char *name, const pa_sample_spec *ss, c if (!(e = scache_add_item(c, name))) return -1; + memset(&e->sample_spec, 0, sizeof(e->sample_spec)); + pa_channel_map_init(&e->channel_map); + if (ss) { e->sample_spec = *ss; - pa_channel_map_init_auto(&e->channel_map, ss->channels, PA_CHANNEL_MAP_DEFAULT); e->volume.channels = e->sample_spec.channels; } |