summaryrefslogtreecommitdiff
path: root/mediainfo
diff options
context:
space:
mode:
authorStefan Sauer <ensonic@users.sf.net>2013-10-21 09:08:18 +0200
committerStefan Sauer <ensonic@users.sf.net>2013-10-21 09:08:18 +0200
commite1464c2a6e2e0217bd334f57b0d82ec6a04a78ce (patch)
treef320d7b123acd36bd1309f8a0d6b8568554e313f /mediainfo
parent09600c8fb20a90f8c959284cd1515095d61e0375 (diff)
mi-info: start handling missing plugin messages
We only print them to the debug log for now.
Diffstat (limited to 'mediainfo')
-rw-r--r--mediainfo/src/mi-info.vala11
1 files changed, 11 insertions, 0 deletions
diff --git a/mediainfo/src/mi-info.vala b/mediainfo/src/mi-info.vala
index 74ec668..0a9207d 100644
--- a/mediainfo/src/mi-info.vala
+++ b/mediainfo/src/mi-info.vala
@@ -289,6 +289,8 @@ public class MediaInfo.Info : Box
//bus.set_sync_handler ((Gst.BusSyncHandler)bus.sync_signal_handler);
bus.enable_sync_message_emission();
bus.sync_message["element"].connect (on_element_sync_message);
+ bus.add_signal_watch();
+ bus.message["elemnt"].connect (on_element_message);
}
~Info () {
@@ -322,6 +324,7 @@ public class MediaInfo.Info : Box
try {
process_new_uri (dc.discover_uri (uri));
} catch (Error e) {
+ // we're failing here when there are missing container plugins
debug ("Failed to extract metadata from %s: %s: %s", uri, e.domain.to_string (), e.message);
}
} else {
@@ -515,6 +518,14 @@ public class MediaInfo.Info : Box
}
}
+ private void on_element_message (Gst.Bus bus, Message message) {
+ if (PbUtils.is_missing_plugin_message (message)) {
+ string details = PbUtils.missing_plugin_message_get_description(message);
+ debug ("Missing plugin: %s", details);
+ // TODO(ensonic): use this in addition to e.. container/codec names
+ }
+ }
+
private void on_video_stream_switched (Notebook nb, Widget page, uint page_num) {
if (pb.current_state > State.PAUSED) {
debug ("Switching video to: %u", page_num);