diff --git a/oxgst/info.py b/oxgst/info.py index cfe0b52..c421007 100644 --- a/oxgst/info.py +++ b/oxgst/info.py @@ -24,34 +24,49 @@ codec_list = { class Info(dict): def __init__(self, path): + self._stream_id = 0 + self['video'] = [] + self['audio'] = [] self['size'] = os.stat(path).st_size mainloop = gobject.MainLoop() def discovered(d, is_media): if is_media: if d.is_video: - #self['video caps'] = d.videocaps - #self['framerate (fps)'] = '%s:%s' % (d.videorate.num, d.videorate.denom) - self['width'] = d.videowidth - self['height'] = d.videoheight - self['duration'] = d.videolength/gst.MSECOND - self['framerate'] = float(d.videorate) + c = {} + c['width'] = d.videowidth + c['height'] = d.videoheight + self['duration'] = float(d.videolength)/gst.SECOND + c["framerate"] = "%d:%d" % (d.videorate.num, d.videorate.denom) s = d.videocaps[0] + par = gst.Fraction(1, 1) if 'pixel-aspect-ratio' in s.keys(): - self["pixel-aspect-ratio"] = "%d:%d" % (s['pixel-aspect-ratio'].num, s['pixel-aspect-ratio'].denom) + par = s['pixel-aspect-ratio'] + c["pixel_aspect_ratio"] = "%s:%s" %(par.num, par.denom) + dar = gst.Fraction(d.videowidth * par.num, d.videoheight * par.denom) + if 'display-aspect-ratio' in s.keys(): + dar = s['display-aspect-ratio'] + c["display_aspect_ratio"] = "%s:%s" %(dar.num, dar.denom) + if 'video-codec' in d.tags: + c['codec'] = codec_list.get(d.tags['video-codec'], d.tags['video-codec']) + c['id'] = self._stream_id + self._stream_id += 1 + self['video'].append(c) if d.is_audio: + c = {} #self['audio caps'] = d.audiocaps #self['audio format'] = d.audiofloat and 'floating-point' or 'integer' #self['sample width (bits)'] = d.audiowidth #self['sample depth (bits)'] = d.audiodepth - self['samplerate'] = d.audiorate + c['samplerate'] = d.audiorate if 'duration' not in self: - self['duration'] = d.audiolength/gst.MSECOND - self['channels'] = d.audiochannels + self['duration'] = float(d.audiolength)/gst.SECOND + c['channels'] = d.audiochannels - if 'video-codec' in d.tags: - self['video-codec'] = codec_list.get(d.tags['video-codec'], d.tags['video-codec']) - if 'audio-codec' in d.tags: - self['audio-codec'] = codec_list.get(d.tags['audio-codec'], d.tags['audio-codec']) + if 'audio-codec' in d.tags: + c['codec'] = codec_list.get(d.tags['audio-codec'], d.tags['audio-codec']) + c['id'] = self._stream_id + self._stream_id += 1 + self['audio'].append(c) mainloop.quit() d = discoverer.Discoverer(path)