]> git.parisson.com Git - timeside.git/commitdiff
encode api: use data members instead of methods for format, description, file extensi...
authorOlivier Guilyardi <olivier@samalyse.com>
Thu, 26 Nov 2009 20:20:35 +0000 (20:20 +0000)
committerOlivier Guilyardi <olivier@samalyse.com>
Thu, 26 Nov 2009 20:20:35 +0000 (20:20 +0000)
encode/api.py

index 628b1ddd07dd1591ff489c5d4e945a23894bbfab..ef4bd2084831a5a2fa53d93ba40b8afa80ac279b 100644 (file)
@@ -24,13 +24,22 @@ from timeside.core import Interface, TimeSideError
 class IEncoder(Interface):
     """Encoder driver interface"""
 
-    # Remark: the method prototypes do not include any self or cls argument
-    # because an interface is meant to show what methods a class must expose
-    # from the caller's point of view. However, when implementing the class
-    # you'll obviously want to include this extra argument.
+    format = ""
+    """Encoding format as a short string Example: "MP3", "OGG", "AVI", ... """
+
+    description = ""
+    """String describing what this encoding format provides, is good
+       for, etc... The description is meant to help the end user decide what
+       format is good for him/her """
+
+    file_extension = ""
+    """Filename extension corresponding to this encoding format"""
+
+    mime_type = ""
+    """Mime type corresponding to this encoding format"""
 
     # FIXME: this constructor conflicts with the core component architecture
-    def __init__(output, nchannels, samplerate):
+    def __init__(self, output, nchannels, samplerate):
         """The constructor must always accept the output, nchannels and samplerate 
         arguments.  It may accepts extra arguments such as bitrate, depth, etc.., 
         but these must be optionnal, that is have a default value.
@@ -40,40 +49,23 @@ class IEncoder(Interface):
         block of binary data.
         """
 
-    def format():
-        """Return the encode/encoding format as a short string
-        Example: "MP3", "OGG", "AVI", ...
-        """
-
-    def description():
-        """Return a string describing what this encode format provides, is good
-        for, etc... The description is meant to help the end user decide what
-        format is good for him/her
-        """
-
-    def file_extension():
-        """Return the filename extension corresponding to this encode format"""
-
-    def mime_type():
-        """Return the mime type corresponding to this encode format"""
-
-    def set_metadata(metadata):
+    def set_metadata(self, metadata):
         """metadata is a tuple containing tuples for each descriptor return by
         the dc.Ressource of the item, in the model order :
         ((name1, value1),(name2, value2),(name1, value3), ...)"""
 
-    def update():
+    def update(self):
         """Updates the metadata into the file passed as the output argument
            to the constructor. This method can't be called in streaming
            mode."""
 
-    def process(frames):
+    def process(self, frames):
         """Encode the frames passed as a numpy array, where columns are channels.
         
            In streaming mode the callback passed to the constructor is called whenever
            a block of encoded data is ready."""
 
-    def finish():
+    def finish(self):
         """Flush the encoded data and close the output file/stream. Calling this method
         may cause the streaming callback to be called if in streaming mode."""