• This article will explain how to use GStreamer to capture Digital Television (DTV) streams; it will focus on terrestrial DTV and ATSC broadcasts in the Silicon Valley area to provide examples, but the principles are the same for every other DTV standard or supported location. If you want to follow the examples, you will at the very least need a Linux machine with GStreamer and v4l-utils, and a DTV capture device. For my ATSC testing setup I use a WinTV-HVR 950Q USB stick (Hauppauge), connected to a Debian desktop computer that runs the latest code for GStreamer and dvbv5-scan from their respective git repositories, both uninstalled. This setup works well for me as a developer but if you simply want to play DTV streams on your machine, the version from your distribution’s binary packages should suffice. A Few Notes on Receiver Setup You’ll need to have your receiver setup properly to capture multi-media content from a radio […]

    Read More
  • While there are some developers who are familiar with using Ecore_Evas to create a canvas for applications, we often find that new EFL users face some confusion when first trying to create an application. This article aims to provide a simple example of how to create your first EFL Wayland application. For those not familiar with the Ecore_Evas library, it is a set of functions that make it easy to tie together Ecore’s main loop and input handling to Evas; as such, it’s a natural base for EFL applications. While this combination makes it easy to create the basic aspects all applications need, for normal applications (those that use buttons, checkboxes and layouts) one should consider using Elementary. Ecore_Evas is extremely well suited for applications that are not based on widgets. It has a main loop that delivers events, does basic window handling, and leaves all of the drawing up […]

    Read More
  • December 29, 2016 - Arun Raghavan

    Playback Synchronization & Video Walls with GStreamer

    Hello again, and I hope you’re having a pleasant end of the year (if you are, you might want to consider avoiding the news until next year). In a previous post, I wrote about synchronized playback with GStreamer, and work on this has continued apace. Since I last wrote about it, a bunch of work has been completed: Added support for sending a playlist to clients (instead of a single URI), Added the ability to start/stop playback, Cleaned up the API considerably to improve the potential for it to be included upstream, Turned the control protocol implementation into an interface to remove the necessity to use the built-in TCP server (different use-cases might want different transports), Improved overall robustness of code and documentation, Introduced an API for clients to send the server information about themselves, and finally Added an API for the server to send video transformations for each specific client to apply before rendering. […]

    Read More
  • If you’re reading this blog, you’re probably among the growing number of software professionals who understand how valuable open source development is to the production of modern technology. Many of us have seen how open source can reduce costs, increase development speed, increase overall product quality and more, but it can often be challenging to quantify the value of this using understandable metrics. Fortunately for us, open source development happens in public so a lot of information can be extracted from public resources such as git repository logs, email mailing lists, code review and bug tracking platforms, and more. One relatively new and useful tool to aide in this is GrimoireLab from Bitergia. We’ve spent the last few months exploring the capabilities of this tool to find out what kind of metrics we can use to track the success of the efforts of the Samsung Open Source Group. Doing so […]

    Read More
  • December 15, 2016 - Javier Martinez Canillas

    Samsung OSG Contributions to Linux Kernel 4.9

    Linux 4.9 was released on December 11, making this release the biggest to date in number of changes. In this development cycle, the Samsung Open Source Group (OSG) contributed 394 patches that modified 15,856 lines of code. Although 4 engineers contributed to different Kernel subsystems, most of the changes comes again from Mauro Carvalho Chehab’s work to improve the Linux kernel documentation. The following is a list of the OSG engineers that contributed to this release and the number of changesets and lines of code, as reported by Jonathan Corbet and Greg Kroah-Hartman’s gitdm tool. OSG developers by changesets Mauro Carvalho Chehab 238 60.4% Javier Martinez Canillas 108 27.4% Shuah Khan 24 6.1% Luis de Bethencourt 24 6.1% OSG developers by changed lines Mauro Carvalho Chehab 14,747 93.0% Javier Martinez Canillas 518 3.3% Shuah Khan 314 2.0% Luis de Bethencourt 277 1.7% OSG Contributions to This Release On this release, […]

    Read More
  • December 12, 2016 - Cedric Bail

    New Improvements to EFL Animation Management

    EFL is undergoing a huge API refactor; the goal of this change is to simplify API usage while simultaneously making it more powerful. One major component that required improvement was animation management. Legacy In the past, Ecore_Animator was the only object in charge of providing information about when to animate something; this had a few limitations and problems. The first problem is handling the lifecycle of the object: it must be manually destroyed once the animation is completed or when the object that uses it is destroyed. There was no way to link the object lifecycle with another object in any way or form. The animator object was built with the idea that there is one, and only one, global frame rate for the entire application. This is becoming less true today as moving to Wayland provides the ability to get the animation tick from the compositor on a per-window […]

    Read More
  • December 1, 2016 - Tom Hacohen

    Improving Debug Code Performance in EFL

    I work on EFL, a cross-platform graphical toolkit written in C. I recently decided to improve one aspect of the experience for developers using the API (otherwise known as users) by making EFL provide more information and stricter sanity checks when developing and debugging applications. A key requirement was ease of use. With these requirements, the solution was obvious, unfortunately obvious solutions don’t always work as well as you expect. The Obvious Solution: an Environment Variable Using an environment variable sounds like a good idea, but it comes with one major, unacceptable flaw: a significant performance impact. Unfortunately, one of the places we wanted to collect debug information was Eo, a hot-path in EFL. Believe it or not, adding a simple check to see if debug-mode is enabled was enough to degrade performance. To illustrate, consider the following code: Note: thanks to Krister Walfridsson for pointing out a mistake in […]

    Read More
  • The Linux kernel contains a set of developer unit and regression tests (Kselftests) under tools/testing/selftests; these tests exercise individual code paths in the kernel. In this blog post, I’ll explain how to build and run these tests, run Kselftest on a system it’s built on, and how to install and run tests on a target test system. Even though kselftest’s main purpose is for developer regression test, testers and users can also use it to ensure there are no regressions in a new kernel. Kselftest is run everyday on several Linux kernel trees on the 0-Day and kernelci.org Linux kernel integration test rings. How to Build Kselftest The tests are intended to be run after building, installing, and booting a kernel.

    Boot the new kernel, then execute the following

    Please note, some tests require root privileges. You can run a subset of selftests using “TARGETS” make command […]

    Read More
  • A curious mind recently asked me to share materials about the OCF SmartHome demo, or perhaps I should call it the “Minimalist Smart Switch” instead. The demo was displayed at the Embedded Linux Conference in Berlin, and featured IoTivity running on an ARTIK10 SoC that connected to a Tizen Gear S2 Smartwatch; both run Tizen OS. You will find more technical details in the following slide deck. IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux from Samsung Open Source Group Install Tizen and IoTivity If you want to run it this demo, you can download the system image and uncompress the archive directly to the SD card using QEMU tools.

    Once this is completed, insert the SD card into the ARTIK10 and turn it on; it will boot Tizen and launch the IoTivity server. For more information about this, check out the previous blog posts about booting tizen on ARTIK and […]

    Read More
  • November 22, 2016 - Ben Lloyd Pearson

    Check Out the Free Open Source Compliance Handbook

    Open source compliance is often overlooked, but is a critical component of a successful open source software strategy. If your company is going to use or contribute to open source software, failure to comply with the software licenses can lead to costly cleanup efforts, or even lawsuits if license violations are found. To mitigate these risks, it’s important to establish an internal organizational program that manages compliance with open source licenses. For many companies, open source compliance is often the first major step into open source engineering, so it’s vital to establish proper organizations and procedures that build a foundation for continual success. That’s why Ibrahim Haddad joined forces with the Linux Foundation to create Open Source Compliance in the Enterprise, and released it as a free handbook to download. This book covers the essentials of establishing a successful open source compliance strategy in an enterprise setting, including the structure […]

    Read More
1 2 3 20