mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-12 13:30:10 -05:00
merge glitch-free branch back into trunk
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2445 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
91f092eadc
commit
045c1d602d
189 changed files with 12559 additions and 4959 deletions
|
|
@ -62,7 +62,9 @@ typedef struct pa_memblockq pa_memblockq;
|
|||
- minreq: pa_memblockq_missing() will only return values greater
|
||||
than this value. Pass 0 for the default.
|
||||
|
||||
- silence: return this memblock when reading unitialized data
|
||||
- maxrewind: how many bytes of history to keep in the queue
|
||||
|
||||
- silence: return this memchunk when reading unitialized data
|
||||
*/
|
||||
pa_memblockq* pa_memblockq_new(
|
||||
int64_t idx,
|
||||
|
|
@ -71,7 +73,8 @@ pa_memblockq* pa_memblockq_new(
|
|||
size_t base,
|
||||
size_t prebuf,
|
||||
size_t minreq,
|
||||
pa_memblock *silence);
|
||||
size_t maxrewind,
|
||||
pa_memchunk *silence);
|
||||
|
||||
void pa_memblockq_free(pa_memblockq*bq);
|
||||
|
||||
|
|
@ -95,7 +98,7 @@ int pa_memblockq_peek(pa_memblockq* bq, pa_memchunk *chunk);
|
|||
void pa_memblockq_drop(pa_memblockq *bq, size_t length);
|
||||
|
||||
/* Test if the pa_memblockq is currently readable, that is, more data than base */
|
||||
int pa_memblockq_is_readable(pa_memblockq *bq);
|
||||
pa_bool_t pa_memblockq_is_readable(pa_memblockq *bq);
|
||||
|
||||
/* Return the length of the queue in bytes */
|
||||
size_t pa_memblockq_get_length(pa_memblockq *bq);
|
||||
|
|
@ -107,6 +110,9 @@ size_t pa_memblockq_missing(pa_memblockq *bq);
|
|||
* this function, reset the internal counter to 0. */
|
||||
size_t pa_memblockq_pop_missing(pa_memblockq *bq);
|
||||
|
||||
/* Directly moves the data from the source memblockq into bq */
|
||||
int pa_memblockq_splice(pa_memblockq *bq, pa_memblockq *source);
|
||||
|
||||
/* Returns the minimal request value */
|
||||
size_t pa_memblockq_get_minreq(pa_memblockq *bq);
|
||||
|
||||
|
|
@ -125,10 +131,8 @@ int64_t pa_memblockq_get_read_index(pa_memblockq *bq);
|
|||
/* Return the current write index */
|
||||
int64_t pa_memblockq_get_write_index(pa_memblockq *bq);
|
||||
|
||||
/* Shorten the pa_memblockq to the specified length by dropping data
|
||||
* at the read end of the queue. The read index is increased until the
|
||||
* queue has the specified length */
|
||||
void pa_memblockq_shorten(pa_memblockq *bq, size_t length);
|
||||
/* Rewind the read index. If the history is shorter than the specified length we'll point to silence afterwards. */
|
||||
void pa_memblockq_rewind(pa_memblockq *bq, size_t length);
|
||||
|
||||
/* Ignore prebuf for now */
|
||||
void pa_memblockq_prebuf_disable(pa_memblockq *bq);
|
||||
|
|
@ -142,10 +146,27 @@ size_t pa_memblockq_get_maxlength(pa_memblockq *bq);
|
|||
/* Return the prebuffer length in bytes */
|
||||
size_t pa_memblockq_get_prebuf(pa_memblockq *bq);
|
||||
|
||||
/* Change metrics. */
|
||||
void pa_memblockq_set_maxlength(pa_memblockq *memblockq, size_t maxlength);
|
||||
void pa_memblockq_set_tlength(pa_memblockq *memblockq, size_t tlength);
|
||||
void pa_memblockq_set_prebuf(pa_memblockq *memblockq, size_t prebuf);
|
||||
/* Change metrics. Always call in order. */
|
||||
void pa_memblockq_set_maxlength(pa_memblockq *memblockq, size_t maxlength); /* might modify tlength, prebuf, minreq too */
|
||||
void pa_memblockq_set_tlength(pa_memblockq *memblockq, size_t tlength); /* might modify minreq, too */
|
||||
void pa_memblockq_set_prebuf(pa_memblockq *memblockq, size_t prebuf); /* might modify minreq, too */
|
||||
void pa_memblockq_set_minreq(pa_memblockq *memblockq, size_t minreq);
|
||||
void pa_memblockq_set_maxrewind(pa_memblockq *memblockq, size_t rewind); /* Set the maximum history size */
|
||||
void pa_memblockq_set_silence(pa_memblockq *memblockq, pa_memchunk *silence);
|
||||
|
||||
/* Call pa_memchunk_willneed() for every chunk in the queue from the current read pointer to the end */
|
||||
void pa_memblockq_willneed(pa_memblockq *bq);
|
||||
|
||||
/* Check whether the memblockq is completely empty, i.e. no data
|
||||
* neither left nor right of the read pointer, and hence no buffered
|
||||
* data for the future nor data in the backlog. */
|
||||
pa_bool_t pa_memblockq_is_empty(pa_memblockq *bq);
|
||||
|
||||
void pa_memblockq_silence(pa_memblockq *bq);
|
||||
|
||||
/* Check whether we currently are in prebuf state */
|
||||
pa_bool_t pa_memblockq_prebuf_active(pa_memblockq *bq);
|
||||
|
||||
unsigned pa_memblockq_get_nblocks(pa_memblockq *bq);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue