diff --git a/soundconverter-2.0.4-fedora.patch b/soundconverter-2.0.4-fedora.patch index 895b6c2..2a93d37 100644 --- a/soundconverter-2.0.4-fedora.patch +++ b/soundconverter-2.0.4-fedora.patch @@ -32,7 +32,7 @@ diff -Nur soundconverter-2.0.4-orig/soundconverter/fileoperations.py soundconver diff -Nur soundconverter-2.0.4-orig/soundconverter/gstreamer.py soundconverter-2.0.4/soundconverter/gstreamer.py --- soundconverter-2.0.4-orig/soundconverter/gstreamer.py 2012-10-04 13:56:26.000000000 +0200 -+++ soundconverter-2.0.4/soundconverter/gstreamer.py 2013-02-25 19:04:02.270310794 +0100 ++++ soundconverter-2.0.4/soundconverter/gstreamer.py 2013-02-26 22:30:58.460075106 +0100 @@ -142,6 +142,7 @@ self.error = None self.connected_signals = [] @@ -63,7 +63,79 @@ diff -Nur soundconverter-2.0.4-orig/soundconverter/gstreamer.py soundconverter-2 return show_error('Error', 'failed to install plugins: %s' % gobject.markup_escape_text(str(result))) -@@ -456,10 +461,14 @@ +@@ -328,7 +333,6 @@ + self.sound_file = sound_file + self.time = 0 + self.position = 0 +- self.probe_id = None + + command = '%s location="%s" name=src ! decodebin name=decoder' % \ + (gstreamer_source, encode_filename(self.sound_file.uri)) +@@ -352,6 +356,19 @@ + except gst.QueryError: + self.sound_file.duration = None + ++ def query_position(self): ++ """ ++ Ask for the stream position of the current pipeline. ++ """ ++ try: ++ if self.pipeline: ++ self.position = self.pipeline.query_position( ++ gst.FORMAT_TIME)[0] / gst.SECOND ++ if self.position < 0: ++ self.position = 0 ++ except gst.QueryError: ++ self.position = 0 ++ + def found_tag(self, decoder, something, taglist): + debug('found_tags:', self.sound_file.filename_for_display) + for k in taglist.keys(): +@@ -380,33 +397,14 @@ + tags[k] = taglist[k] + + self.sound_file.tags.update(tags) +- +- try: +- self.sound_file.duration = self.pipeline.query_duration( +- gst.FORMAT_TIME)[0] / gst.SECOND +- except gst.QueryError: +- pass +- +- def _buffer_probe(self, pad, buffer): +- """buffer probe callback used to get real time +- since the beginning of the stream""" +- if buffer.timestamp == gst.CLOCK_TIME_NONE: +- pad.remove_buffer_probe(self.probe_id) +- return False +- +- self.position = float(buffer.timestamp) / gst.SECOND +- return True ++ self.query_duration() + + def new_decoded_pad(self, decoder, pad, is_last): + """ called when a decoded pad is created """ +- self.probe_id = pad.add_buffer_probe(self._buffer_probe) +- self.probed_pad = pad +- self.processing = True + self.query_duration() ++ self.processing = True + + def finished(self): +- if self.probe_id: +- self.probed_pad.remove_buffer_probe(self.probe_id) + Pipeline.finished(self) + + def get_sound_file(self): +@@ -422,6 +420,7 @@ + + def get_position(self): + """ return the current pipeline position in the stream """ ++ self.query_position() + return self.position + + # this is needed since TagReader caller don't keep a reference long enough, +@@ -456,10 +455,14 @@ def finished(self): Pipeline.finished(self) @@ -80,7 +152,7 @@ diff -Nur soundconverter-2.0.4-orig/soundconverter/gstreamer.py soundconverter-2 class Converter(Decoder): -@@ -501,24 +510,23 @@ +@@ -501,24 +504,23 @@ 'gst-profile': self.add_audio_profile, } self.add_command('audiorate') @@ -114,7 +186,7 @@ diff -Nur soundconverter-2.0.4-orig/soundconverter/gstreamer.py soundconverter-2 self.output_type) return -@@ -529,7 +537,7 @@ +@@ -529,7 +531,7 @@ if dirname and not gnomevfs.exists(dirname): log('Creating folder: \'%s\'' % dirname) if not vfs_makedirs(str(dirname)): @@ -123,7 +195,7 @@ diff -Nur soundconverter-2.0.4-orig/soundconverter/gstreamer.py soundconverter-2 return self.add_command('%s location="%s"' % ( -@@ -828,6 +836,7 @@ +@@ -828,6 +830,7 @@ self.errors.append(task.error) if task.error: self.error_count += 1 diff --git a/soundconverter.spec b/soundconverter.spec index 97e6a24..0e1d162 100644 --- a/soundconverter.spec +++ b/soundconverter.spec @@ -2,7 +2,7 @@ Name: soundconverter Version: 2.0.4 -Release: 21%{?dist} +Release: 22%{?dist} Summary: Simple sound converter application for GNOME Group: Applications/Multimedia @@ -42,7 +42,7 @@ BuildArch: noarch # applied, lp #1123519 # soundconverter-2.0.4-remove-treesortedmodel.patch # fixed, lp #1128080 - 2.0.4 batch mode / TypeError: could not parse URI -# reported, lp #1132916 +# fixed, lp #1132916 # soundconverter-2.0.4-per-file-progress.patch # reported, lp #1132936 # soundconverter-2.0.4-cancel-per-file-progress.patch @@ -141,6 +141,9 @@ update-desktop-database &> /dev/null ||: %changelog +* Tue Feb 26 2013 Michael Schwendt - 2.0.4-22 +- Merge new code from master for progress-per-file indication. + * Mon Feb 25 2013 Michael Schwendt - 2.0.4-21 - Ignore aborted tasks in task_finished. - Log correct number of tasks in queue.