music_pipe: renamed struct output_buffer to struct music_pipe

.. and rename ob_chunk to struct music_chunk.
This commit is contained in:
Max Kellermann 2008-11-02 14:15:47 +01:00
parent 767b4c95bd
commit 8964c69a64
5 changed files with 24 additions and 19 deletions

View File

@ -20,6 +20,7 @@
#include "crossfade.h" #include "crossfade.h"
#include "audio.h" #include "audio.h"
#include "pcm_utils.h" #include "pcm_utils.h"
#include "pipe.h"
#include <assert.h> #include <assert.h>
#include <string.h> #include <string.h>
@ -48,7 +49,7 @@ unsigned cross_fade_calc(float duration, float total_time,
return chunks; return chunks;
} }
void cross_fade_apply(ob_chunk * a, const ob_chunk * b, void cross_fade_apply(struct music_chunk *a, const struct music_chunk *b,
const struct audio_format *format, const struct audio_format *format,
unsigned int current_chunk, unsigned int num_chunks) unsigned int current_chunk, unsigned int num_chunks)
{ {

View File

@ -20,15 +20,14 @@
#ifndef MPD_CROSSFADE_H #ifndef MPD_CROSSFADE_H
#define MPD_CROSSFADE_H #define MPD_CROSSFADE_H
#include "pipe.h"
struct audio_format; struct audio_format;
struct music_chunk;
unsigned cross_fade_calc(float duration, float total_time, unsigned cross_fade_calc(float duration, float total_time,
const struct audio_format *af, const struct audio_format *af,
unsigned max_chunks); unsigned max_chunks);
void cross_fade_apply(ob_chunk * a, const ob_chunk * b, void cross_fade_apply(struct music_chunk *a, const struct music_chunk *b,
const struct audio_format *format, const struct audio_format *format,
unsigned int current_chunk, unsigned int num_chunks); unsigned int current_chunk, unsigned int num_chunks);

View File

@ -23,7 +23,7 @@
#include <assert.h> #include <assert.h>
#include <string.h> #include <string.h>
struct output_buffer ob; struct music_pipe ob;
void void
ob_init(unsigned int size, struct notify *notify) ob_init(unsigned int size, struct notify *notify)
@ -82,7 +82,7 @@ static void output_buffer_expand(unsigned i)
void ob_flush(void) void ob_flush(void)
{ {
ob_chunk *chunk = ob_get_chunk(ob.end); struct music_chunk *chunk = ob_get_chunk(ob.end);
if (chunk->chunkSize > 0) { if (chunk->chunkSize > 0) {
unsigned int next = successor(ob.end); unsigned int next = successor(ob.end);
@ -139,7 +139,8 @@ int ob_absolute(const unsigned relative)
return (int)i; return (int)i;
} }
ob_chunk * ob_get_chunk(const unsigned i) struct music_chunk *
ob_get_chunk(const unsigned i)
{ {
assert(i < ob.size); assert(i < ob.size);
@ -152,11 +153,12 @@ ob_chunk * ob_get_chunk(const unsigned i)
* @return the chunk which has room for more data; NULL if there is no * @return the chunk which has room for more data; NULL if there is no
* room. * room.
*/ */
static ob_chunk *tail_chunk(float data_time, uint16_t bitRate) static struct music_chunk *
tail_chunk(float data_time, uint16_t bitRate)
{ {
const size_t frame_size = audio_format_frame_size(&ob.audioFormat); const size_t frame_size = audio_format_frame_size(&ob.audioFormat);
unsigned int next; unsigned int next;
ob_chunk *chunk; struct music_chunk *chunk;
chunk = ob_get_chunk(ob.end); chunk = ob_get_chunk(ob.end);
assert(chunk->chunkSize <= sizeof(chunk->data)); assert(chunk->chunkSize <= sizeof(chunk->data));
@ -189,7 +191,7 @@ size_t ob_append(const void *data0, size_t datalen,
const unsigned char *data = data0; const unsigned char *data = data0;
const size_t frame_size = audio_format_frame_size(&ob.audioFormat); const size_t frame_size = audio_format_frame_size(&ob.audioFormat);
size_t ret = 0, dataToSend; size_t ret = 0, dataToSend;
ob_chunk *chunk = NULL; struct music_chunk *chunk = NULL;
/* no partial frames allowed */ /* no partial frames allowed */
assert((datalen % frame_size) == 0); assert((datalen % frame_size) == 0);

View File

@ -27,19 +27,19 @@
/* pick 1020 since its devisible for 8,16,24, and 32-bit audio */ /* pick 1020 since its devisible for 8,16,24, and 32-bit audio */
#define CHUNK_SIZE 1020 #define CHUNK_SIZE 1020
typedef struct _OutputBufferChunk { struct music_chunk {
uint16_t chunkSize; uint16_t chunkSize;
uint16_t bitRate; uint16_t bitRate;
float times; float times;
char data[CHUNK_SIZE]; char data[CHUNK_SIZE];
} ob_chunk; };
/** /**
* A ring set of buffers where the decoder appends data after the end, * A ring set of buffers where the decoder appends data after the end,
* and the player consumes data from the beginning. * and the player consumes data from the beginning.
*/ */
struct output_buffer { struct music_pipe {
ob_chunk *chunks; struct music_chunk *chunks;
unsigned int size; unsigned int size;
@ -58,7 +58,7 @@ struct output_buffer {
struct notify *notify; struct notify *notify;
}; };
extern struct output_buffer ob; extern struct music_pipe ob;
void void
ob_init(unsigned int size, struct notify *notify); ob_init(unsigned int size, struct notify *notify);
@ -100,7 +100,8 @@ unsigned ob_available(void);
*/ */
int ob_absolute(const unsigned relative); int ob_absolute(const unsigned relative);
ob_chunk * ob_get_chunk(const unsigned i); struct music_chunk *
ob_get_chunk(const unsigned i);
/** /**
* Append a data block to the buffer. * Append a data block to the buffer.

View File

@ -26,6 +26,7 @@
#include "main_notify.h" #include "main_notify.h"
#include "crossfade.h" #include "crossfade.h"
#include "song.h" #include "song.h"
#include "pipe.h"
enum xfade_state { enum xfade_state {
XFADE_DISABLED = -1, XFADE_DISABLED = -1,
@ -205,8 +206,9 @@ static void processDecodeInput(struct player *player)
} }
} }
static int playChunk(ob_chunk * chunk, static int
const struct audio_format *format, double sizeToTime) playChunk(struct music_chunk *chunk, const struct audio_format *format,
double sizeToTime)
{ {
pc.elapsedTime = chunk->times; pc.elapsedTime = chunk->times;
pc.bitRate = chunk->bitRate; pc.bitRate = chunk->bitRate;
@ -355,7 +357,7 @@ static void do_play(void)
notify_wait(&pc.notify); notify_wait(&pc.notify);
else if (!ob_is_empty() && else if (!ob_is_empty() &&
(int)ob.begin != player.next_song_chunk) { (int)ob.begin != player.next_song_chunk) {
ob_chunk *beginChunk = ob_get_chunk(ob.begin); struct music_chunk *beginChunk = ob_get_chunk(ob.begin);
unsigned int fadePosition; unsigned int fadePosition;
if (player.xfade == XFADE_ENABLED && if (player.xfade == XFADE_ENABLED &&
player.next_song_chunk >= 0 && player.next_song_chunk >= 0 &&