diff options
author | flavio <fdanesse@gmail.com> | 2012-12-19 15:51:02 (GMT) |
---|---|---|
committer | flavio <fdanesse@gmail.com> | 2012-12-19 15:51:02 (GMT) |
commit | cece9c4e3c0a5b07889c88fd416679aa21a47159 (patch) | |
tree | c7859988cdb5da58051849bd314c6e57635ad80a | |
parent | 3fa345f645bd591db70b32b487d7bed87a2f3018 (diff) |
Gst.TagList
-rw-r--r-- | glive.py | 72 | ||||
-rw-r--r-- | model.py | 33 |
2 files changed, 62 insertions, 43 deletions
@@ -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() @@ -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): |