[rygel] core,doc: Make AVC_MP4 transcoder configurable



commit d61686dad21d4ca9d0eb83a493e7138fbf55f046
Author: Luis de Bethencourt <luis debethencourt collabora com>
Date:   Tue Jul 19 12:04:57 2011 +0200

    core,doc: Make AVC_MP4 transcoder configurable

 data/rygel.conf                         |    3 +++
 doc/man/rygel.conf.xml                  |   10 ++++++++++
 doc/man/rygel.xml                       |   19 +++++++++++++++++++
 src/rygel/rygel-cmdline-config.vala     |   11 +++++++++++
 src/rygel/rygel-configuration.vala      |    2 ++
 src/rygel/rygel-environment-config.vala |    5 +++++
 src/rygel/rygel-meta-config.vala        |   19 +++++++++++++++++++
 src/rygel/rygel-transcode-manager.vala  |    1 +
 src/rygel/rygel-user-config.vala        |    5 +++++
 9 files changed, 75 insertions(+), 0 deletions(-)
---
diff --git a/data/rygel.conf b/data/rygel.conf
index 77a7054..3b9fa65 100644
--- a/data/rygel.conf
+++ b/data/rygel.conf
@@ -29,6 +29,9 @@ enable-wmv-transcoder=true
 # Set it to 'false' if you want to disable AAC_ISO_320 transcoding support.
 enable-aac-transcoder=true
 
+# Set it to 'false' if you want to disable AVC_MP4 transcoding support.
+enable-avc-transcoder=true
+
 # Where video files should be saved if allow-upload is true.
 # Defaults to @VIDEOS@, the standard videos folder (typically ${HOME}/Videos).
 video-upload-folder= VIDEOS@
diff --git a/doc/man/rygel.conf.xml b/doc/man/rygel.conf.xml
index 9036aae..a5c3394 100644
--- a/doc/man/rygel.conf.xml
+++ b/doc/man/rygel.conf.xml
@@ -197,6 +197,16 @@ man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
       </varlistentry>
       <varlistentry>
         <term>
+          <option>enable-avc-transcoder</option>
+        </term>
+        <listitem>
+          <para>
+            Set to <userinput>true</userinput> to enable transcoding to AVC.
+          </para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
           <option>log-level=<replaceable>DOMAIN</replaceable>:<replaceable>LEVEL</replaceable>[,<replaceable>DOMAIN</replaceable>:<replaceable>LEVEL</replaceable>,â]</option>
         </term>
         <listitem>
diff --git a/doc/man/rygel.xml b/doc/man/rygel.xml
index 8d42ee9..a37e800 100644
--- a/doc/man/rygel.xml
+++ b/doc/man/rygel.xml
@@ -233,6 +233,17 @@ handling.</para>
       </varlistentry>
       <varlistentry>
         <term>
+          <option>-z</option>
+        </term>
+        <term>
+          <option>--disable-avc-transcoder</option>
+        </term>
+        <listitem>
+          <para>Disable transcoding to AVC.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
           <option>-U</option>
         </term>
         <term>
@@ -449,6 +460,14 @@ handling.</para>
       </varlistentry>
       <varlistentry>
         <term>
+          <envar>RYGEL_DISABLE_AVC_TRANS</envar>
+        </term>
+        <listitem>
+          <para>Disable transcoding to AVC format.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
           <envar>RYGEL_LOG</envar>
         </term>
         <listitem>
