Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink

Similar documents
Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink

Track Two Building an Internet Radio with the TI Sitara AM3517 using LinuxLink

Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink

Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink

Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink

Track Two Building an Internet Radio with the TI Sitara AM3517 using LinuxLink

ID 730L: Getting Started with Multimedia Programming on Linux on SH7724

using the Texas Instruments Zoom

Hands-on with the Sitara Linux SDK

Developing i.mx Multimedia Applications Processors with Windows Embedded CE 6.0 WinCE 6.0 on the i.mx25 and i.mx35 PDK s

Leveraging Linux to Create an Auto Infotainment Platform

Hands-On Workshop: Freescale Audio Solution Framework, Part 2

Embedded Linux system development training 5-day session

ARM Powered SoCs OpenEmbedded: a framework for toolcha. generation and rootfs management

Timesys University. Complete software solutions for Vybrid

The GStreamer Multimedia Architecture. What is GStreamer. What is GStreamer. Why create GStreamer

A Linux multimedia platform for SH-Mobile processors

iw-rainbow-g3 / G3V FAQs:

Jade IdeaBoxx. Product Manual

i.mx Product Family and Freescale codec offering to meet Automotive and Industrial Requirements

Embedded Streaming Media with GStreamer and BeagleBoard. Presented by Todd Fischer todd.fischer (at) ridgerun.com

Android In Industrial Applications. A Field Report

TQ2440 Development Platform Manual

Connecting the uvcvideo driver of the PHYTEC USB-CAM-104H

Digi Embedded Yocto 1.6. First Steps Guide

Our Technology Expertise for Software Engineering Services. AceThought Services Your Partner in Innovation

Quick Start Guide for i.mx28 EVK. i.mx28 EVK Multimedia and connectivity

Introduction to creating 3D UI with BeagleBoard. ESC-341 Presented by Diego Dompe

Kick Start your Embedded Development with Qt

GenIVI for Auto Infotainment Solutions on i.mx

QLIK VIRTUAL EVENT. qlik.com

Die Brummbeere Documentation

What's new in GStreamer

Lesson 7 Programming Embedded Galileo, Raspberry Pi, BeagleBone and mbed Platforms

MYD-IMX28X Development Board

SBC-S32V234 QUICK START GUIDE (QSG)

Qt for Device Creation

D1 - Embedded Linux. Building and installing an embedded and real-time Linux platform. Objectives. Course environment.

Display Modules (DL-DM) Application Developer's Guide

Jade IdeaBoxx. The quickstart kit to jumpstart development. Fujitsu Semiconductor America Inc.

Lab 1. OMAP5912 Starter Kit (OSK5912)

The Yocto Project. Chris Young S/W Specialist SILICA Europe. Harmonising Software Development across multiple Embedded ARM SOC targets

Embedded. Connected. Aware. SW Delivery Process. February Inforce Computing. Do NOT Copy/Distribute without prior written permission

Efficient Video Processing on Embedded GPU

Moblin v2 SDK. Open Source Technology Center Presented by Bob Spencer

i.mx5x Modular Design Platform: Product Prototyping Accelerator

SBC-S32V234 QUICK START GUIDE (QSG)

Yocto Project components

EMBEDDED LINUX ON ARM9 Weekend Workshop

CS368-LI Digital Media Software Development Kit

HiSilicon STB Push-to-Talk Development Kit for Amazon AVS

SBC8140 Single Board Computer

Freescale i.mx6 Architecture

ECE 471 Embedded Systems Lecture 12

Introduction to the TenByTen6410

Getting Started with FreeRTOS BSP for i.mx 7Dual

M2-SM6-xx - i.mx 6 based SMARC Modules

Quick Start Guide EX-9686U/A-L(A9) Copyright TOPSCCC Technology CO., LTD. All rights reserved

i.mx31 PDK 1.3 to PDK 1.4 Revision Changes Linux

RZ/G Verified Linux Package V2.1.0-RT

Hands-on Workshop: Optimizing the MPC5121e Multicore Processor for Multimeida Applications

DevKit8000 Evaluation Kit

Multimedia SoC System Solutions

Android OS and Power Architecture

D1S - Embedded Linux with Ac6 System Workbench

Media touch 2.0 Multimedia in your hands. A Revolutionary Wireless Multimedia Tablet

Booting Linux Fast & Fancy. Embedded Linux Conference Europe Cambridge, Robert Schwebel

Leverage Vybrid's asymmetrical multicore architecture for real-time applications by Stefan Agner

Qtopia Core Application Note

DevKit7000 Evaluation Kit

Zoom OMAP-L138 experimenter Kit Lab Manual

Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications

Raspberry Pi Introduction

ARM+DSP - a winning combination on Qseven

Linux Essentials. Smith, Roderick W. Table of Contents ISBN-13: Introduction xvii. Chapter 1 Selecting an Operating System 1

NSD2100 Smart Display

What is new? Page 1. Peter Korsgaard, Maintainer ELCE 2013

SAMSUNG ELECTRONICS RESERVES THE RIGHT TO CHANGE PRODUCTS, INFORMATION AND SPECIFICATIONS WITHOUT NOTICE. Products and specifications discussed

GStreamer in the living room and in outer space

CS365-TI Digital Media Software Development Kit

The Mobile Internet: The Potential of Handhelds to Bring Internet to the Masses. April 2008

Windows Embedded CE 6.0. i.mx27 ADS Software Development Kit. Binary Package Release Notes

CS368-TI Digital Media Software Development Kit

Linux. For BCT RE2G2. User Guide. Document Reference: BCTRE2G2 Linux User Guide. Document Issue: Associated SDK release: 1.

Developing Environment for Intel Mainstone Board

Oxalis Getting Started

T Multimedia Programming. Different Operating Systems and their Multimedia Support

ROUND 2 Prototype development description

User s Manual for the Boundary Devices Nitrogen R board

Completing the Multimedia Architecture

OpenEZX and OpenMoko, truly free software for mobile phones

OM-Cube Project. Contents. V. Hiribarren - N. Marchand - N. Talfer OM-Cube Project 1. V. Hiribarren - N. Marchand - N. Talfer OM-Cube Project 2

Release Notes for Linux Add-In 1.3.0

Group 15 Arian Caraballo, CpE Daniela Zicavo, CpE Felipe Bernal, CpE Isabel Virag, CpE

GET STARTED FAST WITH THIS COMPREHENSIVE ENABLEMENT OFFERING FOR LPC800 MCUS

D1Y - Embedded Linux with Yocto

EMB-CPU04. User s Manual

Case Study: Building a High Quality Video Pipeline Using GStreamer and V4Linux on an i.mx6

THE LEADER IN VISUAL COMPUTING

AD105 Introduction to Application Development for the IBM Workplace Managed Client

Transcription:

Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink Session 3 How to leverage hardware accelerated video features to play back 720p/1080p video Audio streaming is available for this event. Turn on your speakers to listen.

2 Tools You Can Use Q&A and/or Chat Click on Q&A panel (?) or Chat panel icon in the bottom, right corner Type in your question in the space provided Click on Submit

3 Tools You Can Use Polling The poll will appear on your screen Select your answer for each question Click on Submit

4 Session Information You can download the slides for today s session at http:///embedded-linux/training/timesysuniversity/freescale_imx53 You can view a recording of today s session at http:///embedded-linux/training/timesysuniversity/freescale_imx53 Today s speaker: Maciej Halasz Director, Product Management Timesys

5 Building a Rich UI Based Dual Display Video Player Device Session 1 recording available How to capture your initial Linux based product requirements and quickly build a custom BSP/SDK to jumpstart your development Session 2 recording available How to build a media player control panel using Qt Embedded for Linux Session 3 Today How to leverage hardware accelerated video features to play back 720p/1080p video Session 4 September 7 @ 1pm EDT How to optimize, test and integrate the solution for fast boot and quick deployment

