mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2025-01-03 14:56:34 -05:00
revert previous patch, mike didn't want it...
svn path=/trunk/icecast/; revision=5866
This commit is contained in:
parent
450d448422
commit
b7fbcef133
19
src/admin.c
19
src/admin.c
@ -34,6 +34,7 @@
|
||||
#include "xslt.h"
|
||||
|
||||
#include "format.h"
|
||||
#include "format_mp3.h"
|
||||
|
||||
#include "logging.h"
|
||||
#ifdef _WIN32
|
||||
@ -641,7 +642,7 @@ static void command_metadata(client_t *client, source_t *source)
|
||||
{
|
||||
char *action;
|
||||
char *value;
|
||||
format_plugin_t *format;
|
||||
mp3_state *state;
|
||||
#ifdef USE_YP
|
||||
int i;
|
||||
time_t current_time;
|
||||
@ -652,8 +653,7 @@ static void command_metadata(client_t *client, source_t *source)
|
||||
COMMAND_REQUIRE(client, "mode", action);
|
||||
COMMAND_REQUIRE(client, "song", value);
|
||||
|
||||
format = source->format;
|
||||
if (format->type != FORMAT_TYPE_MP3)
|
||||
if (source->format->type != FORMAT_TYPE_MP3)
|
||||
{
|
||||
client_send_400 (client, "Not mp3, cannot update metadata");
|
||||
return;
|
||||
@ -664,11 +664,14 @@ static void command_metadata(client_t *client, source_t *source)
|
||||
client_send_400 (client, "No such action");
|
||||
return;
|
||||
}
|
||||
if (format->set_tag)
|
||||
{
|
||||
if (value)
|
||||
format->set_tag (format, "title", value);
|
||||
}
|
||||
|
||||
state = source->format->_state;
|
||||
|
||||
thread_mutex_lock(&(state->lock));
|
||||
free(state->metadata);
|
||||
state->metadata = strdup(value);
|
||||
state->metadata_age++;
|
||||
thread_mutex_unlock(&(state->lock));
|
||||
|
||||
DEBUG2("Metadata on mountpoint %s changed to \"%s\"",
|
||||
source->mount, value);
|
||||
|
@ -54,7 +54,6 @@ typedef struct _format_plugin_tag
|
||||
struct source_tag *source, client_t *client);
|
||||
void (*client_send_headers)(struct _format_plugin_tag *format,
|
||||
struct source_tag *source, client_t *client);
|
||||
void (*set_tag)(struct _format_plugin_tag *plugin, char *tag, char *value);
|
||||
void (*free_plugin)(struct _format_plugin_tag *self);
|
||||
|
||||
/* for internal state management */
|
||||
|
@ -63,7 +63,6 @@ static int format_mp3_write_buf_to_client(format_plugin_t *self,
|
||||
client_t *client, unsigned char *buf, int len);
|
||||
static void format_mp3_send_headers(format_plugin_t *self,
|
||||
source_t *source, client_t *client);
|
||||
static void mp3_set_tag (format_plugin_t *plugin, char *tag, char *value);
|
||||
|
||||
typedef struct {
|
||||
int use_metadata;
|
||||
@ -89,7 +88,6 @@ format_plugin_t *format_mp3_get_plugin(http_parser_t *parser)
|
||||
plugin->create_client_data = format_mp3_create_client_data;
|
||||
plugin->client_send_headers = format_mp3_send_headers;
|
||||
plugin->free_plugin = format_mp3_free_plugin;
|
||||
plugin->set_tag = mp3_set_tag;
|
||||
plugin->format_description = "MP3 audio";
|
||||
|
||||
plugin->_state = state;
|
||||
@ -106,18 +104,6 @@ format_plugin_t *format_mp3_get_plugin(http_parser_t *parser)
|
||||
}
|
||||
|
||||
|
||||
static void mp3_set_tag (format_plugin_t *plugin, char *tag, char *value)
|
||||
{
|
||||
mp3_state *state = plugin->_state;
|
||||
|
||||
thread_mutex_lock(&(state->lock));
|
||||
free(state->metadata);
|
||||
state->metadata = strdup(value);
|
||||
state->metadata_age++;
|
||||
thread_mutex_unlock(&(state->lock));
|
||||
}
|
||||
|
||||
|
||||
static int send_metadata(client_t *client, mp3_client_data *client_state,
|
||||
mp3_state *source_state)
|
||||
{
|
||||
|
@ -77,7 +77,6 @@ format_plugin_t *format_vorbis_get_plugin(void)
|
||||
plugin->create_client_data = format_vorbis_create_client_data;
|
||||
plugin->client_send_headers = format_vorbis_send_headers;
|
||||
plugin->free_plugin = format_vorbis_free_plugin;
|
||||
plugin->set_tag = NULL;
|
||||
plugin->format_description = "Ogg Vorbis";
|
||||
|
||||
state = (vstate_t *)calloc(1, sizeof(vstate_t));
|
||||
|
Loading…
Reference in New Issue
Block a user