diff --git a/src/rygel/rygel-cmdline-config.vala b/src/rygel/rygel-cmdline-config.vala
index 67e0962..ba53c73 100644
--- a/src/rygel/rygel-cmdline-config.vala
+++ b/src/rygel/rygel-cmdline-config.vala
@@ -42,6 +42,7 @@ internal class Rygel.CmdlineConfig : GLib.Object, Configuration {
     private static bool no_lpcm_trans;
     private static bool no_wmv_trans;
     private static bool no_aac_trans;
+    private static bool no_avc_trans;
 
     private static bool disallow_upload;
     private static bool disallow_deletion;
@@ -88,6 +89,8 @@ internal class Rygel.CmdlineConfig : GLib.Object, Configuration {
           "Disable WMV transcoder", null },
         { "disable-aac-transcoder", 'a', 0, OptionArg.NONE, ref no_aac_trans,
           "Disable AAC_ISO_320 transcoder", null },
+        { "disable-avc-transcoder", 'z', 0, OptionArg.NONE, ref no_avc_trans,
+          "Disable AVC_MP4 transcoder", null },
         { "disallow-upload", 'U', 0, OptionArg.NONE,
           ref disallow_upload, "Disallow upload", null },
         { "disallow-deletion", 'D', 0, OptionArg.NONE,
@@ -220,6 +223,14 @@ internal class Rygel.CmdlineConfig : GLib.Object, Configuration {
         }
     }
 
+    public bool get_avc_transcoder () throws GLib.Error {
+        if (!no_avc_trans) {
+            throw new ConfigurationError.NO_VALUE_SET (_("No value available"));
+        } else {
+            return false;
+        }
+    }
+
     public bool get_allow_upload () throws GLib.Error {
         if (!disallow_upload) {
             throw new ConfigurationError.NO_VALUE_SET (_("No value available"));
diff --git a/src/rygel/rygel-configuration.vala b/src/rygel/rygel-configuration.vala
index 45b4555..ca11265 100644
--- a/src/rygel/rygel-configuration.vala
+++ b/src/rygel/rygel-configuration.vala
@@ -49,6 +49,8 @@ public interface Rygel.Configuration : GLib.Object {
 
     public abstract bool get_aac_transcoder () throws GLib.Error;
 
+    public abstract bool get_avc_transcoder () throws GLib.Error;
+
     public abstract bool get_allow_upload () throws GLib.Error;
 
     public abstract bool get_allow_deletion () throws GLib.Error;
diff --git a/src/rygel/rygel-environment-config.vala b/src/rygel/rygel-environment-config.vala
index 3f09ae8..c2c8bff 100644
--- a/src/rygel/rygel-environment-config.vala
+++ b/src/rygel/rygel-environment-config.vala
@@ -42,6 +42,7 @@ internal class Rygel.EnvironmentConfig : GLib.Object, Configuration {
                                                   "_MP2TS_TRANS";
     private static string WMV_TRANSCODING_ENV = DISABLE_PREFIX + "_WMV_TRANS";
     private static string AAC_TRANSCODING_ENV = DISABLE_PREFIX + "_AAC_TRANS";
+    private static string AVC_TRANSCODING_ENV = DISABLE_PREFIX + "_AVC_TRANS";
     private static string DISALLOW_UPLOAD_ENV = DISABLE_PREFIX + "_UPLOAD";
     private static string DISALLOW_DELETION_ENV = DISABLE_PREFIX + "_DELETION";
     private static string LOG_LEVELS_ENV = RYGEL_PREFIX + "_LOG";
@@ -90,6 +91,10 @@ internal class Rygel.EnvironmentConfig : GLib.Object, Configuration {
         return !this.get_bool_variable (AAC_TRANSCODING_ENV);
     }
 
+    public bool get_avc_transcoder () throws GLib.Error {
+        return !this.get_bool_variable (AVC_TRANSCODING_ENV);
+    }
+
     public bool get_lpcm_transcoder () throws GLib.Error {
         return !this.get_bool_variable (LPCM_TRANSCODING_ENV);
     }
diff --git a/src/rygel/rygel-meta-config.vala b/src/rygel/rygel-meta-config.vala
index d509c63..762c036 100644
--- a/src/rygel/rygel-meta-config.vala
+++ b/src/rygel/rygel-meta-config.vala
@@ -238,6 +238,25 @@ public class Rygel.MetaConfig : GLib.Object, Configuration {
         return val;
     }
 
+    public bool get_avc_transcoder () throws GLib.Error {
+        bool val = true;
+        bool unavailable = true;
+
+        foreach (var config in this.configs) {
+            try {
+                val = config.get_avc_transcoder ();
+                unavailable = false;
+                break;
+            } catch (GLib.Error err) {}
+        }
+
+        if (unavailable) {
+            throw new ConfigurationError.NO_VALUE_SET (_("No value available"));
+        }
+
+        return val;
+    }
+
     public bool get_allow_upload () throws GLib.Error {
         bool val = true;
         bool unavailable = true;
diff --git a/src/rygel/rygel-transcode-manager.vala b/src/rygel/rygel-transcode-manager.vala
index 29300f9..47ac9e6 100644
--- a/src/rygel/rygel-transcode-manager.vala
+++ b/src/rygel/rygel-transcode-manager.vala
@@ -63,6 +63,7 @@ internal abstract class Rygel.TranscodeManager : GLib.Object {
                 mp2ts_transcoder = config.get_mp2ts_transcoder ();
                 wmv_transcoder = config.get_wmv_transcoder ();
                 aac_transcoder = config.get_aac_transcoder ();
+                avc_transcoder = config.get_avc_transcoder ();
             }
         } catch (Error err) {}
 
diff --git a/src/rygel/rygel-user-config.vala b/src/rygel/rygel-user-config.vala
index df99044..e7e867c 100644
--- a/src/rygel/rygel-user-config.vala
+++ b/src/rygel/rygel-user-config.vala
@@ -40,6 +40,7 @@ public class Rygel.UserConfig : GLib.Object, Configuration {
     public static const string LPCM_TRANSCODER_KEY = "enable-lpcm-transcoder";
     public static const string WMV_TRANSCODER_KEY = "enable-wmv-transcoder";
     public static const string AAC_TRANSCODER_KEY = "enable-aac-transcoder";
+    public static const string AVC_TRANSCODER_KEY = "enable-avc-transcoder";
     public static const string ALLOW_UPLOAD_KEY = "allow-upload";
     public static const string ALLOW_DELETION_KEY = "allow-deletion";
     public static const string LOG_LEVELS_KEY = "log-level";
@@ -94,6 +95,10 @@ public class Rygel.UserConfig : GLib.Object, Configuration {
         return this.get_bool ("general", AAC_TRANSCODER_KEY);
     }
 
+    public bool get_avc_transcoder () throws GLib.Error {
+        return this.get_bool ("general", AVC_TRANSCODER_KEY);
+    }
+
     public bool get_allow_upload () throws GLib.Error {
         return this.get_bool ("general", ALLOW_UPLOAD_KEY);
     }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]