From 137875c23d973997b8bf5cd5763eb6503886a59e Mon Sep 17 00:00:00 2001 From: Ron Pedde Date: Tue, 31 Oct 2006 03:54:10 +0000 Subject: [PATCH] add general/never_transcode to specify codectypes that shouldn't be transcoded, even if the client suggests it can't play it (amarok, rhythmbox, others that lie about user-agent) --- admin-root/config.xml | 7 +++++++ src/conf.c | 1 + src/plugin.c | 13 ++++++++++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/admin-root/config.xml b/admin-root/config.xml index edc0327b..93f311f9 100644 --- a/admin-root/config.xml +++ b/admin-root/config.xml @@ -314,5 +314,12 @@ text + + Never Transcode + + Codecs to not transcode, even if plugins are available + + text + \ No newline at end of file diff --git a/src/conf.c b/src/conf.c index 1eddbd14..aff2572a 100644 --- a/src/conf.c +++ b/src/conf.c @@ -123,6 +123,7 @@ static CONF_ELEMENTS conf_elements[] = { { 0, 0, CONF_T_STRING,"general","ssc_codectypes" }, { 0, 0, CONF_T_STRING,"general","ssc_prog" }, { 0, 0, CONF_T_STRING,"general","password" }, + { 0, 0, CONF_T_STRING,"general","never_transcode" }, { 0, 0, CONF_T_MULTICOMMA,"general","compdirs" }, { 0, 0, CONF_T_STRING,"general","logfile" }, { 0, 0, CONF_T_EXISTPATH,"plugins","plugin_dir" }, diff --git a/src/plugin.c b/src/plugin.c index fb7ff126..7351e18f 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -446,12 +446,23 @@ int plugin_ssc_should_transcode(WS_CONNINFO *pwsc, char *codec) { int result; char *native_codecs=NULL; char *user_agent=NULL; - + char *never_transcode = NULL; + if(!codec) { DPRINTF(E_LOG,L_PLUG,"testing transcode on null codec?\n"); return FALSE; } + + never_transcode = conf_alloc_string("general","never_transcode",NULL); + if(never_transcode) { + if(strstr(never_transcode,codec)) { + free(never_transcode); + return FALSE; + } + free(never_transcode); + } + if(pwsc) { /* see if the headers give us any guidance */ native_codecs = ws_getrequestheader(pwsc,"accept-codecs");