{"id":228,"date":"2012-04-17T18:23:40","date_gmt":"2012-04-17T16:23:40","guid":{"rendered":"http:\/\/blogs.igalia.com\/xrcalvar\/?p=228"},"modified":"2012-04-27T14:20:30","modified_gmt":"2012-04-27T14:20:30","slug":"aura","status":"publish","type":"post","link":"https:\/\/blogs.igalia.com\/xrcalvar\/2012\/04\/17\/aura\/","title":{"rendered":"Aura"},"content":{"rendered":"<p>As my colleague <a href=\"http:\/\/blogs.igalia.com\/vjaquez\/\">V\u00edctor<\/a> at <a href=\"http:\/\/www.igalia.com\">Igalia<\/a> has said before in his <a href=\"http:\/\/blogs.igalia.com\/vjaquez\/2012\/04\/10\/aura\/\">post<\/a>, <a href=\"http:\/\/igalia.github.com\/aura\/\">Aura<\/a> was released to the <a href=\"http:\/\/store.ovi.com\/content\/266783\">Nokia Store<\/a>. <a href=\"http:\/\/blogs.igalia.com\/magomez\/\">Miguel<\/a>, V\u00edctor and I are quite happy with the result achieved with this app, which intention was to be kind of a port of the <a href=\"http:\/\/projects.gnome.org\/cheese\/\">Cheese<\/a> application of the <a href=\"http:\/\/www.gnome.org\">GNOME<\/a> platform to be used in the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Nokia_N9\">N9<\/a> or <a href=\"http:\/\/en.wikipedia.org\/wiki\/Nokia_N950\">N950<\/a> Nokia phones.<\/p>\n<p>The apps allows you to use both cameras (front and principal) to record videos, applying a lot of funny effects (a subset of the <a href=\"http:\/\/live.gnome.org\/GnomeVideoEffects\">GNOME Video Effects<\/a>) and changing them during the recording. Being Nokia a Finnish company, we decided to name the app after a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Aura_%28cheese%29\">Finnish Cheese<\/a> to both honor the GNOME Cheese application and Finland \ud83d\ude09<\/p>\n<p>You can download the app from the <a href=\"http:\/\/store.ovi.com\/content\/266783\">Nokia Store<\/a> where we already got more than 6000 downloads and 100 reviews with a quite good average rating.<\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/store.ovi.com\/content\/266783\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full\" src=\"http:\/\/blogs.igalia.com\/vjaquez\/files\/2012\/04\/nokia-n9-2.jpg\" alt=\"\" width=\"300\" height=\"250\" \/><\/a><\/p>\n<p>You have an example recorded by me with my own phone using the <em>Historical<\/em> effect and uploaded to Youtube:<\/p>\n<p style=\"text-align: center\"><iframe loading=\"lazy\" width=\"420\" height=\"315\" src=\"http:\/\/www.youtube.com\/embed\/Mg976XpRzPI\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>And you have even already other videos uploaded to Youtube talking about how Aura works. This one is from a brazilian guy (obrigado!) for <a href=\"http:\/\/www.faixamobi.com\/\">FaixaMobi<\/a> and shows more effects:<\/p>\n<p style=\"text-align: center\"><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"http:\/\/www.youtube.com\/embed\/bYOsreHXJwg\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>Of course, being it <a href=\"http:\/\/www.fsf.org\/\">free sofware<\/a> you can also compile it yourself with the <a href=\"https:\/\/github.com\/Igalia\/aura\">code at GitHub<\/a> and do not be afraid of contributing! The technologies we used were the <em>camerabin<\/em> element of <a href=\"http:\/\/gstreamer.freedesktop.org\/\">GStreamer<\/a> and <a href=\"http:\/\/doc.qt.nokia.com\/4.7-snapshot\/qdeclarativeelements.html\">Qt\/QML<\/a> for the interface where we have the following components:<\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/blogs.igalia.com\/xrcalvar\/files\/2012\/04\/aura.png\"><img decoding=\"async\" src=\"http:\/\/blogs.igalia.com\/xrcalvar\/files\/2012\/04\/aura.png\" alt=\"Aura components UML diagram\" width=\"400\" class=\"aligncenter size-full wp-image-258\" srcset=\"https:\/\/blogs.igalia.com\/xrcalvar\/files\/2012\/04\/aura.png 1036w, https:\/\/blogs.igalia.com\/xrcalvar\/files\/2012\/04\/aura-300x142.png 300w, https:\/\/blogs.igalia.com\/xrcalvar\/files\/2012\/04\/aura-1024x486.png 1024w, https:\/\/blogs.igalia.com\/xrcalvar\/files\/2012\/04\/aura-500x237.png 500w\" sizes=\"(max-width: 1036px) 100vw, 1036px\" \/><\/a><\/p>\n<ul>\n<li><em>Main view<\/em> (<code>aura.qml<\/code>) with the main interface<\/li>\n<li><em>Controller<\/em>, which is a <a href=\"http:\/\/blogs.igalia.com\/xrcalvar\/2012\/03\/19\/mixed-qmlc-objects-reloaded\/\">mixed QML\/C++ object<\/a> allowing to control the pipeline.<\/li>\n<li><em>Pipeline<\/em> is a C++ object used by the controller to encapsulate the GStreamer code.<\/li>\n<li><em>PostCapture<\/em> is also a <a href=\"http:\/\/blogs.igalia.com\/xrcalvar\/2012\/03\/19\/mixed-qmlc-objects-reloaded\/\">mixed QML\/C++ object<\/a> that <a href=\"http:\/\/blogs.igalia.com\/xrcalvar\/2012\/03\/23\/invoking-meego-1-2-harmattan-gallery\/\">opens the gallery application to show the recorded video<\/a> and gives you the oportunity of sharing it, deleting it and so on. It uses a C++ controller loaded as a singleton to the context to do some stuff that can only be done in C++. Of course, you can open Gallery yourself and the videos will show up there.<\/li>\n<li><em>EffectManager<\/em> is a C++ class to load and manage the <em>Effect<\/em>s, which is another C++ class defining how the effect must be applied.<\/li>\n<li><em>Effects<\/em> (<code>Effects.qml<\/code>) is a QML component to show the different effects, both software and hardware that Aura can apply. It uses the <em>EffectManager<\/em> (through the context) to load them and the <em>Controller<\/em> to apply them.<\/li>\n<li><em>About view<\/em> (<code>AboutView.qml<\/code>) is a rework of something done by my colleage <a href=\"http:\/\/simonpena.com\/blog\/\">Sim\u00f3n Pena<\/a> and adapted to be used in Aura (Kudos!). It also uses a small <code>AboutViewController<\/code> to open a Nokia Store URL with the application instead of the browser.<\/li>\n<li><em>ResourceManager<\/em> is a C++ class used by the <em>Controller<\/em> to request the proper permissions to record the video.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>As my colleague V\u00edctor at Igalia has said before in his post, Aura was released to the Nokia Store. Miguel, V\u00edctor and I are quite happy with the result achieved with this app, which intention was to be kind of &hellip; <a href=\"https:\/\/blogs.igalia.com\/xrcalvar\/2012\/04\/17\/aura\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":31,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,4,7,8,9,11,6],"tags":[12,13,15,16,17,18,23,25,26,27,28,29],"class_list":["post-228","post","type-post","status-publish","format-standard","hentry","category-gnome","category-igaliacom","category-planet-gnome","category-planet-gpul","category-planet-igalia","category-planeta-gnome-hispano","category-planets","tag-aura","tag-cheese","tag-gstreamer","tag-harmattan","tag-igalia","tag-maemo","tag-meego","tag-n9","tag-n950","tag-nokia","tag-ovi","tag-video"],"_links":{"self":[{"href":"https:\/\/blogs.igalia.com\/xrcalvar\/wp-json\/wp\/v2\/posts\/228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.igalia.com\/xrcalvar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.igalia.com\/xrcalvar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.igalia.com\/xrcalvar\/wp-json\/wp\/v2\/users\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.igalia.com\/xrcalvar\/wp-json\/wp\/v2\/comments?post=228"}],"version-history":[{"count":2,"href":"https:\/\/blogs.igalia.com\/xrcalvar\/wp-json\/wp\/v2\/posts\/228\/revisions"}],"predecessor-version":[{"id":262,"href":"https:\/\/blogs.igalia.com\/xrcalvar\/wp-json\/wp\/v2\/posts\/228\/revisions\/262"}],"wp:attachment":[{"href":"https:\/\/blogs.igalia.com\/xrcalvar\/wp-json\/wp\/v2\/media?parent=228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.igalia.com\/xrcalvar\/wp-json\/wp\/v2\/categories?post=228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.igalia.com\/xrcalvar\/wp-json\/wp\/v2\/tags?post=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}