{"id":150,"date":"2014-01-17T12:58:28","date_gmt":"2014-01-17T11:58:28","guid":{"rendered":"https:\/\/coaxion.net\/blog\/?p=150"},"modified":"2014-05-17T00:27:20","modified_gmt":"2014-05-16T22:27:20","slug":"efl-and-enlightenment-gstreamer-1-x-support","status":"publish","type":"post","link":"https:\/\/coaxion.net\/blog\/2014\/01\/efl-and-enlightenment-gstreamer-1-x-support\/","title":{"rendered":"EFL and Enlightenment GStreamer 1.x support"},"content":{"rendered":"<p>Over the past few weeks I did some work on porting <a href=\"http:\/\/docs.enlightenment.org\/stable\/emotion\/emotion_main.html\" title=\"Emotion\" target=\"_blank\">Emotion<\/a> to <a href=\" http:\/\/gstreamer.freedesktop.org\" title=\"GStreamer\" target=\"_blank\">GStreamer<\/a> 1.x. Emotion is the media library used by <a href=\"http:\/\/www.enlightenment.org\/\" title=\"Enlightenment\" target=\"_blank\">Enlightenment<\/a> and part of the Enlightenment Foundation Libraries (EFL). It provides a media playback library abstraction (there are also <a href=\"http:\/\/xine-project.org\" title=\"Xine\" target=\"_blank\">Xine<\/a> and <a href=\"https:\/\/www.videolan.org\/vlc\/\" title=\"VLC\" target=\"_blank\">VLC<\/a> backends). <\/p>\n<p>Previously there was a GStreamer 0.10 backend (which was the default one for Emotion), but GStreamer 0.10 is no longer maintained and supported by the community. At <a href=\"http:\/\/www.centricular.com\" title=\"Centricular\" target=\"_blank\">Centricular<\/a> we want to make sure that GStreamer and other Free Software shine, so I started porting the backend to GStreamer 1.0.<\/p>\n<p>I started doing a straightforward port of the old GStreamer 0.10 backend. That was a few hours of work, but the old 0.10 backend was rather bitrotten and was lacking a lot of features compared to the other backends. So I spent some more time on cleaning it up, fixing a lot of bugs on the way and making it (almost) feature-complete. Some of the new features I added were selection and switching of audio\/video\/text streams, support for the navigation interface for DVDs, buffering for network streams, improved support for live streams and proper support for non-1:1 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Pixel_aspect_ratio\" title=\"Pixel aspect ratio\" target=\"_blank\">pixel-aspect-ratios<\/a>. I&#8217;ll work on adding some further features and improvements (like zerocopy rendering) to it over the next weeks every now and then, but overall I would say that this is ready for general use now and definitely an improvement over the old code.<\/p>\n<p>The code can be found <a href=\"http:\/\/git.enlightenment.org\/core\/efl.git\/tree\/src\/modules\/emotion\/gstreamer1\" title=\"Emotion GStreamer1 Module\" target=\"_blank\">here<\/a> and will also be in the 1.9 release, which will be released soonish. It&#8217;s also the default backend for Emotion now, and should give proper out-of-the-box multimedia experience with Enlightenment. The GStreamer 0.10 backend is still available but has to be enabled explicitly, if anybody needs it for whatever reason.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over the past few weeks I did some work on porting Emotion to GStreamer 1.x. Emotion is the media library used by Enlightenment and part of the Enlightenment Foundation Libraries (EFL). It provides a media playback library abstraction (there are also Xine and VLC backends). Previously there was a GStreamer 0.10 backend (which was the &hellip; <a href=\"https:\/\/coaxion.net\/blog\/2014\/01\/efl-and-enlightenment-gstreamer-1-x-support\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">EFL and Enlightenment GStreamer 1.x support<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,5],"tags":[25,24,10],"class_list":["post-150","post","type-post","status-publish","format-standard","hentry","category-free-software","category-gstreamer","tag-efl","tag-enlightenment","tag-gstreamer-2"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/coaxion.net\/blog\/wp-json\/wp\/v2\/posts\/150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coaxion.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coaxion.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coaxion.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coaxion.net\/blog\/wp-json\/wp\/v2\/comments?post=150"}],"version-history":[{"count":6,"href":"https:\/\/coaxion.net\/blog\/wp-json\/wp\/v2\/posts\/150\/revisions"}],"predecessor-version":[{"id":156,"href":"https:\/\/coaxion.net\/blog\/wp-json\/wp\/v2\/posts\/150\/revisions\/156"}],"wp:attachment":[{"href":"https:\/\/coaxion.net\/blog\/wp-json\/wp\/v2\/media?parent=150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coaxion.net\/blog\/wp-json\/wp\/v2\/categories?post=150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coaxion.net\/blog\/wp-json\/wp\/v2\/tags?post=150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}