diff options
author | Max Kellermann <max@duempel.org> | 2008-04-12 04:16:56 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2008-04-12 04:16:56 +0000 |
commit | 78f606078e347bc88e7888cc669184acf767c3ff (patch) | |
tree | 006ac69f94d87c6e4e16eee07be3583bf651e80d | |
parent | f0e28ede4da3da8754f48ef5af1b654792e3364c (diff) | |
download | mpd-78f606078e347bc88e7888cc669184acf767c3ff.tar.gz mpd-78f606078e347bc88e7888cc669184acf767c3ff.tar.xz mpd-78f606078e347bc88e7888cc669184acf767c3ff.zip |
let initOutputBuffer() allocate memory
This is the first patch in a series which removes the shared memory,
and moves all the playerData objects into the normal libc heap.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7304 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-rw-r--r-- | src/outputBuffer.c | 4 | ||||
-rw-r--r-- | src/outputBuffer.h | 2 | ||||
-rw-r--r-- | src/playerData.c | 10 |
3 files changed, 6 insertions, 10 deletions
diff --git a/src/outputBuffer.c b/src/outputBuffer.c index 26dc50a91..f1d7201a6 100644 --- a/src/outputBuffer.c +++ b/src/outputBuffer.c @@ -26,10 +26,10 @@ #include "conf.h" #include "os_compat.h" -void initOutputBuffer(OutputBuffer * cb, OutputBufferChunk * chunks) +void initOutputBuffer(OutputBuffer * cb) { memset(&cb->convState, 0, sizeof(ConvState)); - cb->chunks = chunks; + cb->chunks = xmalloc(buffered_chunks * sizeof(*cb->chunks)); cb->currentChunk = -1; } diff --git a/src/outputBuffer.h b/src/outputBuffer.h index d42400070..70fff1d08 100644 --- a/src/outputBuffer.h +++ b/src/outputBuffer.h @@ -58,7 +58,7 @@ typedef struct _OutputBuffer { ConvState convState; } OutputBuffer; -void initOutputBuffer(OutputBuffer * cb, OutputBufferChunk * chunks); +void initOutputBuffer(OutputBuffer * cb); void clearOutputBuffer(OutputBuffer * cb); diff --git a/src/playerData.c b/src/playerData.c index 27b69cfb2..c2de08512 100644 --- a/src/playerData.c +++ b/src/playerData.c @@ -74,11 +74,8 @@ void initPlayerData(void) buffered_before_play = buffered_chunks; } - allocationSize = buffered_chunks * sizeof(OutputBufferChunk); /*actual buffer */ - allocationSize += buffered_chunks * sizeof(float); /*for times */ - allocationSize += buffered_chunks * sizeof(mpd_sint16); /*for chunkSize */ - allocationSize += buffered_chunks * sizeof(mpd_sint16); /*for bitRate */ - allocationSize += sizeof(PlayerData); /*for playerData struct */ + /* for playerData struct */ + allocationSize = sizeof(PlayerData); /* for audioDeviceStates[] */ allocationSize += device_array_size; @@ -93,8 +90,7 @@ void initPlayerData(void) playerData_pd->audioDeviceStates = (mpd_uint8 *)playerData_pd + allocationSize - device_array_size; - initOutputBuffer(&(playerData_pd->buffer), - (OutputBufferChunk*)(((char *)playerData_pd) + sizeof(PlayerData))); + initOutputBuffer(&(playerData_pd->buffer)); notifyInit(&playerData_pd->playerControl.notify); playerData_pd->playerControl.stop = 0; |