]> git.parisson.com Git - telemeta.git/commitdiff
fix no image buffer after request, return to mp3 view by default
authorGuillaume Pellerin <yomguy@parisson.com>
Fri, 7 Jan 2011 15:30:33 +0000 (16:30 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Fri, 7 Jan 2011 15:30:33 +0000 (16:30 +0100)
telemeta/cache.py
telemeta/templates/telemeta/mediaitem_detail.html
telemeta/web/base.py

index b5f2fd9aa59d174b0de3c0be76e55eb1fa7ddc2a..19ec76ec318865183c30b9f97cfaab8d854ade76 100644 (file)
@@ -38,7 +38,6 @@
 
 import os
 import xml.dom.minidom
-#import xml.dom.ext
 
 
 class TelemetaCache(object):
@@ -74,7 +73,7 @@ class TelemetaCache(object):
         
     def read_stream_bin(self, file):
         path = self.dir + os.sep + file
-        chunk_size = 0x1000
+        chunk_size = 0xFFF
         f = open(path,  'r')
         while True:
             _chunk = f.read(chunk_size)
@@ -116,5 +115,4 @@ class TelemetaCache(object):
             root.appendChild(node)
         f = open(path, "w")
         f.write(xml.dom.minidom.Document.toprettyxml(doc))
-#        xml.dom.ext.PrettyPrint()
         f.close()
index c7b3ebdd831da4f8c6708a4216cb8bb9aac92977..b09e6a889dc0e8ada38acea1408ea3bf688efd15 100644 (file)
@@ -1,212 +1 @@
 {% extends "telemeta_default/mediaitem_detail.html" %}
-
-{% load telemeta_utils %}
-{% load i18n %}
-
-{% block content %}
-
-<h3>Item : {{ item }}</h3>
-<div class="{% if item.file %}with-rightcol{% endif %}">
-
-{% if item.file %}
-    <div id="player_maximized" class="ts-skin-lab">
-        <a href="#" class="toggle">Minimize</a>
-        <div class="wazing"></div>
-    </div>
-    <div id="rightcol">
-        <div id="player_minimized" class="ts-skin-lab">
-        <a href="#" class="toggle">Maximize</a>
-        <div class="wazing"></div>
-        <div id="player" class="ts-player">
-            <div class="ts-viewer">
-                <div class="ts-wave">
-                    <div class="ts-image-container">
-                        <a href="{% url telemeta-item-export item.public_id,"m4a" %}">
-                        <img class="ts-image" src="{% url telemeta-item-visualize item.public_id,visualizer_id,1800,233 %}"
-                          alt="" /></a>
-                    </div>
-                </div>
-            </div>
-        </div>
-        </div>
-
-        <div class="item_visualization">
-            <form id="visualizer_id_form" method="get" action="#">
-                <!--
-                <select name="visualizer_id" onchange="this.form.submit()">
-                    {% for v in visualizers %}
-                    <option value="{{ v.id }}" {% ifequal v.id visualizer_id %} selected="selected" {% endifequal %}>
-                    {{v.name}}</option>
-                    {% endfor %}
-                </select>
-                -->
-                <select id="visualizer_id" name="visualizer_id">
-                    {% for v in visualizers %}
-                    <option value="{% url telemeta-item-visualize item.public_id,v.id,"WIDTH","HEIGHT" %}">
-                    {{v.name}}</option>
-                    {% endfor %}
-                </select>
-                <input type="submit" value="Set" />
-            </form>
-
-          <div class="analyzer">
-            <table width="100%">
-             <tr class="analyzer-title">
-              <td>Property</td>
-              <td>Value</td>
-              <td>Unit</td>
-             <tr>
-            {% for analyser in analysers %}
-             <tr class="analyzer-line">
-              <td>
-                {{ analyser.name }}
-              </td>
-              <td>
-                {{ analyser.value }}
-              </td>
-              <td>
-                {{ analyser.unit }}
-              </td>
-            </tr>
-            {% endfor %}
-           </table>
-         </div>
-<!--
-        <form method="get" action="#">
-            <p>&nbsp;Vamp plugin analysis</p>
-            <select name="vamp_id">
-            {% for plugin in vamp_plugins %}
-            <option value="{{ plugin }}" {% ifequal plugin vamp_id %} selected="selected" {% endifequal %}>
-            {{ plugin }}</option>
-            {% endfor %}
-            </select>
-            <input type="submit" value="Get" />
-        </form>
--->
-        </div>
-
-        {% if audio_export_enabled %}
-        <div class="exporter">
-            <p>{% trans "Download:" %}
-            {% for format in export_formats %}
-            <a href="{% url telemeta-item-export item.public_id,format.extension %}">{{ format.name }}</a>
-            {% endfor %}</p>
-        </div>
-        {% endif %}
-
-    </div>
-{% endif %}
-
-    <div class="infos">
-    {% block general_info %}
-        <dl class="listing">
-            {% dl_field item "title" %}
-            {% dl_field item "alt_title" %}
-            {% dl_field item "collector" %}
-            <dt>{% field_label item "collection" %}</dt>
-            <dd><a href="{% url telemeta-collection-detail item.collection.public_id %}">{{ item.collection }}</a></dd>
-            {% if item.recorded_from_date %}
-                <dt>{% trans "Recording date" %}</dt>
-                <dd>{{ item.recorded_from_date }} {{ item.recorded_to_date|prepend:" - "  }}</dd>
-            {% endif %}
-        </dl>
-    {% endblock general_info %}
-    </div>
-    <div class="extraInfos">
-    {% block geoethnic_data %}
-        <div>
-            <h4><a href="#">{% trans "Geographic and cultural informations" %}</a></h4>
-            <dl class="listing">
-                {% if item.location %}
-                    <dt>{% trans "Location" %}</dt>
-                    <dd>{{ item.location.fullnames|join:"<br/>" }}</dd>
-                {% endif %}
-                {% dl_field item "location_comment" %}
-                {% dl_field item "cultural_area" %}
-                {% dl_field item "ethnic_group" %}
-                {% dl_field item "context_comment" %}
-                {% dl_field item "keywords" join with ", " %}
-            </dl>
-        </div>
-    {% endblock geoethnic_data %}
-    </div>
-    <div class="extraInfos">
-    {% block musical_data %}
-        <div>
-            <h4><a href="#">{% trans "Musical informations" %}</a></h4>
-            <dl class="listing">
-                {% dl_field item "vernacular_style" %}
-                {% dl_field item "generic_style" %}
-                {% dl_field item "author" %}
-            </dl>
-            {% if item.performances %}
-            <div class="instruments">
-                <table class="instruments">
-                <thead>
-                    <tr>
-                        <td>{% field_label "MediaItemPerformance" "instruments_num" %}</td>
-                        <td>{% field_label "MediaItemPerformance" "instrument" %}</td>
-                        <td>{% field_label "MediaItemPerformance" "alias" %}</td>
-                        <td>{% field_label "MediaItemPerformance" "musicians" %}</td>
-                    </tr>
-                </thead>
-                <tbody>
-                    {% for performance in item.performances.all %}
-                    <tr>
-                        <td>{{ performance.instruments_num }}</td>
-                        <td>{{ performance.instrument|default:"" }}</td>
-                        <td>{{ performance.alias|default:"" }}</td>
-                        <td>{{ performance.musicians }}</td>
-                    </tr>
-                    {% endfor %}
-                </tbody>
-                </table>
-            </div>
-            {% endif %}
-        </div>
-    {% endblock musical_data %}
-    </div>
-    <div class="extraInfos">
-    {% block general_data %}
-        <div>
-            <h4><a href="#">{% trans "General informations" %}</a></h4>
-            <dl class="listing">
-                {% dl_field item "comment" %}
-                {% dl_field item "collector_selection" %}
-            </dl>
-        </div>
-    {% endblock general_data %}
-    </div>
-    <div class="extraInfos">
-    {% block archive_data %}
-        <div>
-            <h4><a href="#">{% trans "Archiving data" %}</a></h4>
-            <dl class="listing">
-                {% dl_field item "code" %}
-                {% dl_field item "old_code" %}
-                {% dl_field item "track" %}
-                {% dl_field item "creator_reference" %}
-                {% dl_field item "external_references" %}
-                {% dl_field item "public_access_label" %}
-            </dl>
-        </div>
-    {% endblock archive_data %}
-    </div>
-    <div class="extraInfos">
-    {% block technical_data %}
-        <div>
-            <h4><a href="#">{% trans "Technical data" %}</a></h4>
-            <div>
-                <dl class="listing">
-                    <dt>{% trans "Media type" %}</dt><dd>{% trans "Audio" %}</dd>
-                    {% dl_field item "approx_duration" %}
-                </dl>
-            </div>
-        </div>
-    {% endblock technical_data %}
-    </div>
-
-</div> <!-- with-rightcol -->
-
-{% endblock %}
-
index d9599856fbd257989b100bfaf1207cda84ef4f9b..9c1257e10ff3efaf9f355ff167bd55cae84b7943 100644 (file)
@@ -161,13 +161,14 @@ class WebView(object):
                                       'id':analyzer.id(),
                                       'unit':analyzer.unit(),
                                       'value':str(value)})