6 Today s Agenda Recap of what we have done so far Freescale i.mx53 VPU overview GStreamer framework primer Add support for dual display Modify Video Player application Add code to play back video using gstreamer API Add scripts to autolaunch the application at boot time Configure system for dual display on single LCD Discuss other options Deploy on the target board

7 Session 1 Recap

8 What We Have Accomplished So Far Learned about the Freescale i.mx53 LinuxLink and the i.mx53qsb board needed for all exercises Reflected product requirements in Linux BSP and SDK Built a custom BSP with LinuxLink Web Edition Experiment on day one with a pre-built starting point Setup a development environment (more today) Setup a Qt based IDE development environment Developed a UI with Qt widgets Tested locally Deployed the system on the target via NFS for future development Transferred images Configured bootloader

9 Project Requirements (Freescale i.mx53 QSB) Graphics Touchscreen Applications Screen calibration Control Panel Ethernet Secure Connection Transfer (FTP/SCP) Console (Telnet/SSH) VGA/Component Video Out 720p/1080p USB Storage (USB stick) Extensions SD/MMC Card Filesystem Serial port communication MicroSD Boot from Additional storage Audio (optional) Alsa Mixer Sound playback

10 Dual Display Video Player (Blueprint) Media Playback Application User Interface, Buttons, etc CPU usage Audio Video Plaback Network access Middleware LCD calibration Qt Embedded setup scripts alsa-utils GStreamer Codecs openssh shell Framebuffer 1 alsa Framebuffer 2 networking Linux kernel Driver Driver Driver Driver Driver Driver Driver U-Boot bootloader Driver Driver i.mx53 QSB LCD Touch Screen Serial GPIO NAND SDIO Audio USB VPU Ethernet

11 Last Session s Homework Share Your Experience 1. Design your own GUI with Qt Embedded 2. Adapt/design your own UI with desired set of widgets 3. Create multiple windows. Connect buttons to handling routines via signals How was your design with Qt experience? Did you try working with custom, third-party widgets? Any questions on a signal based communication between widgets?

12 Giveaway If you attend at least 3 out of 4 sessions in this Timesys University track, we will automatically enter you into a drawing for a chance to win a Freescale i.mx53 Quick Start Development Board

13 GStreamer Primer

14 GStreamer Ingredients Video framework for stringing together elements Video sources, syncs, multiplexing, codecs, etc. Divided into packages Baseline Plugins Third-party Third-party plugins can take advantage of hardware specific acceleration

15 GStreamer: Linux Side Delivered as a number of packages GStreamer OSS Plugins Base: Set of well-maintained plugins (coders/decoders for various formats, includes APIs for additional extensions) Good: All tested and available codecs/formats (LGPL) Bad: Not fully tested/verified codecs (GPLv2) Ugly: Good quality, tested codecs (Challenge = ability to distribute / patent license) FFMpeg Freescale Plugins Auto-discovery of best plugins for the job Code/Decode Audio/Video Plugins are version sensitive Can provide decoding features on non-accelerated hardware

16 i.mx53 VPU

17 i.mx53 Hardware Block Diagram

18 i.mx53 Hardware Block Diagram

19 VPU + GStreamer = low CPU usage Applications gst-launch Custom Qt Phonon Totem Middleware GStreamer core GStreamer plugins Freescale plugins Hardware accl VPU enc VPU dec V4L sinc V4L src Open Source plugins Software AAC dec WMV dec imxlib Linux kernel VPU IPU V4L out V4L in i.mx53 QSB VPU IPU GPU

20 Multimedia codecs Package dependency Includes Freescale plugins for codecs, sinks etc. used in application to build pipes Glue between codecs that talk to drivers Core functionality modified to accelerate codecs memory copying, etc. Wrappers for various hardware and software components, this is where software leverages VPU Headers with appropriate definitions needed by VPU

