mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-31 22:25:33 -04:00
add total sample cache size to statistics
add size to sample cache entry info git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@175 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
5f52999c01
commit
c73a298f88
6 changed files with 25 additions and 2 deletions
2
doc/todo
2
doc/todo
|
|
@ -11,11 +11,11 @@
|
||||||
- more complete pactl
|
- more complete pactl
|
||||||
- cleanup tagstruct and modargs (add s32, pa_volume_t, pa_usec_t)
|
- cleanup tagstruct and modargs (add s32, pa_volume_t, pa_usec_t)
|
||||||
- remove all gcc warnings
|
- remove all gcc warnings
|
||||||
- add total sample cache size to stat
|
|
||||||
- make fragments settings runtime configurable
|
- make fragments settings runtime configurable
|
||||||
- logging
|
- logging
|
||||||
- automatic termination of daemon if unused
|
- automatic termination of daemon if unused
|
||||||
- add sample directory
|
- add sample directory
|
||||||
|
- paman: show scache and sample size
|
||||||
|
|
||||||
** later ***
|
** later ***
|
||||||
- xmlrpc/http
|
- xmlrpc/http
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ static void context_stat_callback(struct pa_pdispatch *pd, uint32_t command, uin
|
||||||
pa_tagstruct_getu32(t, &i.memblock_total_size) < 0 ||
|
pa_tagstruct_getu32(t, &i.memblock_total_size) < 0 ||
|
||||||
pa_tagstruct_getu32(t, &i.memblock_allocated) < 0 ||
|
pa_tagstruct_getu32(t, &i.memblock_allocated) < 0 ||
|
||||||
pa_tagstruct_getu32(t, &i.memblock_allocated_size) < 0 ||
|
pa_tagstruct_getu32(t, &i.memblock_allocated_size) < 0 ||
|
||||||
|
pa_tagstruct_getu32(t, &i.scache_size) < 0 ||
|
||||||
!pa_tagstruct_eof(t)) {
|
!pa_tagstruct_eof(t)) {
|
||||||
pa_context_fail(o->context, PA_ERROR_PROTOCOL);
|
pa_context_fail(o->context, PA_ERROR_PROTOCOL);
|
||||||
goto finish;
|
goto finish;
|
||||||
|
|
@ -603,7 +604,8 @@ static void context_get_sample_info_callback(struct pa_pdispatch *pd, uint32_t c
|
||||||
pa_tagstruct_gets(t, &i.name) < 0 ||
|
pa_tagstruct_gets(t, &i.name) < 0 ||
|
||||||
pa_tagstruct_getu32(t, &i.volume) < 0 ||
|
pa_tagstruct_getu32(t, &i.volume) < 0 ||
|
||||||
pa_tagstruct_getu32(t, &i.duration) < 0 ||
|
pa_tagstruct_getu32(t, &i.duration) < 0 ||
|
||||||
pa_tagstruct_get_sample_spec(t, &i.sample_spec) < 0) {
|
pa_tagstruct_get_sample_spec(t, &i.sample_spec) < 0 ||
|
||||||
|
pa_tagstruct_getu32(t, &i.bytes) < 0) {
|
||||||
pa_context_fail(o->context, PA_ERROR_PROTOCOL);
|
pa_context_fail(o->context, PA_ERROR_PROTOCOL);
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -180,6 +180,7 @@ struct pa_stat_info {
|
||||||
uint32_t memblock_total_size; /**< Currentl total size of allocated memory blocks */
|
uint32_t memblock_total_size; /**< Currentl total size of allocated memory blocks */
|
||||||
uint32_t memblock_allocated; /**< Allocated memory blocks during the whole lifetime of the daemon */
|
uint32_t memblock_allocated; /**< Allocated memory blocks during the whole lifetime of the daemon */
|
||||||
uint32_t memblock_allocated_size; /**< Total size of all memory blocks allocated during the whole lifetime of the daemon */
|
uint32_t memblock_allocated_size; /**< Total size of all memory blocks allocated during the whole lifetime of the daemon */
|
||||||
|
uint32_t scache_size; /**< Total size of all sample cache entries. \since 0.4 */
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Get daemon memory block statistics */
|
/** Get daemon memory block statistics */
|
||||||
|
|
@ -192,6 +193,7 @@ struct pa_sample_info {
|
||||||
pa_volume_t volume; /**< Default volume of this entry */
|
pa_volume_t volume; /**< Default volume of this entry */
|
||||||
struct pa_sample_spec sample_spec; /**< Sample specification of the sampel */
|
struct pa_sample_spec sample_spec; /**< Sample specification of the sampel */
|
||||||
pa_usec_t duration; /**< Duration of this entry */
|
pa_usec_t duration; /**< Duration of this entry */
|
||||||
|
uint32_t bytes; /**< Length of this sample in bytes. \since 0.4 */
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Get information about a sample by its name */
|
/** Get information about a sample by its name */
|
||||||
|
|
|
||||||
|
|
@ -797,6 +797,7 @@ static void command_stat(struct pa_pdispatch *pd, uint32_t command, uint32_t tag
|
||||||
pa_tagstruct_putu32(reply, c->protocol->core->memblock_stat->total_size);
|
pa_tagstruct_putu32(reply, c->protocol->core->memblock_stat->total_size);
|
||||||
pa_tagstruct_putu32(reply, c->protocol->core->memblock_stat->allocated);
|
pa_tagstruct_putu32(reply, c->protocol->core->memblock_stat->allocated);
|
||||||
pa_tagstruct_putu32(reply, c->protocol->core->memblock_stat->allocated_size);
|
pa_tagstruct_putu32(reply, c->protocol->core->memblock_stat->allocated_size);
|
||||||
|
pa_tagstruct_putu32(reply, pa_scache_total_size(c->protocol->core));
|
||||||
pa_pstream_send_tagstruct(c->pstream, reply);
|
pa_pstream_send_tagstruct(c->pstream, reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1044,6 +1045,7 @@ static void scache_fill_tagstruct(struct pa_tagstruct *t, struct pa_scache_entry
|
||||||
pa_tagstruct_putu32(t, e->volume);
|
pa_tagstruct_putu32(t, e->volume);
|
||||||
pa_tagstruct_putu32(t, pa_bytes_to_usec(e->memchunk.length, &e->sample_spec));
|
pa_tagstruct_putu32(t, pa_bytes_to_usec(e->memchunk.length, &e->sample_spec));
|
||||||
pa_tagstruct_put_sample_spec(t, &e->sample_spec);
|
pa_tagstruct_put_sample_spec(t, &e->sample_spec);
|
||||||
|
pa_tagstruct_putu32(t, e->memchunk.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void command_get_info(struct pa_pdispatch *pd, uint32_t command, uint32_t tag, struct pa_tagstruct *t, void *userdata) {
|
static void command_get_info(struct pa_pdispatch *pd, uint32_t command, uint32_t tag, struct pa_tagstruct *t, void *userdata) {
|
||||||
|
|
|
||||||
|
|
@ -168,3 +168,18 @@ uint32_t pa_scache_get_id_by_name(struct pa_core *c, const char *name) {
|
||||||
|
|
||||||
return e->index;
|
return e->index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t pa_scache_total_size(struct pa_core *c) {
|
||||||
|
struct pa_scache_entry *e;
|
||||||
|
uint32_t index;
|
||||||
|
uint32_t sum;
|
||||||
|
|
||||||
|
if (!c->scache)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
for (e = pa_idxset_first(c->scache, &index); e; e = pa_idxset_next(c->scache, &index))
|
||||||
|
sum += e->memchunk.length;
|
||||||
|
|
||||||
|
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,4 +44,6 @@ void pa_scache_free(struct pa_core *c);
|
||||||
const char *pa_scache_get_name_by_id(struct pa_core *c, uint32_t id);
|
const char *pa_scache_get_name_by_id(struct pa_core *c, uint32_t id);
|
||||||
uint32_t pa_scache_get_id_by_name(struct pa_core *c, const char *name);
|
uint32_t pa_scache_get_id_by_name(struct pa_core *c, const char *name);
|
||||||
|
|
||||||
|
uint32_t pa_scache_total_size(struct pa_core *c);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue