From 9c0c716c2d21f282f13615086fa3812f140795bf Mon Sep 17 00:00:00 2001 From: Stefan Sauer Date: Wed, 15 Dec 2010 11:46:08 +0200 Subject: [PATCH] README: planning --- mediainfo/README | 76 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 72 insertions(+), 4 deletions(-) diff --git a/mediainfo/README b/mediainfo/README index 76bc75c687..0cc66598eb 100644 --- a/mediainfo/README +++ b/mediainfo/README @@ -31,8 +31,9 @@ Topology: Tags: taglist, audio-codec=(string)"MPEG\ 1\ Audio\,\ Layer\ 3\ \(MP3\)", has-crc=(boolean)false, channel-mode=(string)stereo, bitrate=(uint)128000; -Duration: - 0:04:00.039125000 +Properties: + Duration: 0:04:00.039125000 + Seekable: yes == compare == @@ -70,10 +71,11 @@ Duration: - tag lists - if there is a "language-code" in the tags (or subtitles?) use flag icons - deluge installs some under: /usr/share/pyshared/deluge/data/mediainfo/pixmaps/flags/ + - famfamfam-flag-png: locale/usr/share/flags/countries/ - handle album art in tag lists - geo-tags: map-widget?, link to google-maps? - artist: links to {last.fm,wikipedia} -- show level meters for audio +- show level meters for audio next or below video drawable == deep scan mode == - update fields when playing @@ -83,14 +85,80 @@ Duration: - gst-mi can draw them as a graph - get key-frame statistics - number of keyframes - - min,max,avg keyframe intervall + - min,max,avg keyframe interval +- disconts - raw data statistics - audio: level, ... - video: histogram, ... = TODO for discoverer = - add deep-scan mode (see above) + - add a mode property: quick-scan, deep-scan + (or just a boolean for deep-scan that is false by default) + - in deep-scan, don't stop on handle_message::GST_MESSAGE_ASYNC_DONE + - in deep-scan we need pad-probes for encoded data pads (to get bitrates) + - uridecodebin_pad_added_cb() has raw pads :/ + - look at uridecodebin_element_added_cb() + - the pads on uri-decodebin are sufficient to get keyframes and disconts - get duration per stream - this would need individual queries on the demuxer src pads - or duration as part of per stream tags += discoverer workflow = +== sync quick-scan == +app disco +--- ----- + | discover_uri() | + |--------------------->| + | done | + |<---------------------| + | + +== async quick-scan == +app disco +--- ----- + | discover_uri_async() | + |--------------------->| + | ... | + | discover_uri_async() | + |--------------------->| + | start() | + |--------------------->| + | ::discovered | + |<---------------------| + | ... | + | ::discovered | + |<---------------------| + | ::finisheded | + |<---------------------| + | + +== sync deep-scan == +- same as "sync quick-scan", no intermediate result + +== async deep-scan == +- same as "async quick-scan", but each discovered signal is followed by an + "analyzed" signal with detailed information + +app disco +--- ----- + | discover_uri_async() | + |--------------------->| + | ... | + | discover_uri_async() | + |--------------------->| + | start() | + |--------------------->| + | ::discovered | + |<---------------------| + | ::analzeded | + |<---------------------| + | ... | + | ::discovered | + |<---------------------| + | ::analzeded | + |<---------------------| + | ::finisheded | + |<---------------------| + | +