+                decoder.release()
                 
             self.cache.write_analyzer_xml(analyzers, analyze_file)
         
         return render(request, template, 
                     {'item': item, 'export_formats': formats, 
                     'visualizers': graphers, 'visualizer_id': grapher_id,'analysers': analyzers,  #FIXME analysers
-                    'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', False)
+                    'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True)
                     })
 
     def item_analyze(self):
@@ -195,7 +196,7 @@ class WebView(object):
                 pipe = decoder | graph
                 pipe.run()
                 graph.render(self.cache.dir + os.sep + file)
-
+        
         response = HttpResponse(self.cache.read_stream_bin(file), mimetype = mime_type)
         return response
 
@@ -233,15 +234,16 @@ class WebView(object):
             if not self.cache_export.exists(file):
                 # source > encoder > stream
                 media = self.cache_export.dir + os.sep + file
-                decoder.setup()
                 proc = encoder(media)
-                proc.setup(decoder.channels(), decoder.samplerate())
-                #metadata = dublincore.express_item(item).to_list()
-                #enc.set_metadata(metadata)
-                response = HttpResponse(stream_from_processor(decoder, proc), mimetype = mime_type)
-            else:
-                response = HttpResponse(self.cache_export.read_stream_bin(file), mimetype = mime_type)
+#                metadata = dublincore.express_item(item).to_list()
+#                enc.set_metadata(metadata)
+                pipe = decoder | proc
+                pipe.run()
+#                response = HttpResponse(stream_from_processor(decoder, proc), mimetype = mime_type)
+#            else:
+            response = HttpResponse(self.cache_export.read_stream_bin(file), mimetype = mime_type)
         
+        decoder.release()
         response['Content-Disposition'] = 'attachment'
         return response