Browse Source

MT#61822 add CLI command to list media cache

Change-Id: I41d388abefa1b356d7fecf7b1dc662d899a8f9ac
pull/1897/head
Richard Fuchs 11 months ago
parent
commit
a2ffa18d6c
4 changed files with 51 additions and 0 deletions
  1. +26
    -0
      daemon/cli.c
  2. +20
    -0
      daemon/media_player.c
  3. +2
    -0
      include/media_player.h
  4. +3
    -0
      utils/rtpengine-ctl

+ 26
- 0
daemon/cli.c View File

@ -109,6 +109,9 @@ static void cli_incoming_tag_info(str *instr, struct cli_writer *cw, const cli_h
static void cli_incoming_tag_delay(str *instr, struct cli_writer *cw, const cli_handler_t *);
static void cli_incoming_tag_detdtmf(str *instr, struct cli_writer *cw, const cli_handler_t *);
static void cli_incoming_media_list_files(str *instr, struct cli_writer *cw, const cli_handler_t *);
static void cli_incoming_media_list_dbs(str *instr, struct cli_writer *cw, const cli_handler_t *);
static void cli_incoming_media_reload_file(str *instr, struct cli_writer *cw, const cli_handler_t *);
static void cli_incoming_media_reload_files(str *instr, struct cli_writer *cw, const cli_handler_t *);
static void cli_incoming_media_reload_db(str *instr, struct cli_writer *cw, const cli_handler_t *);
@ -191,6 +194,11 @@ static const cli_handler_t cli_params_handlers[] = {
{ NULL, },
};
#ifdef WITH_TRANSCODING
static const cli_handler_t cli_media_list_handlers[] = {
{ "files", cli_incoming_media_list_files, NULL },
{ "dbs", cli_incoming_media_list_dbs, NULL },
{ NULL, },
};
static const cli_handler_t cli_media_reload_handlers[] = {
{ "file", cli_incoming_media_reload_file, NULL },
{ "files", cli_incoming_media_reload_files, NULL },
@ -206,6 +214,7 @@ static const cli_handler_t cli_media_evict_handlers[] = {
{ NULL, },
};
static const cli_handler_t cli_media_handlers[] = {
{ "list", cli_generic_handler, cli_media_list_handlers },
{ "reload", cli_generic_handler, cli_media_reload_handlers },
{ "evict", cli_generic_handler, cli_media_evict_handlers },
{ NULL, },
@ -1793,6 +1802,23 @@ static void cli_incoming_set_controltos(str *instr, struct cli_writer *cw, const
}
#ifdef WITH_TRANSCODING
static void cli_incoming_media_list_files(str *instr, struct cli_writer *cw, const cli_handler_t *handler) {
str_q list = media_player_list_files();
while (list.head) {
str *name = t_queue_pop_head(&list);
cw->cw_printf(cw, STR_FORMAT "\n", STR_FMT(name));
str_free(name);
}
}
static void cli_incoming_media_list_dbs(str *instr, struct cli_writer *cw, const cli_handler_t *handler) {
GQueue list = media_player_list_dbs();
while (list.head) {
void *id = g_queue_pop_head(&list);
cw->cw_printf(cw, "%llu\n", (unsigned long long) GPOINTER_TO_UINT(id));
}
}
static void cli_incoming_media_reload_file(str *instr, struct cli_writer *cw, const cli_handler_t *handler) {
if (instr->len == 0) {
cw->cw_printf(cw, "More parameters required.\n");


+ 20
- 0
daemon/media_player.c View File

@ -2354,3 +2354,23 @@ unsigned int media_player_evict_db_medias(void) {
return ret;
}
str_q media_player_list_files(void) {
str_q ret = TYPED_GQUEUE_INIT;
#ifdef WITH_TRANSCODING
RWLOCK_R(&media_player_media_files_names_lock);
for (__auto_type l = media_player_media_files_names.head; l; l = l->next)
t_queue_push_tail(&ret, str_dup(l->data));
#endif
return ret;
}
GQueue media_player_list_dbs(void) {
GQueue ret = G_QUEUE_INIT;
#ifdef WITH_TRANSCODING
RWLOCK_R(&media_player_db_media_ids_lock);
for (GList *l = media_player_db_media_ids.head; l; l = l->next)
g_queue_push_tail(&ret, l->data);
#endif
return ret;
}

+ 2
- 0
include/media_player.h View File

@ -161,6 +161,8 @@ bool media_player_evict_file(str *name);
unsigned int media_player_evict_files(void);
bool media_player_evict_db_media(unsigned long long);
unsigned int media_player_evict_db_medias(void);
str_q media_player_list_files(void);
GQueue media_player_list_dbs(void);
struct send_timer *send_timer_new(struct packet_stream *);
void send_timer_push(struct send_timer *, struct codec_packet *);


+ 3
- 0
utils/rtpengine-ctl View File

@ -164,6 +164,9 @@ sub showusage {
print " debug <callid> <on/off> : set debugging flag for given call\n";
print "\n";
print " media <option>\n";
print " list <option>\n";
print " files : list media files currently in memory\n";
print " dbs : list database media entries currently in memory\n";
print " reload <option>\n";
print " file <file name> : reload one media file into memory\n";
print " files : reload all media files currently in memory\n";


Loading…
Cancel
Save