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
This commit is contained in:
parent
f0e28ede4d
commit
78f606078e
@ -26,10 +26,10 @@
|
|||||||
#include "conf.h"
|
#include "conf.h"
|
||||||
#include "os_compat.h"
|
#include "os_compat.h"
|
||||||
|
|
||||||
void initOutputBuffer(OutputBuffer * cb, OutputBufferChunk * chunks)
|
void initOutputBuffer(OutputBuffer * cb)
|
||||||
{
|
{
|
||||||
memset(&cb->convState, 0, sizeof(ConvState));
|
memset(&cb->convState, 0, sizeof(ConvState));
|
||||||
cb->chunks = chunks;
|
cb->chunks = xmalloc(buffered_chunks * sizeof(*cb->chunks));
|
||||||
cb->currentChunk = -1;
|
cb->currentChunk = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ typedef struct _OutputBuffer {
|
|||||||
ConvState convState;
|
ConvState convState;
|
||||||
} OutputBuffer;
|
} OutputBuffer;
|
||||||
|
|
||||||
void initOutputBuffer(OutputBuffer * cb, OutputBufferChunk * chunks);
|
void initOutputBuffer(OutputBuffer * cb);
|
||||||
|
|
||||||
void clearOutputBuffer(OutputBuffer * cb);
|
void clearOutputBuffer(OutputBuffer * cb);
|
||||||
|
|
||||||
|
@ -74,11 +74,8 @@ void initPlayerData(void)
|
|||||||
buffered_before_play = buffered_chunks;
|
buffered_before_play = buffered_chunks;
|
||||||
}
|
}
|
||||||
|
|
||||||
allocationSize = buffered_chunks * sizeof(OutputBufferChunk); /*actual buffer */
|
/* for playerData struct */
|
||||||
allocationSize += buffered_chunks * sizeof(float); /*for times */
|
allocationSize = sizeof(PlayerData);
|
||||||
allocationSize += buffered_chunks * sizeof(mpd_sint16); /*for chunkSize */
|
|
||||||
allocationSize += buffered_chunks * sizeof(mpd_sint16); /*for bitRate */
|
|
||||||
allocationSize += sizeof(PlayerData); /*for playerData struct */
|
|
||||||
|
|
||||||
/* for audioDeviceStates[] */
|
/* for audioDeviceStates[] */
|
||||||
allocationSize += device_array_size;
|
allocationSize += device_array_size;
|
||||||
@ -93,8 +90,7 @@ void initPlayerData(void)
|
|||||||
playerData_pd->audioDeviceStates = (mpd_uint8 *)playerData_pd +
|
playerData_pd->audioDeviceStates = (mpd_uint8 *)playerData_pd +
|
||||||
allocationSize - device_array_size;
|
allocationSize - device_array_size;
|
||||||
|
|
||||||
initOutputBuffer(&(playerData_pd->buffer),
|
initOutputBuffer(&(playerData_pd->buffer));
|
||||||
(OutputBufferChunk*)(((char *)playerData_pd) + sizeof(PlayerData)));
|
|
||||||
|
|
||||||
notifyInit(&playerData_pd->playerControl.notify);
|
notifyInit(&playerData_pd->playerControl.notify);
|
||||||
playerData_pd->playerControl.stop = 0;
|
playerData_pd->playerControl.stop = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user