21 Software Modifications

22 Requirements Helper Feature What do I need Where to select Linux Kernel Latest, 2.6.35 kernel Linux kernel Cross Toolchain GCC, Binutils, GDB Toolchains C Library glibc Toolchains Touch Screen tslib Packages Qt qt-embedded-linux Packages Dual Display Demo timesys-theatre-1080p Packages GStreamer Media Codecs gstreamer gst-plugins (base, good) gst-fsl-plugin fsl-mm-codelib firmware-imx Packages Packages Sound alsa-utils Packages System Initialization busybox Packages

23 Linux Kernel Adjustments Add functionality to support dual display Use the patch command Leverage Desktop Factory to achieve repeatable build Adjust kernel command line: console=ttymxc0,115200 video=mxcdi0fb:rgb24,seiko-wvga root=b302 rw Example 2 VGA Output of SXGA resolution (primary display), and SEIKO WVGA LCD Panel video=mxcdi0fb:rgb24,seiko-wvga video=mxcdi1fb:rgb24,vga-sxga vga di1_primary

24 Video Player Control Panel GUI Modifications

25 What We Have Accomplished

26 What We Have Accomplished Learned about hardware accelerated i.mx53 components Discussed the GStreamer framework Modified code Patched Linux kernel added support for dual display Added code to our application Cross-compiled and deployed on i.mx53qsb target

27 Next Session September 7 @ 1pm EDT How to optimize, test and integrate the solution for quick deployment How to achieve quick boot time U-Boot modifications Linux kernel optimizations Filesystem design changes SD Card deployment More fun to come

28 Homework 1. Work with the GStreamer framework 2. Setup playback pipelines from within your application 3. Take a look at how Desktop Factory helps with Linux kernel modifications Let us know if you run into any challenges. We have setup a dedicated communication channel to share questions, comments and replies. Please subscribe at https://lists.timesys.com/listinfo/timesys-university While your questions will be answered by Timesys expert engineers, we encourage you to answer questions asked by others. Sharing experiences is always the best way to learn.

29 Glossary LinuxLink (Web Edition) Web-based version of LinuxLink LinuxLink (Desktop Edition) Local version with full customization and third-party tools integration Workorder Stores definition of your software filenames, versions Bootloader Runs first, initializes necessary hardware, loads Linux Linux kernel Operating system that manages hardware access and other features for higher level software Device Driver Code that s part of a Linux kernel, defines how software accesses specific hardware File System All files (libraries/utilities/scripts/etc.) combined on a single storage, e.g. NAND flash Middleware Complete frameworks including APIs, utilities that provide specific functionality, e.g. Qt API (library) Used by applications, provide functionality, abstract hardware access Toolchain (cross) The most important part of the development environment. Used to compile source code into binaries.

30 About Timesys Carnegie Mellon University spin-off in 1996 First real-time embedded Linux distribution First to register carrier grade Linux (CGL) First to market with an open source, commercialgrade embedded Linux development framework (LinuxLink) First to develop and deliver an award-winning, automated, intelligent, embedded Linux build system (LinuxLink 3.0) Real-time Linux Leadership First embedded Eclipse-based Tools Customized Linux Versions First to register carrier-grade Linux distribution Integrate Real-time with OS Community First to market open source, commercial-grade Linux product LinuxLink 1.0 LinuxLink 2.0 First to deliver an automated, intelligent build system LinuxLink 3.0 LinuxLink Enea Linux Factory Platform Builder adds 100 th Partnership supported board 2001 Manual Customized Builds 2002 2003 2004 2005 2007 2008 2009 2010 Automated Build/Test Hosted Build System Semis adapt Build system 100% Open Source Intelligent Build system 2011 Support for Multicore

31 More Info You can download the slides for today s session at http:///embedded-linux/training/timesysuniversity/freescale_imx53 You can view a recording of today s session at http:///embedded-linux/training/timesysuniversity/freescale_imx53 Stay Online for Q&A!