Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflavio <fdanesse@gmail.com>2012-12-19 15:51:02 (GMT)
committer flavio <fdanesse@gmail.com>2012-12-19 15:51:02 (GMT)
commitcece9c4e3c0a5b07889c88fd416679aa21a47159 (patch)
treec7859988cdb5da58051849bd314c6e57635ad80a
parent3fa345f645bd591db70b32b487d7bed87a2f3018 (diff)
Gst.TagList
-rw-r--r--glive.py72
-rw-r--r--model.py33
2 files changed, 62 insertions, 43 deletions
diff --git a/glive.py b/glive.py
index da84e27..10ba2f6 100644
--- a/glive.py
+++ b/glive.py
@@ -451,14 +451,18 @@ class Glive:
audioline = Gst.parse_launch(command)
- #taglist = self._get_tags(constants.TYPE_AUDIO)
-
- #if self._audio_pixbuf:
- #pixbuf_b64 = utils.getStringFromPixbuf(self._audio_pixbuf)
- #taglist[Gst.TAG_EXTENDED_COMMENT] = "coverart=" + pixbuf_b64
-
- #vorbis_enc = audioline.get_by_name('audioVorbisenc')
- #vorbis_enc.merge_tags(taglist, Gst.TagMergeMode.REPLACE_ALL)
+ taglist = self._get_tags(constants.TYPE_AUDIO)
+
+ if self._audio_pixbuf:
+ pixbuf_b64 = utils.getStringFromPixbuf(self._audio_pixbuf)
+
+ taglist.add_value(
+ Gst.TagMergeMode.REPLACE,
+ Gst.TAG_EXTENDED_COMMENT,
+ "coverart=" + pixbuf_b64)
+
+ vorbis_enc = audioline.get_by_name('audioVorbisenc')
+ vorbis_enc.merge_tags(taglist, Gst.TagMergeMode.REPLACE_ALL)
audioFilesink = audioline.get_by_name('audioFilesink')
audioOggFilepath = os.path.join(Instance.instancePath, "output.ogg")
@@ -476,20 +480,40 @@ class Glive:
def _get_tags(self, type):
- tl = Gst.TagList()
- """
- tl[Gst.TAG_ARTIST] = self.model.get_nickname()
- tl[Gst.TAG_COMMENT] = "olpc"
+ taglist = Gst.TagList.new_empty()
+
+ taglist.add_value(
+ Gst.TagMergeMode.REPLACE,
+ Gst.TAG_ARTIST,
+ self.model.get_nickname())
+
+ taglist.add_value(
+ Gst.TagMergeMode.REPLACE,
+ Gst.TAG_COMMENT,
+ "olpc")
+
#this is unfortunately, unreliable
#record.Record.log.debug("self.ca.metadata['title']->" + str(self.ca.metadata['title']) )
- tl[Gst.TAG_ALBUM] = "olpc" #self.ca.metadata['title']
- tl[Gst.TAG_DATE] = utils.getDateString(int(time.time()))
- stringType = constants.MEDIA_INFO[type]['istr']
-
- # Translators: photo by photographer, e.g. "Photo by Mary"
- tl[Gst.TAG_TITLE] = _('%(type)s by %(name)s') % {'type': stringType,
- 'name': self.model.get_nickname()}"""
- return tl
+
+ taglist.add_value(
+ Gst.TagMergeMode.REPLACE,
+ Gst.TAG_ALBUM,
+ "olpc") #self.ca.metadata['title']
+
+ taglist.add_value(
+ Gst.TagMergeMode.REPLACE,
+ Gst.TAG_DATE,
+ utils.getDateString(int(time.time())))
+
+ stringType = constants.MEDIA_INFO[type]['istr'] #self.ca.metadata['title']
+
+ taglist.add_value(
+ Gst.TagMergeMode.REPLACE,
+ Gst.TAG_TITLE,
+ _('%(type)s by %(name)s') % {'type': stringType,
+ 'name': self.model.get_nickname()})
+
+ return taglist
def _take_photo(self, photo_mode):
@@ -534,7 +558,7 @@ class Glive:
self.thumbBuf = GdkPixbuf.Pixbuf.new_from_file(pix_file)
self.model.still_ready(self.thumbBuf)
- self.save_photo(pixBuf)
+ self.save_photo(self.thumbBuf)
def save_photo(self, pixbuf):
@@ -683,9 +707,9 @@ class Glive:
muxline = Gst.parse_launch(command)
- #taglist = self._get_tags(constants.TYPE_VIDEO)
- #vorbis_enc = muxline.get_by_name('muxVorbisenc')
- #vorbis_enc.merge_tags(taglist, Gst.TagMergeMode.REPLACE_ALL)
+ taglist = self._get_tags(constants.TYPE_VIDEO)
+ vorbis_enc = muxline.get_by_name('muxVorbisenc')
+ vorbis_enc.merge_tags(taglist, Gst.TagMergeMode.REPLACE_ALL)
muxBus = muxline.get_bus()
muxBus.add_signal_watch()
diff --git a/model.py b/model.py
index 36ae819..3709bda 100644
--- a/model.py
+++ b/model.py
@@ -76,22 +76,17 @@ class Model:
def write_file(self, path):
- # FIXME: Error: invalid value (typically too big) for the size of the input (surface, pattern, etc.)
- # File ". . ./sugar3/activity/activity.py", line 648, in get_preview
- # dummy_cr = Gdk.cairo_create(window)
-
- #ui_serialized = self.activity.serialize()
- #self.mediaHashs['ui'] = ui_serialized
- #dom = serialize.saveMediaHash(self.mediaHashs, self.activity)
- #ui_data = json.dumps(ui_serialized)
- #ui_el = dom.createElement('ui')
- #ui_el.appendChild(dom.createTextNode(ui_data))
- #dom.documentElement.appendChild(ui_el)
-
- #fd = open(path, "w")
- #dom.writexml(fd)
- #fd.close()
- pass
+ ui_serialized = self.activity.serialize()
+ self.mediaHashs['ui'] = ui_serialized
+ dom = serialize.saveMediaHash(self.mediaHashs, self.activity)
+ ui_data = json.dumps(ui_serialized)
+ ui_el = dom.createElement('ui')
+ ui_el.appendChild(dom.createTextNode(ui_data))
+ dom.documentElement.appendChild(ui_el)
+
+ fd = open(path, "w")
+ dom.writexml(fd)
+ fd.close()
def read_file(self, path):
@@ -106,9 +101,9 @@ class Model:
for i in dom.documentElement.getElementsByTagName('ui'):
for ui_el in i.childNodes:
self.activity.deserialize(json.loads(ui_el.data))
- # FIXME: KeyError: None
- #for recd in self.mediaHashs[self._mode]:
- # self.activity.add_thumbnail(recd, True)
+
+ for recd in self.mediaHashs[self._mode]:
+ self.activity.add_thumbnail(recd, True)
def get_has_camera(self):