July 21, 2017 – Savoir-faire Linux releases the stable version of Ring: Ring 1.0 – Liberté, Égalité, Fraternité. Ring is a free/libre and universal communication platform that preserves the users’ privacy and freedoms. It is a GNU package. It runs on multiple platforms; and, it can be used for texting, calls, and video chats more privately, more securely, and more reliably.
Ring is a fully distributed system based on OpenDHT technology and Ethereum Blockchain. It means, it does not need any central authority, an enterprise or even a server to function. Therefore, it avoids keeping centralized registries of users and storing their personal data. In addition, Ring is created based on strict ethical protocols. This means, it uses end-to-end (client-to-client) encryption. Therefore, no one will be able to decode your private conversations over the network. In other words, higher level of privacy and confidentiality is offered.
Key Functionalities and Features
– Encrypted Audio/VideoHD/InstantMessaging Communications (ICE, SIP, TLS) – Screen Sharing and Conferencing (Win32 and GNU/Linux) – Support of Ethereum Blockchain as Decentralized Public Users’ Database – Decentralized Communication Platform (OpenDHT) – Platform Support on GNU/Linux, Windows UWP (Windows 10 and Surface), macOS (10.10+) and Android (4.0+) – Distributed under GPLv3+ License – Parts of Ring can be used as a building block in any Internet of Things (IoT) project
Ring: An Impactful and Inspirational Social Innovation
Ring is based on the state-of-the-art technologies (OpenDHT) and follows strict ethical guidelines (end-to-end or client-to-client encryption protocol). Together, a mix of free software technologies, and ethical rules offers end-users: leading edge privacy and anonymity, confidentiality as well as security of conversations. In addition, its stable connectivity and innovative standardized functionalities over multitude of platforms make it a suitable choice for an everyday communication.
Are you passionate about the Web and Free Software Movement? Are you looking for an opportunity to play your part? Perhaps you’ve considered contributing to the WordPress project? This tutorial is for you! Our free software developers have contributed to the core of the application and now they’d love to introduce you to the development process of the most popular on-line publishing platform in the world. Cheer up and follow these steps to get started!
You can begin your journey by subscribing to a variety of platforms used by contributers. This helps you establish a connection with the community and remain in touch.
Subscribing to WordPress is a must. WordPress.org serves, among other things, to document procedures and publish information related to its development platform. This will be your main reference, so subscribe and log in.
Once you are connected, we invite you to consult the section of the website concerning Development and to get to know the different teams and their missions. This is also a great opportunity to subscribe to various newsletters if you wish to follow a particular stream of development (marketing, modules, themes, documentation, etc.)
People discuss their contributions via the Slack collaborative communication platform. They hold meetings, disseminate information and help users reach their contribution objectives. On Slack, you will find all the influential developers in the WordPress community, it is the ideal place to ask them questions!
Please read the subscription documentation carefully. The procedure can sometimes be confusing. If you are having trouble signing in to your WordPress.org account, visit the subscription page and the new instructions will show up. You can then sign in using this link: https://wordpress.slack.com/.
Your last step before contributing! Check out the Trac ticket manager. Every change in WordPress is documented here. The main developers use this tool to approve and integrate changes to the core. To ensure effective, accurate and coordinated development, using documentation is mandatory. Now we can get started with developing for WordPress…
Following the Best Practices Let the fun begin! Before writing code, you will need to integrate the project’s best practices and development standards. Some documents will be more useful to you than others. We suggest that you focus on these sections: Core Contributor Handbook, Best Practices, and Writing Patches. For PHP developers, you will also be interested in the PHP Coding Standards and Core API documentation.
The Environment The majority of developers use Varying Vagrant Vagrants (VVV), which runs under all operating systems. VVV is an open source Vagrant configuration focused on WordPress development. It is mostly used to develop themes, modules, and plugins as well as for contributions to WordPress core. It may be a bit complex to install optional Vagrant modules, so if you are using a Linux environment, just make sure you have the “build-essential” and “libc6-dev” libraries before you get started. Feel free to work with other tools as well. VVV is not the only choice you have. But if you choose any other tools, please do not forget to report your developments on WordPress’ core code repository, to track the testing and progress of your contributions!
Here is an example of installing a development environment using VagrantPress and Git deployed with Ubuntu.
git clone https://github.com/vagrantpress/vagrantpress.git
rm -fr tests
git clone git://develop.git.wordpress.org/ tests
SVN and Git You have probably noticed that the code repository uses SVN. If you wish to contribute to the heart, we strongly recommend using it. But there is no obligation, it is also possible to go through Git. You will find the documents you need to use for these two versioning systems in the following libraries: How to Use Subversion for developers, plugin, codex for SVN and Using Git for the second.
WordPress compresses some resources. To enable you to work, you must disable this function in the “wp-config.php”. Add “define (‘SCRIPT_DEBUG’, true);”.
Code Validation WordPress code standards are most likely different from those you are used to. A code format checker can provide great help. Use PHP_CodeSniffer with the WordPress Coding Standards. You can also read the WordPress style guidelines for detailed installation instructions.
Test-based Contribution Did you know that you do not have to be a seasoned developer to contribute to WordPress? For example, testing is a good way to participate in development while learning. Trac lists the corrections to be tested. If you are starting out, work first on non-urgent corrections.
Baby Steps… To Big Dreams!
Yes, contributing to a free software project is indeed a huge investment of your time. Reading, setting things up, making configurations, downloading, etc.
However, once you’ve passed the first steps and made your first few contributions, you will officially be a free software contributor! Now take this chance to make your first baby steps and realize your big dream of becoming a free software developer!
When it comes to deploying a common Java server on a common cloud infrastructure, a range of possibilities crosses one’s mind. This article presents some feedback on a particular, real-life, case of deploying Liferay Digital Experience (DXP, aka. Liferay 7 EE) on Microsoft’s Azure cloud platform.
Liferay DXP itself is installed on an Ubuntu Virtual Machine. This matches the recommended installation scheme for a production instance, which is deploying Liferay in the system tomcat8 installation. Liferay Hot Fixes and Service Packs can also be installed in this context, using Liferay’s patching-tool utility.
The Unexpected : Boundaries of Liferay’s Compatibility Matrix
Liferay DXP uses Elastic Search by default as its indexing and search provider. To stay within the compatibility matrix on production, Elastic Search needs to be hosted on a separate, dedicated Java Virtual Machine (JVM) (as opposed to the default development scheme which embeds ES alongside Liferay in a single JVM). Azure does not propose any Elastic Search as a service (managing your ES cluster is up to you). Furthermore, in order to secure a connection from Liferay DXP to a remote Elastic instance (e.g. Elastic cloud), you will need the extra “Liferay Elastic Shield Integration” marketplace item, purchasable as part of the Enterprise Search Add-On Subscription. This extra item would allow you to use Elastic Shield, though you cannot stay in the compatibility matrix today using Elastic Cloud, as its ES version is more recent than the one officially supported by Liferay.
Following this approach, we can install a 2.2 Elastic Search instance on a VM accessible from Liferay without having any need for Elastic Shield (on the same machine or internal network). Figure 1 below presents the summary of the global scheme explained here.
Figure 1. The Summary of the Global Scheme
Based on Figure 1 above, and the detailed explanations we can map three alternatives which can be evaluated and tested in future. First, it seems that the pre-packaged Liferay appliance allows for a single-click deployment on Azure but only for CE edition only. This is one avenue for further discovery. Second, we need to explore and evaluate the feasibility of pushing various Docker Liferay images to Azure Container Service and identify which ones do not offer this possibility. Third, is it possible to deploy Liferay as a custom Azure Web App? This is yet another issue to pursue further. For more insights on deploying Liferay Digital Experience Platform (DXP) on Microsoft’s Azure cloud platform stay tuned…
We are happy to have completed a joint project – an informative video – with Microsoft on the relevance and significance of open source technologies in the Azure cloud environment.
First Microsoft Open Source Partner in Canada
We are the first “Microsoft Open Source Partner” in Canada. This partnership has been a testimony to our ability to implement free and open source technologies in hybrid ecosystems such as Azure cloud computing platform. Since then, we have been well positioned to help our clients leverage the power of the Azure cloud for their information systems (IS) based on open source software.
Since we are the front-runner in the open source software industry in Canada, it makes sense for Microsoft to appreciate our technical approaches to fit open source technology into the bigger picture of organizations’ information systems. The real winners of partnerships of such complementary nature are Canadian customers and end-users for we collaborate together to support our clients’ cross-platform IS requirements by bringing into the table “the best of the both open source software and cloud” worlds. Put simply, while the flexibility offered by adoption of open source technologies enables clients to do ‘mix and match’ and create their own unique IS, Microsoft Azure ensures reliability, flexibility and scalability of solutions as a cloud platform. For a snapshot of how Savoir-faire Linux views the symbiosis between Open source software technologies and Azure cloud computing platform, you can watch the video – a joint effort which testifies our shared vision of OSS-based enterprise IS solutions.
The Digital Revolution is happening! The Small Business Digitization Initiative (SBDI) was officially launched on April 6th in Ottawa. A hundred youth from across Ontario are helping Small and Medium-size Businesses (SMBs) thrive. This exemplary collaboration between businesses, academia, young talent, and government is positioning Ontario as a world leader in the Digital Economy.
SBDI is designed to support small and medium-size businesses like Balance InStyle (illustrated above). Amanda O’Reilly, award-winning CEO and Top 40 under 40, moved the audience when she explained why she dedicated her life to reducing stress and saving people’s time. She is generously communicating her sense of purpose and business savviness to the young generation. Also, she believes she could leverage technology to improve customer experience. Enters Melanie.
Melanie is a highly driven and well-educated young professional. She became frustrated when she could not find a job in IT after graduating with a degree in Interactive Design from York University. She has the right credentials and skills, but too many small businesses don’t understand how to leverage her talent. Melanie grew frustrated that many businesses “don’t get it”. She has been eagerly looking for opportunities to apply her skills, including as an entrepreneur.
Melanie and Amanda are a fantastic match. Amanda has become a role-model for Melanie, on her way to become one of the top business women entrepreneurs in Ontario (watch for it!). At the same time, Melanie is applying her IT and Design expertise to improve Balance InStyle‘s customer experience.
Small Business Digitization in Ontario, Canada, and the World
Savoir-faire Linux is the main training delivery partner, and a leader in technological innovation and Open Source Software since 1999. A recent study by Black Duck Software estimates that 78% of enterprises run on Open Source Software. Savoir-faire Linux shares its expertise with customers and partners such as Microsoft, IBM, Desjardins, General Electric, the Canadian Space Agency, and many other leading companies.
SBDI strengthens Canadian businesses, helping them thrive locally, building on local talent excellence, and opening the door to share their expertise to the rest of the world.
Early Lessons Learned
For the little time we’ve been running the program, we learned there is a real need to educate small businesses. We realized that a program that we originally presented to employer as a “co-op” opportunity for students, is really an educational opportunity for businesses. We flipped the model on its head.
SBDI might be first and foremost an educational training program for SMBs, where they learn about technology from young IT professionals, and work collaboratively on digital solutions to achieve concrete business goals.
We are fortunate to work with leading business executives like Amanda O’Reilly, and many others in Ottawa, Toronto, and North Bay. They are visionaries who understand that technology can help make their business processes faster, better, and cheaper.
Our ambition is to inspire SMBs to leverage digital technology to grow their business, and to attract the young talent they need to succeed.
We also thank Microsoft, a Savoir-faire Linux and ICTC partner, for hosting the event at their Ottawa Office.
Savoir-faire Linux sent one of its experts, Julien Grossholtz, to Myanmar to teach a Linux training course at a young company specialized in industrial equipment. Learn about his testimony and his discovery of this enigmatic and picturesque country.
I traveled to Myanmar to teach a course on Embedded Linux, my specialty, to our client, Amber Star Trading. Amber Star Trading is located in the small town of Pyin Oo Lwin, in the Mandalay region, in the center of the country.
Upon my arrival, I visited the city and its surroundings. There were many beautiful bungalows and villas that the British built during their rule. It was also a place where the famous writer: George Orwell, lived during the 1920s. The botanical garden of the city was absolutely magnificent with its lake, its tangled and swirling trees, its giant bamboos, its flowers, the Orchids and many more exotic views that cherished my eyes. It was also an ideal place to observe the local population: there were families in traditional clothes, children and many monks.
After the first days of discovery, I started the training. My mission was to train seven engineers on embedded systems running Linux. We covered many topics: cross-compilation, application development, interactions with hardware, buildroot and several other related technologies. We carried out many practical exercises with a Technologic Systems’ board (the TS-7680).
The course was in English and we could communicate effectively, although it was not always simple. We used many drawings on the board to overcome the misunderstandings and understand one another despite our cultural differences. My students’ technical backgrounds were varied too. Some of them have already had good knowledge of Linux on PC while some others were specialized in hardware. So, I adapted the course, explanations and exercises to their individual needs.
Finally, I believe it was a very successful journey. My assessment of the training is very positive. The students and the company are expecting to achieve their objectives and are ready to use Linux for their embedded systems. As for me, I am very proud to have shared my knowledge with talented individuals who have high hopes for their future; and especially, in a country that is developing and gradually opening up to the world.
May 16th, 2017 – Savoir-faire Linux, a Canadian leader in Open Source technologies and Free Software, and Technologic Systems, an American embedded solutions company, are pleased to announce the completion of a one-year partnership agreement in order to provide mutual support on technological and marketing levels. This initiative reinforces and improves marketing of customer-focused solutions that combine the Linux expertise of Savoir-faire Linux and the high-tech hardware components of Technologic Systems.
Both companies have been long collaborating together to offer a whole value chain solution to their clients. The indispensable symbiosis between hardware and software solutions in the digital economy is the main driver of their co-creations and technological collaborations. Having been successful in increasing their end-users’ satisfaction and operational performance, they now want to become more strategically engaged to even further augment the industry standards.
For 33 years, Technologic Systems (Arizona, USA) has been creating world class physical computing objects in order to address a wide range of industrial needs. Technologic Systems has hundreds of commercial off the shelf products, and the ability to modify existing solutions, or design a completely custom embedded computer to meet and exceed customer requirements. A wide range of out-of-the-box Linux tools come to aide Technologic Systems’ vision of creating the whole customer solutions. Linux OS, Debian, Ubuntu Core and many more open source software platforms are strategically deployed on a wide range of embedded systems to cater to the customer’s particular application and requirements.
However, to further ensure continuous support and quality excellence in providing open source solutions, Technologic Systems has drawn upon the deep expertise of Savoir-faire Linux (Montreal, Canada). For almost two decades, Savoir-faire Linux has been able to constantly create and share open source software knowledge through consultancy, design, architecture, and maintenance of a variety of information systems in the North American and European markets. The company, as a silver member of the Linux Foundation, is well-known for developing reliable and supported open source-based software solutions and has already forged strategic partnership with major open source players such as Red Hat, Liferay, and Odoo, to name a few. Being embedded in free/libre and open source communities such as Linux Kernel, Debian, FFmpeg, Buildroot, etc., the company knows the ‘ins and outs’ of many key open source technologies; and therefore is able to guarantee software stability and performance at a level unmatched by its competitors. Robert Miller, founder of Technologic Systems says,
“Since we provide embedded hardware for multiple industries and verticals, it would be almost impossible for us to provide application level support to all of our customers. Savoir-faire Linux is a fantastic partner in this regard as they are well suited to handle a variety of projects across a multitude of platforms. Savoir-faire Linux works seamlessly with the customer to bring their vision to life and bring the most out of our hardware in the process. They have consistently been great to work with at every level of engagement. We recommend them highly easily knowing that our customers will be in good hands.”
Thus, both companies together make agreat match that ultimately benefit their end-users through having an access to a whole hardware-software solution that exceeds industry standards concerning performance, quality, reliability and continuous after sales support. This partnership is set to grow and mature into more technologically advanced collaborative R&D teams, and expanding each one’s market reach both in Canada as well as the USA.
About Technologic Systems Technologic Systems has been in business for 33 years, helping more than 8000 OEM customers and building over a hundred COTS products that have never been discontinued. Their commitment to excellent products, low prices, and exceptional customer support has allowed their business to flourish in a very competitive marketplace. They offer a wide variety of single board computers, computer-on-modules, touch panel PCs, PC/104 and other peripherals, and industrial controllers that satisfy most embedded project requirements. They also offer custom configurations and design services. They specialize in the ARM and X86 architectures, FPGA customization, and open source software support, providing advanced custom solutions using hardware-software co-design strategies.
The Product Engineering team of Savoir-faire Linux, along with the colleagues working on the Ring project, expanded into a new office. But they had a problem: at lunchtime, the sandwich delivery guy needed to pound on the door to get someone to let him in. Being hackers, the team realized that they actually could use in-house technology to help them manage the access to the office. Put simply, a welcome intercom system or a doorbell dubbed “Quick-Phone” (inspired by QTQuick), was needed. Here’s how the story unfolds…
An idea Like most companies, each of us has a phone on his/her desk that connects to a company gateway using the SIP protocol. We use an open source Asterisk server, so we could have simply installed a regular SIP phone on the corridor wall in order to establish a connection between guests standing at the door and the people inside. Yet, we believed, as product engineers we could do better than that. In fact, we should design a sexier SIP phone with a touchscreen. This is part of the solutions we develop everyday for our clients, and we should build ourselves one too.
The nitty-gritty In order to get us started, our friends at Technologic Systems generously sent us their new TS-TPC-7990 touchscreen system to be deployed in our fun and functional project. This board embeds a 1 GHz Quad Core NXP i.MX6 ARM CPU along with a powerful GPU and a set of hardware encoders/decoders to support graphical and multimedia applications.
We defined the minimum value-objective for the product to be a simple interface listing all users so as to allow a guest to directly call someone from the department. To realize this objective, we designed our user interface (UI) with Qt QML, taking advantage of the hardware acceleration to keep it responsive. QML is an awesome tool for creating complex cross platforms UI with OpenGL. With the help of GPU, QML offers a smooth operation on embedded platforms. Moreover, we used ‘Qt-cinematic experience 3D’ which runs smoothly on TS-7990 consuming only about 20% of CPU capacity.
In addition, by using a hardware decoder in the GStreamer pipeline, we have been able to decode 720p h24 stream with almost no CPU usage. Even though we decided not to add video calls for the first version, these experiments showed that this board was already capable of supporting multimedia applications. As for out-of-the-box Technologic Systems, it already provided support for Qt QML in their Yocto layer. We took this opportunity and began to code in QML language and contribute to the Yocto open source community.
To feed the system with data, first, we retrieved all user names, extensions and pictures from our ERP (i.e., Odoo open source project) and stored them in a file with a simple REST client. This was a simple but necessary step to take to make sure the embedded computer has access to its own independent data file.
Next, we integrated a famous SIP stack, pjsip, and its python wrapper to develop a simple SIP audio caller. We chose pjsip for three main reasons. First, it is a reliable multimedia communication library written in C language. For example, we have already used its low level libraries for our DHT/SIP phone: Ring, and it worked very well. Second, it is highly functional. Its high-level libraries already supports a set of audio codecs such as Speex, iLBC, GSM, G711, G722, and L16 codecs. Third, we know the ins and outs of it very well. In fact, in a matter of few hours, we developed a fine and dandy SIP–based on python pjsip sample code–so as to enable guests to call anybody in the office.
Putting it together With the inauguration party of the new office commencing in a few hours, we had to value our time dearly and use it wisely. We knew it was an opportune time to install the prototype and show off our contribution – a little gift for the ceremony so to speak. This could also show our software development capability in harmony with an industrial grade hardware component. However, mounting the board on the entrance wall was not an easy task. We needed a custom-made wooden box, power, and connectivity, while all we had readily available was an ‘Ethernet’ outlet.
This was specially troublesome since the board did not support ‘Power-Over-Ethernet’. We needed approximately up to 19W (at <28V) which was different from a typical PoE setup. Undaunted, we rigged up a passive PoE injector in order to use our own power supply and hacked an Ethernet cable to split out power for the board. As for the wooden box, we had already designed a custom frame, so we just gave it a few brush strokes and made it whole. At this time, we were all set to give it a go!
Having mounted the device, we did a little more of debugging so as to downgrade the link speed. This was necessary because our hacked Ethernet cable was no longer properly shielded. But in the end, just two hours before arrival of the inauguration guests, we experienced a proud moment: we could establish the very ‘first call’ between the corridor and our office. The following day, the sandwich man came in with a happy smile on his face: he did not have to pound on the door anymore!
All open source The whole project was built using open source tools and libraries. In fact, anyone interested can follow simple steps in order to create their own version. Visit this GitHub repository for instructions on how to build your own image for a TS-TPC-7990. Source code for the QML application is also available here.
A team effort As fun as building things can be, the most satisfying aspect is working effectively as one cohesive unit. We seek happiness in satisfying our clients. This is what we focus on everyday. For this internal project, we have used the same ‘Agile Development Methodology’ that we use for our customers.
We designated the project actors: two stakeholders, a product owner and the development team. We organized short meetings to understand needs, set the priorities, estimate the effort for performing each task, and to split them into shorts iterations. We also set regular iteration deadlines with the major one being the inauguration day. Now, our stakeholders are pretty happy, but of course, they have requested a few more enhancements. We are working on them and we will share that story too. Stay tuned …
The first cohort of the Small Business Digitization Initiative kicked off in Ottawa. Young Digitization Leaders with diverse backgrounds are honing their skills in class and in their work placement.
A terrific first cohort
Our first cohort is committed to make a difference in the Ottawa region. Some students come with previous business experience, while others have followed a more classical Bachelor of Commerce program. Another group of students is bringing to the table strong technical foundations earned at the local college or university, or from abroad. Finally, some students are young entrepreneurs in their own right (and may already be serial entrepreneurs). All of them will be joining forces, as a cross-functional team, in order to solve authentic challenges faced by Small Businesses.
Digitization Leaders with a Vision
The first classes set the stage for the course, especially as students explored the major trends affecting all industries. Every company is challenged to level up its game. Businesses compete on new and smart ways to leverage digital technology, in order to improve customer experience, productivity, and accessibility for their products and services. Our students already had a chance to reflect on innovation, and how it happens. They learned about S-curves and network externalities. They reflected on the pros and cons of diverse software licensing and adoption strategies. Disruptive innovation is on the back of their mind.
Digitization Leaders must understand the business models associated with an increasingly digital infrastructure. As soon as they can see where technology is going, while understanding how businesses can monetize it, they can start building a solid business vision.
Finally, we discussed business strategy. Our students are already familiar with the internal and external forces that affect a business. They know how to assess those. We explored a bit more in depth the importance of a business’s core capabilities. As technology allows to automate certain processes, Digitization Leaders also need to understand where to (re)focus resources to maximize revenue (economic, and other types).
One of the main challenges faced by the Senior generation is our relative uneasiness with technology. Digital natives have an advantage, because they’re “naturals”, who are not afraid of technology. During our three days of Tech Labs, everyone installed Linux and the Open Source Community version of Odoo, in a matter of a few hours. I was pleasantly surprised by the intellectual agility demonstrated by the students. They don’t get stuck in the details. Instead, they have a very pragmatic approach, focusing on “making things work”. So, we went on experimenting with a wide range of applications used in business, popular and less popular ones. We installed and configured WordPress. One student even managed to set up his own website in Amazon Web Services. Another configured his machine to serve multiple customers from a single virtual machine. We had fun!!!
Solving real business problems
After these exciting first weeks, I’m looking forward to tackling the productivity challenge for small businesses. This week, students are diving deep into the main business processes run by all businesses: accounting, customer relationship (CRM), purchasing, selling, human resources, project management… They will build on what they are learning in class (including theory and software skills), to propose novel solutions at their workplace. At the end of the day, our goal is to help Small Businesses gain in productivity, reach new markets, and compete locally and anywhere in the world.
In conclusion, I’m confident our young Digitization Leaders will help Canada strive as a nation of modern business entrepreneurs and innovators. I’m looking forward to helping them realize their professional aspirations!
“Today, the magic of film and television is half visual storytelling and half technical wizardry” (SMPTE, 2017). Major broadcasters (e.g., Radio Canada) largely depend on proprietary big ticket professional digital broadcasting equipment whose standards are written and shaped by Society for Motion Pictures and Television Engineers® (SMPTE®) which includes both the broadcasters and the manufacturers of the equipment. In short, SMPTE’s main job is to help advance “moving-imagery engineering” across the broadcasting industry. These heavy duty broadcasting machines are capable of transmitting raw data (i.e., uncompressed, unencrypted digital video signals) within television facilities. Recently, Savoir-faire Linux– a leading open source software service provider in Canada− has embarked on a journey (financially supported by Radio Canada) to test a technological possibility: can we adapt FFmpeg, using a general purpose server, in order to transmit raw data at volume/speed of 3.5 Gbps without relying on specialized hardware broadcasting equipment?
Savoir-faire Linux Takes Up the Technological Challenge
The journey started this winter which was by the way extremely cold and snowy in Montreal. A team of three from the product engineering department of Savoir-faire Linux decided to spend some time looking at FFmpeg’s internals in the hope of getting a working TR-03/SDI pipeline processing up to a several HD streams on a contemporary server while benefiting from FFmpeg’s easily available lower definition derivatives from the same video stream.
A few challenges arose from this endeavor. The first was the TR-03 format itself which wasn’t supported in the upstream version of FFmpeg. The second was the volume of data to be processed: we are talking about 3Gb/s of traffic here, which according to the FFmpeg developers might not be possible to process. Finally, the need to add transcoding to the pipeline which meant even greater CPU load.
Implementing TR-03 was not the biggest challenge, as the video format was pretty straightforward, and the team quickly got a working implementation. In this context, they used GStreamer, which was already very capable in terms of streaming as a sender for this volume of data.
Once the data began to flow in, the performance bottlenecks became even more evident. To clearly locate these bottlenecks, they made the decision to write a few benchmark scenarios using a combination of unit tests and LTTng (i.e., an open source tracing framework for Linux). These benchmark scenarios allowed the team to detect where they were dropping a bunch of packets (i.e., losing data at different layers) at both the kernel socket and NIC buffers. Since the data processing process was closely monitored, it was relatively easy to tweak the buffer sizes, while keeping the delays within our acceptable range. However, another issue arose. The team noticed that FFmpeg’s data gathering/decoding thread was hogging a single CPU core causing occasional packet loss on the occasion when they were not fast enough to dequeue data from the socket buffer. To work around this, they decoupled the data gathering work from the decoding part. Following through these steps carefully, made it possible to have the packet drop-free pipeline, an achievementcelebrated with a fine cake and a few drinks in front of a cool movie they could finallywatch. As the head of the engineering team mentioned, “I could have never imagined that Big BugBunny was so much fun”.
The Latest Update and the Road Ahead
Later, on April 5, 2017, the contributions developed and refined by the team were finally integrated into FFmpeg, meaning that, their proof of concept met with the stipulated standards of the community and became part of the platform.
For Savoir-faire Linux’ product engineering team, this was a very encouraging and promising adventure. Despite all odds, they empirically demonstrated the possibility to run SDI processing pipelines on top of a general purpose server equipment using open source software. This experiment was a success as it turned out there was great potential for broadcasters. To continue in this direction and further shape the standards of SMPTE 2110 – which are not frozen yet – being still in embryonic phase –they face another main challenge. FFmpeg does not support the synchronization as described in SMTPE 2110; so, the team is now evaluating the possibility to provide and include the support needed.