mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-27 17:48:26 +00:00
info: add a hashmap with wiki links and start using them
The container description will be turned into a link if we have a known wikipedia article for it.
This commit is contained in:
parent
5e2ad304eb
commit
47d22deff7
1 changed files with 18 additions and 1 deletions
|
@ -51,6 +51,7 @@ public class MediaInfo.Info : VPaned
|
||||||
|
|
||||||
private HashMap<string, string> resolutions;
|
private HashMap<string, string> resolutions;
|
||||||
private HashSet<string> tag_black_list;
|
private HashSet<string> tag_black_list;
|
||||||
|
private HashMap<string, string> wikilinks;
|
||||||
|
|
||||||
public Info ()
|
public Info ()
|
||||||
{
|
{
|
||||||
|
@ -101,6 +102,13 @@ public class MediaInfo.Info : VPaned
|
||||||
tag_black_list.add ("nominal-bitrate");
|
tag_black_list.add ("nominal-bitrate");
|
||||||
tag_black_list.add ("maximum-bitrate");
|
tag_black_list.add ("maximum-bitrate");
|
||||||
|
|
||||||
|
// map from media-type to wikipedia-articles, prefix with http://en.wikipedia.org/wiki/
|
||||||
|
// TODO: add more
|
||||||
|
wikilinks = new HashMap<string, string> ();
|
||||||
|
wikilinks["application/ogg"] = "Ogg";
|
||||||
|
wikilinks["application/x-annodex"] = "Ogg";
|
||||||
|
wikilinks["video/x-msvideo"] = "Audio_Video_Interleave";
|
||||||
|
|
||||||
// add widgets
|
// add widgets
|
||||||
// FIXME: handle aspect ratio (AspectFrame.ratio)
|
// FIXME: handle aspect ratio (AspectFrame.ratio)
|
||||||
drawing_area = new DrawingArea ();
|
drawing_area = new DrawingArea ();
|
||||||
|
@ -136,6 +144,7 @@ public class MediaInfo.Info : VPaned
|
||||||
container_name = new Label (null);
|
container_name = new Label (null);
|
||||||
container_name.set_alignment (0.0f, 0.5f);
|
container_name.set_alignment (0.0f, 0.5f);
|
||||||
container_name.set_selectable(true);
|
container_name.set_selectable(true);
|
||||||
|
container_name.set_use_markup(true);
|
||||||
table.attach (container_name, 1, 2, row, row+1, fill_exp, 0, 3, 1);
|
table.attach (container_name, 1, 2, row, row+1, fill_exp, 0, 3, 1);
|
||||||
row++;
|
row++;
|
||||||
|
|
||||||
|
@ -276,7 +285,15 @@ public class MediaInfo.Info : VPaned
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
sinfo = info.get_stream_info ();
|
sinfo = info.get_stream_info ();
|
||||||
container_name.set_text (pb_utils_get_codec_description (sinfo.get_caps ()));
|
Caps caps = sinfo.get_caps ();
|
||||||
|
string wikilink = wikilinks[caps.get_structure(0).get_name()];
|
||||||
|
str = pb_utils_get_codec_description (caps);
|
||||||
|
if (wikilink != null) {
|
||||||
|
// FIXME: make prefix and link translatable
|
||||||
|
container_name.set_markup ("<a href=\"http://en.wikipedia.org/wiki/%s\">%s</a>".printf (wikilink, str));
|
||||||
|
} else {
|
||||||
|
container_name.set_text (str);
|
||||||
|
}
|
||||||
|
|
||||||
// get stream info
|
// get stream info
|
||||||
while (video_streams.get_n_pages() > 0) {
|
while (video_streams.get_n_pages() > 0) {
|
||||||
|
|
Loading…
Reference in a new issue