SlideShare a Scribd company logo
1 of 5
Download to read offline
International Journal of Advanced Engineering, Management and Science (IJAEMS)
Infogain Publication (Infogainpublication.com
www.ijaems.com
Optimizing the Audio Decoding
Hardware Capability
Prasad Renukdas
School of Computer Science and Engineering,
Abstract— Performance in android based devices is a major
concern. A number of frame-drops can be seen while
a 4k video on a less powerful device. A multi
set-top box should be capable of playing the 4k videos
alongside of its basic functionalities. Sometimes the hardware
allotted for the set-top box may not be up to the mark. Hence,
it is difficult to handle 4k videos at a smoother rate. To tackle
the above problem we have come up with the solution which
tunnels the compressed/uncompressed audio track directly to
the Smart-TV based upon its capability. The solution is built
for ST’s set top box. In this paper we discuss basics of set top
box, android audio architecture and the solution for frame
drop backed by the experimental results and by using
standard testing methods.
Keywords— Smart-TV, tunneling, 4k videos, frame drops
I. INTRODUCTION
Android set-top box is an ongoing R&D pr
the electronic tech giants like STMicroelectronics
box runs the latest android lollipop. As the cable television and
satellite television industries enjoy years of sustained
cable/satellite operators are now investing in the “digitization”
of their systems. This is resulting in the transition of the TV
transmission infrastructure from an analog environment to a
digital one. To use current analog television sets to rece
these digital broadcasts Set Top Box (STB) is necessary.
Figure 1 show the flow of signal from satellite antenna to TV.
Fig.1: diagram showing flow of signal from satellite antenna
to TV
International Journal of Advanced Engineering, Management and Science (IJAEMS)
Infogainpublication.com)
he Audio Decoding Based Upon
Hardware Capability: An Android NUPlayer
Implementation
Prasad Renukdas, Prof. Swarnalatha P
School of Computer Science and Engineering, VIT, Vellore, Tamil Nadu
Performance in android based devices is a major
drops can be seen while playing
less powerful device. A multi-purpose android
top box should be capable of playing the 4k videos
alongside of its basic functionalities. Sometimes the hardware
top box may not be up to the mark. Hence,
difficult to handle 4k videos at a smoother rate. To tackle
the above problem we have come up with the solution which
tunnels the compressed/uncompressed audio track directly to
TV based upon its capability. The solution is built
this paper we discuss basics of set top
box, android audio architecture and the solution for frame
by the experimental results and by using
videos, frame drops.
INTRODUCTION
top box is an ongoing R&D project at in most of
the electronic tech giants like STMicroelectronics. This set-top
box runs the latest android lollipop. As the cable television and
satellite television industries enjoy years of sustained growth,
cable/satellite operators are now investing in the “digitization”
of their systems. This is resulting in the transition of the TV
transmission infrastructure from an analog environment to a
digital one. To use current analog television sets to receive
these digital broadcasts Set Top Box (STB) is necessary.
show the flow of signal from satellite antenna to TV.
diagram showing flow of signal from satellite antenna
Set-Top Box or STB has become an integral part of TV
viewing in many parts of the world. We commonly see this
sleek looking device sitting on side of TVs. Though this
device looks slim and simple but it is one of the most complex
embedded systems today. ST
day by day. Few of the common features in current generation
STBs are time shift mode viewing, recording, Internet based
viewing, video on demand, Full High definition video output
etc.
In this paper we will be discussi
architecture which is the preliminary requirement for
understanding how the audio calls are handled. We will also
discuss analysis and design of
will see snippets of implementation and test result
II. OVERVIEW OF THE
In this section we will see the general architecture of STB. We
will also see the android audio architecture which will give us
a brief understanding regarding android audio methods
invocations.
Fig. 2:STB Architectur
Figure 2 shows the complete set up used for the
implementation and testing of the module. We used ST’s
Cannes 2.5 board for development and testing. An STMC box
[Vol-2, Issue-5, May- 2016]
ISSN: 2454-1311
Page | 444
Based Upon
ndroid NUPlayer
Vellore, Tamil Nadu, India
Top Box or STB has become an integral part of TV
viewing in many parts of the world. We commonly see this
sleek looking device sitting on side of TVs. Though this
device looks slim and simple but it is one of the most complex
embedded systems today. STBs are increasing their feature set
day by day. Few of the common features in current generation
STBs are time shift mode viewing, recording, Internet based
viewing, video on demand, Full High definition video output
we will be discussing the basic android audio
architecture which is the preliminary requirement for
understanding how the audio calls are handled. We will also
discuss analysis and design of our system. In the final step we
will see snippets of implementation and test results.
THE PROPOSED SYSTEM
In this section we will see the general architecture of STB. We
will also see the android audio architecture which will give us
a brief understanding regarding android audio methods
STB Architecture
Figure 2 shows the complete set up used for the
implementation and testing of the module. We used ST’s
Cannes 2.5 board for development and testing. An STMC box
International Journal of Advanced Engineering, Management and Science (IJAEMS)
Infogain Publication (Infogainpublication.com
www.ijaems.com
was used for sending the images to the Board via host
computer. Stream server is an optional entity which was used
for testing live streams.
SoC
The System on chip contain two ARM processors ST SDK2
like Orly B2020, one SH-4 (used for floating point
calculations) on ST SDK1 like lille, leage c, cardiff, one
ST231 and one MALI (used as a graphics engine) processor.
Stream Server
The stream server contains all the streams to be viewed on the
receiver in digital format, it is connected to a MOD card which
converts the signal to Radio Frequency and sends it the
TUNER card on the board.
III. SDK2 SOFTWARE OVERVIEW
ST has a comprehensive media framework based on hardware
codec blocks available in Cannes 2 (STiH410) platform. The
framework is known as Streaming Engine (henceforth called
SE) which has a complete player implementa
AV sync) and is implemented as a kernel module. However
Android mandates the use of OMX IL APIs for all codec
related functionality and hence ST provides an OMX IL layer
based on the underlying SE kernel module. The OMX IL is
implemented in both user space and kernel space. The kernel
space module is called OMXSE (OMX interface to the
underlying Streaming Engine). Apart from this the V4L2 and
DVB APIs are also used. The user space OMX IL consists of a
set of C++ classes for audio and video omx components and
ports which handle the OMX state machine. Internally they
make use of the V4L2 and OMXSE kernel drivers to access
the underlying hardware codecs.
The following figure shows implementation of the OMX IL
Fig.3:SDK2 architecture
STAGEFRIGHT OMX
LibStageFright
OMXSE LINUX
DVB
STREAMING ENGINE
OMX Core OMX VIDEO
International Journal of Advanced Engineering, Management and Science (IJAEMS)
Infogainpublication.com)
was used for sending the images to the Board via host
Stream server is an optional entity which was used
The System on chip contain two ARM processors ST SDK2
4 (used for floating point
calculations) on ST SDK1 like lille, leage c, cardiff, one
one MALI (used as a graphics engine) processor.
The stream server contains all the streams to be viewed on the
receiver in digital format, it is connected to a MOD card which
converts the signal to Radio Frequency and sends it the
OVERVIEW
ST has a comprehensive media framework based on hardware
codec blocks available in Cannes 2 (STiH410) platform. The
framework is known as Streaming Engine (henceforth called
SE) which has a complete player implementation (including
AV sync) and is implemented as a kernel module. However
Android mandates the use of OMX IL APIs for all codec
related functionality and hence ST provides an OMX IL layer
based on the underlying SE kernel module. The OMX IL is
both user space and kernel space. The kernel
space module is called OMXSE (OMX interface to the
underlying Streaming Engine). Apart from this the V4L2 and
DVB APIs are also used. The user space OMX IL consists of a
mx components and
ports which handle the OMX state machine. Internally they
make use of the V4L2 and OMXSE kernel drivers to access
implementation of the OMX IL.
SDK2 architecture
IV. NUPLAYER
NuPlayerDriver provides the implementation of
MediaPlayerInterface and is used for all kinds
playback. However NuPlayerDriver is more of a wrapper and
the actual implementation is through the NuPlayer class.
NuPlayer control flow is fully asynchronous and based on the
ALooper/AHandler classes described in the following
diagram:
Fig.6:NUPlayer overview
Foundation Classes- Messages
Class names start with letter “A” for “asynchronous”.
Following are the main classes
• AMessage–Represents data which need
asynchronously. Contains
representing the kind of message. Contains
data items. Each data item has a unique name and by
using a C union support is provided for all kinds of data
types including object pointers. Has
Binder parcel into an AMessage and vice
An event is a timed “AMessage”.
• AHandler–Represents an entity which can process an
AMessage. Processing is done in onMessageReceived()
function.
• ALooper–Represents a thread which runs an infinite loop.
Maintains a queue of events. Anyone can post a
an “ALooper” which is put at the end of event queue. The
thread loop removes events from the queue (based on
timing of the AMessage) and delivers them to an
appropriate handler.
• ALooperRoster–Singleton object which keeps a list of
ALoopers and associated AHandlers. The interaction
V4L2
STREAMING ENGINE
OMX AUDIO
[Vol-2, Issue-5, May- 2016]
ISSN: 2454-1311
Page | 445
NUPLAYER OVERVIEW
NuPlayerDriver provides the implementation of
MediaPlayerInterface and is used for all kinds of streaming
playback. However NuPlayerDriver is more of a wrapper and
the actual implementation is through the NuPlayer class.
NuPlayer control flow is fully asynchronous and based on the
ALooper/AHandler classes described in the following
NUPlayer overview
Messages
Class names start with letter “A” for “asynchronous”.
Following are the main classes
Represents data which needs to be handled
asynchronously. Contains a field called “what”
kind of message. Contains an array of
data items. Each data item has a unique name and by
using a C union support is provided for all kinds of data
pes including object pointers. Has methods to convert a
Binder parcel into an AMessage and vice-versa. Event–
An event is a timed “AMessage”.
Represents an entity which can process an
AMessage. Processing is done in onMessageReceived()
Represents a thread which runs an infinite loop.
Maintains a queue of events. Anyone can post an event to
an “ALooper” which is put at the end of event queue. The
thread loop removes events from the queue (based on
timing of the AMessage) and delivers them to an
Singleton object which keeps a list of
associated AHandlers. The interaction
International Journal of Advanced Engineering, Management and Science (IJAEMS)
Infogain Publication (Infogainpublication.com
www.ijaems.com
between looper and handler is done via this singleton
object. Each looper needs to associate a handler with
itself. When processing the event from its queue, a looper
delivers the message to the associated handler.
NUPlayer Classes
Fig.4:NUPlayer Classes and their relation
NuPlayer is designed for streaming use-cases and e
follows asynchronous message based control mechanism.
IMediaPlayerService::create() API gives an IMediaPlayer
interface and calling IMediaPlayer::setDataSource() creates a
MediaPlayerBase object which is an NuPlayerDriver object
in case of streaming playback. NuPlayerDriver’s main role is
to act as a looper to handle message passing mechanism while
NuPlayer acts as the message handler and performs the actu
functions of a media player. NuPlayer contains an object each
of a Source, a Decoder and a Renderer. Each of these classes
is defined inside the scope of NuPlayer class
acts a message handler and is associated with
which is implemented by NuPlayerDriver.
NuPlayer also maintains reference to the audio sink and native
window passed by the application/client. These
audio/video rendering. Note that the Renderer class only
manages the A/V sync and actual rendering is done by the
Decoder class itself.Decoder also maintains the reference to
application passed native window and uses it to get decoder
output buffers and rendering the video outp
decoding is implemented via ACodec class which is the
“asynchronous” equivalent of OMXCodec
player) and the Decoder class is just a wrapper for ACodec
ACodec implements AHierarchicalStateMachine and follows
the standard pattern of OMX component state.
In a typical playback usecase, the application invokes
following set of API calls.
MediaPlayer player = new MediaPlayer();
International Journal of Advanced Engineering, Management and Science (IJAEMS)
Infogainpublication.com)
and handler is done via this singleton
needs to associate a handler with
itself. When processing the event from its queue, a looper
delivers the message to the associated handler.
NUPlayer Classes and their relation
cases and exclusively
follows asynchronous message based control mechanism. The
IMediaPlayerService::create() API gives an IMediaPlayer
IMediaPlayer::setDataSource() creates a
MediaPlayerBase object which is an NuPlayerDriver object
NuPlayerDriver’s main role is
to act as a looper to handle message passing mechanism while
ler and performs the actual
NuPlayer contains an object each
Each of these classes
class. Each of them
acts a message handler and is associated with the same looper
NuPlayerDriver.
NuPlayer also maintains reference to the audio sink and native
window passed by the application/client. These are used for
Note that the Renderer class only
manages the A/V sync and actual rendering is done by the
Decoder also maintains the reference to
d uses it to get decoder
and rendering the video output. Actual
decoding is implemented via ACodec class which is the
“asynchronous” equivalent of OMXCodec (part of Stagefright
player) and the Decoder class is just a wrapper for ACodec.
ACodec implements AHierarchicalStateMachine and follows
tern of OMX component state.
In a typical playback usecase, the application invokes
MediaPlayer player = new MediaPlayer();
player.setDataSource(url);
player.setSurface(surface);
player.prepare();
player.start();
player.stop();
player.release();
NUPlayer DataFlow Sequence diagram
Fig.5: NUPlayer sequence diagram for DataFlow
V. IMPLEMENTATION
A demon is created which reads the TV's capabilities for
audio decoding. If TV is capable of decod
stream, AUDIO_OFFLOAD flag is set in the NUPlayer class
which bypasses audio directly to the TV hardware through
hal. When the streams are passed by NUPlayer to the
underlying audio player, it will simply forward it to the
Following are the steps in the implementation:
1] Daemon reads the HDMI capability on startup.
2] Read data is stored in the data structure.
3] Following steps take place when a 4k Video stream request
takes place:
[Vol-2, Issue-5, May- 2016]
ISSN: 2454-1311
Page | 446
player.setDataSource(url);
player.setSurface(surface);
NUPlayer DataFlow Sequence diagram
NUPlayer sequence diagram for DataFlow
IMPLEMENTATION AND TEST RESULT
SNIPPETS
A demon is created which reads the TV's capabilities for
audio decoding. If TV is capable of decoding the audio
stream, AUDIO_OFFLOAD flag is set in the NUPlayer class
which bypasses audio directly to the TV hardware through
hal. When the streams are passed by NUPlayer to the
underlying audio player, it will simply forward it to the TV.
he steps in the implementation:
1] Daemon reads the HDMI capability on startup.
2] Read data is stored in the data structure.
3] Following steps take place when a 4k Video stream request
International Journal of Advanced Engineering, Management and Science (IJAEMS)
Infogain Publication (Infogainpublication.com
www.ijaems.com
3.1 NUPlayer reads the hardware capability
3.2 Is TV capable of decoding?
3.3 If yes then pass the compressed audio streams
directly to TV.
4] Audio and Video sync is handled by TimedQueueEvent
Above method reduces the overhead of audio decoding under
the assumption that TV is capable of performing audio
decoding. If TV is not capable then the the decoding will be
handled by the board itself.
Following is the code snippet for the daemon reading
hardware capability.
Fig. 6 Daemon code snippet
Performance testing
Performance of 4k videos was tested using a monitor tool
Monitor tool is an ST-internal tool. It displays the frame drop
rates, total frames displayed, queued, repeated and
We recorded certain readings before the implementation. Later
we ran the same video for the same build. Following are some
of the screenshots before and after the changes.
International Journal of Advanced Engineering, Management and Science (IJAEMS)
Infogainpublication.com)
3.1 NUPlayer reads the hardware capability
3.3 If yes then pass the compressed audio streams
4] Audio and Video sync is handled by TimedQueueEvent
Above method reduces the overhead of audio decoding under
the assumption that TV is capable of performing audio
decoding. If TV is not capable then the the decoding will be
Following is the code snippet for the daemon reading
Fig. 6 Daemon code snippet
Performance of 4k videos was tested using a monitor tool.
internal tool. It displays the frame drop
rates, total frames displayed, queued, repeated and released.
We recorded certain readings before the implementation. Later
we ran the same video for the same build. Following are some
of the screenshots before and after the changes.
Fig.7: Monitor reading before the changes
Fig.8: Monitor tool readin
We also ran CTS(Compatibility test Suite ) by google for
media playback. Initially there were a lot of test failures. After
the implementation the failures were greatly reduced.
Following are some of the snippets for CTS ran for media
package.
Fig.9: CTS results before our patch
[Vol-2, Issue-5, May- 2016]
ISSN: 2454-1311
Page | 447
Monitor reading before the changes
Monitor tool reading after changes
We also ran CTS(Compatibility test Suite ) by google for
media playback. Initially there were a lot of test failures. After
the implementation the failures were greatly reduced.
Following are some of the snippets for CTS ran for media
CTS results before our patch
International Journal of Advanced Engineering, Management and Science (IJAEMS) [Vol-2, Issue-5, May- 2016]
Infogain Publication (Infogainpublication.com) ISSN: 2454-1311
www.ijaems.com Page | 448
Fig.10: CTS results after our patch
If including units in the label, present them within parentheses.
Do not label axes only with units. In the example, write
“Magnetization (A/m)” or “Magnetization {A[m(1)]}”, not just
“A/m”. Do not label axes with a ratio of quantities and units.
For example, write “Temperature (K)”, not “Temperature/K”.
Results
We successfully improved the 4k video playback on STB
by tunneling the audio directly to the tv. An initial lag was
seen after the video starts. Later the video plays smoothly with
very little frame drops.
)
VI. ACKNOWLEDGMENT
I would like to thank Deepak karda for mentoring me in this
project. I would also like to extend my thanks to Munish
Bhardwaj and Prof. Swarnalatha for all the encouragement
and support.
REFERENCES
[1] J. Barba, J.C. López, D. de la Fuente, F. Rincón,
“OpenMax Hardware Native Support for Efficient
Multimedia Embedded Systems”
[2] Karim Yagbmour, Embedded Android, published by
Oreilly
[3] Sang-Pil Moon, Joo-Won Kim, Kuk-Ho Bae, Jae-
Cheon Lee and Dae-Wha Seo, “Embedded Linux
Implementation on a Commercial Digital TV
System,” in IEEE Transactions on Consumer
Electronics, Vol. 49, No. 4, NOVEMBER 2003
[4] Damian Hobson-Garcia, Katsuya Matsubara, Takanari
Hayama, Hisao Munakata, “Integrating a Hardware
Video Codec into Android Stagefright using
OpenMAX IL”

More Related Content

What's hot

International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)ijceronline
 
Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitSulamita Garcia
 
Sdk For Firmware Development
Sdk For Firmware DevelopmentSdk For Firmware Development
Sdk For Firmware DevelopmentRamesh Prasad
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Codemotion
 
Intel Core second generation Sandy Bridge new models and specifications
Intel Core second generation Sandy Bridge new models and specificationsIntel Core second generation Sandy Bridge new models and specifications
Intel Core second generation Sandy Bridge new models and specificationsdegarden
 
Intels presentation at blue line industrial computer seminar
Intels presentation at blue line industrial computer seminarIntels presentation at blue line industrial computer seminar
Intels presentation at blue line industrial computer seminarBlue Line
 
Eric Theis resume61.1
Eric Theis resume61.1Eric Theis resume61.1
Eric Theis resume61.1Eric Theis
 
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...Christopher Diamantopoulos
 
Developing a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT EditionDeveloping a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT EditionIntel® Software
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth Pilli
 
Track B- Advanced ESL verification - Mentor
Track B- Advanced ESL verification - MentorTrack B- Advanced ESL verification - Mentor
Track B- Advanced ESL verification - Mentorchiportal
 
IoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitIoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitVasily Ryzhonkov
 

What's hot (19)

International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
What & How to Customize Android?
What & How to Customize Android?What & How to Customize Android?
What & How to Customize Android?
 
Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
 
Sdk For Firmware Development
Sdk For Firmware DevelopmentSdk For Firmware Development
Sdk For Firmware Development
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
Intel Core second generation Sandy Bridge new models and specifications
Intel Core second generation Sandy Bridge new models and specificationsIntel Core second generation Sandy Bridge new models and specifications
Intel Core second generation Sandy Bridge new models and specifications
 
Intels presentation at blue line industrial computer seminar
Intels presentation at blue line industrial computer seminarIntels presentation at blue line industrial computer seminar
Intels presentation at blue line industrial computer seminar
 
CV_Arshad_21June16
CV_Arshad_21June16CV_Arshad_21June16
CV_Arshad_21June16
 
127 iio a-new-subsystem
127 iio a-new-subsystem127 iio a-new-subsystem
127 iio a-new-subsystem
 
Eclipse RT Day
Eclipse RT DayEclipse RT Day
Eclipse RT Day
 
Eric Theis resume61.1
Eric Theis resume61.1Eric Theis resume61.1
Eric Theis resume61.1
 
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
 
Developing a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT EditionDeveloping a NodeBot using Intel XDK IoT Edition
Developing a NodeBot using Intel XDK IoT Edition
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 
L4100
L4100L4100
L4100
 
Explore Android Internals
Explore Android InternalsExplore Android Internals
Explore Android Internals
 
Track B- Advanced ESL verification - Mentor
Track B- Advanced ESL verification - MentorTrack B- Advanced ESL verification - Mentor
Track B- Advanced ESL verification - Mentor
 
IoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitIoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT Devkit
 
Android Audio System
Android Audio SystemAndroid Audio System
Android Audio System
 

Similar to Optimizing the Audio Decoding Based Upon Hardware Capability: An Android NUPlayer Implementation

Brochure (2016-01-30)
Brochure (2016-01-30)Brochure (2016-01-30)
Brochure (2016-01-30)Jonah McLeod
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)ijceronline
 
Linux Kernel , BSP, Boot Loader, ARM Engineer - Satish profile
Linux Kernel , BSP, Boot Loader, ARM Engineer - Satish profileLinux Kernel , BSP, Boot Loader, ARM Engineer - Satish profile
Linux Kernel , BSP, Boot Loader, ARM Engineer - Satish profileSatish Kumar
 
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux Devices
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux DevicesELCE 2010 - State Of Multimedia In 2010 Embedded Linux Devices
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux DevicesBenjamin Zores
 
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...christopherfairbairn
 
Resume-LIN-en-2014
Resume-LIN-en-2014Resume-LIN-en-2014
Resume-LIN-en-2014lin xianjin
 
Resume-LIN-en-2014
Resume-LIN-en-2014Resume-LIN-en-2014
Resume-LIN-en-2014lin xianjin
 
IRJET- Navigation Camp – Bot
IRJET-  	  Navigation Camp – BotIRJET-  	  Navigation Camp – Bot
IRJET- Navigation Camp – BotIRJET Journal
 
GNAT GPL For Mindstorms
GNAT GPL For MindstormsGNAT GPL For Mindstorms
GNAT GPL For MindstormsAdaCore
 
09.50 Ernst Vrolijks
09.50 Ernst Vrolijks09.50 Ernst Vrolijks
09.50 Ernst VrolijksThemadagen
 
Operating System Windows CE 7.0 and Processor ARM Advantages and Disadvantages
Operating System Windows CE 7.0 and Processor ARM Advantages and DisadvantagesOperating System Windows CE 7.0 and Processor ARM Advantages and Disadvantages
Operating System Windows CE 7.0 and Processor ARM Advantages and DisadvantagesFatih Özlü
 
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...BeMyApp
 

Similar to Optimizing the Audio Decoding Based Upon Hardware Capability: An Android NUPlayer Implementation (20)

Brochure (2016-01-30)
Brochure (2016-01-30)Brochure (2016-01-30)
Brochure (2016-01-30)
 
My Profile
My ProfileMy Profile
My Profile
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
ARM Processor Tutorial
ARM Processor Tutorial ARM Processor Tutorial
ARM Processor Tutorial
 
Embedded system
Embedded systemEmbedded system
Embedded system
 
iWave Systems Techologies Pvt Ltd- Company Profile Presentation
iWave Systems Techologies Pvt Ltd- Company Profile PresentationiWave Systems Techologies Pvt Ltd- Company Profile Presentation
iWave Systems Techologies Pvt Ltd- Company Profile Presentation
 
Linux Kernel , BSP, Boot Loader, ARM Engineer - Satish profile
Linux Kernel , BSP, Boot Loader, ARM Engineer - Satish profileLinux Kernel , BSP, Boot Loader, ARM Engineer - Satish profile
Linux Kernel , BSP, Boot Loader, ARM Engineer - Satish profile
 
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux Devices
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux DevicesELCE 2010 - State Of Multimedia In 2010 Embedded Linux Devices
ELCE 2010 - State Of Multimedia In 2010 Embedded Linux Devices
 
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
 
Resume-LIN-en-2014
Resume-LIN-en-2014Resume-LIN-en-2014
Resume-LIN-en-2014
 
Resume-LIN-en-2014
Resume-LIN-en-2014Resume-LIN-en-2014
Resume-LIN-en-2014
 
TULIKA KESHRI (1)
TULIKA KESHRI (1)TULIKA KESHRI (1)
TULIKA KESHRI (1)
 
C0161018
C0161018C0161018
C0161018
 
C0161018
C0161018C0161018
C0161018
 
IRJET- Navigation Camp – Bot
IRJET-  	  Navigation Camp – BotIRJET-  	  Navigation Camp – Bot
IRJET- Navigation Camp – Bot
 
resume
resumeresume
resume
 
GNAT GPL For Mindstorms
GNAT GPL For MindstormsGNAT GPL For Mindstorms
GNAT GPL For Mindstorms
 
09.50 Ernst Vrolijks
09.50 Ernst Vrolijks09.50 Ernst Vrolijks
09.50 Ernst Vrolijks
 
Operating System Windows CE 7.0 and Processor ARM Advantages and Disadvantages
Operating System Windows CE 7.0 and Processor ARM Advantages and DisadvantagesOperating System Windows CE 7.0 and Processor ARM Advantages and Disadvantages
Operating System Windows CE 7.0 and Processor ARM Advantages and Disadvantages
 
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
 

Recently uploaded

Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...Call girls in Ahmedabad High profile
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxhumanexperienceaaa
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 

Recently uploaded (20)

Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 

Optimizing the Audio Decoding Based Upon Hardware Capability: An Android NUPlayer Implementation

  • 1. International Journal of Advanced Engineering, Management and Science (IJAEMS) Infogain Publication (Infogainpublication.com www.ijaems.com Optimizing the Audio Decoding Hardware Capability Prasad Renukdas School of Computer Science and Engineering, Abstract— Performance in android based devices is a major concern. A number of frame-drops can be seen while a 4k video on a less powerful device. A multi set-top box should be capable of playing the 4k videos alongside of its basic functionalities. Sometimes the hardware allotted for the set-top box may not be up to the mark. Hence, it is difficult to handle 4k videos at a smoother rate. To tackle the above problem we have come up with the solution which tunnels the compressed/uncompressed audio track directly to the Smart-TV based upon its capability. The solution is built for ST’s set top box. In this paper we discuss basics of set top box, android audio architecture and the solution for frame drop backed by the experimental results and by using standard testing methods. Keywords— Smart-TV, tunneling, 4k videos, frame drops I. INTRODUCTION Android set-top box is an ongoing R&D pr the electronic tech giants like STMicroelectronics box runs the latest android lollipop. As the cable television and satellite television industries enjoy years of sustained cable/satellite operators are now investing in the “digitization” of their systems. This is resulting in the transition of the TV transmission infrastructure from an analog environment to a digital one. To use current analog television sets to rece these digital broadcasts Set Top Box (STB) is necessary. Figure 1 show the flow of signal from satellite antenna to TV. Fig.1: diagram showing flow of signal from satellite antenna to TV International Journal of Advanced Engineering, Management and Science (IJAEMS) Infogainpublication.com) he Audio Decoding Based Upon Hardware Capability: An Android NUPlayer Implementation Prasad Renukdas, Prof. Swarnalatha P School of Computer Science and Engineering, VIT, Vellore, Tamil Nadu Performance in android based devices is a major drops can be seen while playing less powerful device. A multi-purpose android top box should be capable of playing the 4k videos alongside of its basic functionalities. Sometimes the hardware top box may not be up to the mark. Hence, difficult to handle 4k videos at a smoother rate. To tackle the above problem we have come up with the solution which tunnels the compressed/uncompressed audio track directly to TV based upon its capability. The solution is built this paper we discuss basics of set top box, android audio architecture and the solution for frame by the experimental results and by using videos, frame drops. INTRODUCTION top box is an ongoing R&D project at in most of the electronic tech giants like STMicroelectronics. This set-top box runs the latest android lollipop. As the cable television and satellite television industries enjoy years of sustained growth, cable/satellite operators are now investing in the “digitization” of their systems. This is resulting in the transition of the TV transmission infrastructure from an analog environment to a digital one. To use current analog television sets to receive these digital broadcasts Set Top Box (STB) is necessary. show the flow of signal from satellite antenna to TV. diagram showing flow of signal from satellite antenna Set-Top Box or STB has become an integral part of TV viewing in many parts of the world. We commonly see this sleek looking device sitting on side of TVs. Though this device looks slim and simple but it is one of the most complex embedded systems today. ST day by day. Few of the common features in current generation STBs are time shift mode viewing, recording, Internet based viewing, video on demand, Full High definition video output etc. In this paper we will be discussi architecture which is the preliminary requirement for understanding how the audio calls are handled. We will also discuss analysis and design of will see snippets of implementation and test result II. OVERVIEW OF THE In this section we will see the general architecture of STB. We will also see the android audio architecture which will give us a brief understanding regarding android audio methods invocations. Fig. 2:STB Architectur Figure 2 shows the complete set up used for the implementation and testing of the module. We used ST’s Cannes 2.5 board for development and testing. An STMC box [Vol-2, Issue-5, May- 2016] ISSN: 2454-1311 Page | 444 Based Upon ndroid NUPlayer Vellore, Tamil Nadu, India Top Box or STB has become an integral part of TV viewing in many parts of the world. We commonly see this sleek looking device sitting on side of TVs. Though this device looks slim and simple but it is one of the most complex embedded systems today. STBs are increasing their feature set day by day. Few of the common features in current generation STBs are time shift mode viewing, recording, Internet based viewing, video on demand, Full High definition video output we will be discussing the basic android audio architecture which is the preliminary requirement for understanding how the audio calls are handled. We will also discuss analysis and design of our system. In the final step we will see snippets of implementation and test results. THE PROPOSED SYSTEM In this section we will see the general architecture of STB. We will also see the android audio architecture which will give us a brief understanding regarding android audio methods STB Architecture Figure 2 shows the complete set up used for the implementation and testing of the module. We used ST’s Cannes 2.5 board for development and testing. An STMC box
  • 2. International Journal of Advanced Engineering, Management and Science (IJAEMS) Infogain Publication (Infogainpublication.com www.ijaems.com was used for sending the images to the Board via host computer. Stream server is an optional entity which was used for testing live streams. SoC The System on chip contain two ARM processors ST SDK2 like Orly B2020, one SH-4 (used for floating point calculations) on ST SDK1 like lille, leage c, cardiff, one ST231 and one MALI (used as a graphics engine) processor. Stream Server The stream server contains all the streams to be viewed on the receiver in digital format, it is connected to a MOD card which converts the signal to Radio Frequency and sends it the TUNER card on the board. III. SDK2 SOFTWARE OVERVIEW ST has a comprehensive media framework based on hardware codec blocks available in Cannes 2 (STiH410) platform. The framework is known as Streaming Engine (henceforth called SE) which has a complete player implementa AV sync) and is implemented as a kernel module. However Android mandates the use of OMX IL APIs for all codec related functionality and hence ST provides an OMX IL layer based on the underlying SE kernel module. The OMX IL is implemented in both user space and kernel space. The kernel space module is called OMXSE (OMX interface to the underlying Streaming Engine). Apart from this the V4L2 and DVB APIs are also used. The user space OMX IL consists of a set of C++ classes for audio and video omx components and ports which handle the OMX state machine. Internally they make use of the V4L2 and OMXSE kernel drivers to access the underlying hardware codecs. The following figure shows implementation of the OMX IL Fig.3:SDK2 architecture STAGEFRIGHT OMX LibStageFright OMXSE LINUX DVB STREAMING ENGINE OMX Core OMX VIDEO International Journal of Advanced Engineering, Management and Science (IJAEMS) Infogainpublication.com) was used for sending the images to the Board via host Stream server is an optional entity which was used The System on chip contain two ARM processors ST SDK2 4 (used for floating point calculations) on ST SDK1 like lille, leage c, cardiff, one one MALI (used as a graphics engine) processor. The stream server contains all the streams to be viewed on the receiver in digital format, it is connected to a MOD card which converts the signal to Radio Frequency and sends it the OVERVIEW ST has a comprehensive media framework based on hardware codec blocks available in Cannes 2 (STiH410) platform. The framework is known as Streaming Engine (henceforth called SE) which has a complete player implementation (including AV sync) and is implemented as a kernel module. However Android mandates the use of OMX IL APIs for all codec related functionality and hence ST provides an OMX IL layer based on the underlying SE kernel module. The OMX IL is both user space and kernel space. The kernel space module is called OMXSE (OMX interface to the underlying Streaming Engine). Apart from this the V4L2 and DVB APIs are also used. The user space OMX IL consists of a mx components and ports which handle the OMX state machine. Internally they make use of the V4L2 and OMXSE kernel drivers to access implementation of the OMX IL. SDK2 architecture IV. NUPLAYER NuPlayerDriver provides the implementation of MediaPlayerInterface and is used for all kinds playback. However NuPlayerDriver is more of a wrapper and the actual implementation is through the NuPlayer class. NuPlayer control flow is fully asynchronous and based on the ALooper/AHandler classes described in the following diagram: Fig.6:NUPlayer overview Foundation Classes- Messages Class names start with letter “A” for “asynchronous”. Following are the main classes • AMessage–Represents data which need asynchronously. Contains representing the kind of message. Contains data items. Each data item has a unique name and by using a C union support is provided for all kinds of data types including object pointers. Has Binder parcel into an AMessage and vice An event is a timed “AMessage”. • AHandler–Represents an entity which can process an AMessage. Processing is done in onMessageReceived() function. • ALooper–Represents a thread which runs an infinite loop. Maintains a queue of events. Anyone can post a an “ALooper” which is put at the end of event queue. The thread loop removes events from the queue (based on timing of the AMessage) and delivers them to an appropriate handler. • ALooperRoster–Singleton object which keeps a list of ALoopers and associated AHandlers. The interaction V4L2 STREAMING ENGINE OMX AUDIO [Vol-2, Issue-5, May- 2016] ISSN: 2454-1311 Page | 445 NUPLAYER OVERVIEW NuPlayerDriver provides the implementation of MediaPlayerInterface and is used for all kinds of streaming playback. However NuPlayerDriver is more of a wrapper and the actual implementation is through the NuPlayer class. NuPlayer control flow is fully asynchronous and based on the ALooper/AHandler classes described in the following NUPlayer overview Messages Class names start with letter “A” for “asynchronous”. Following are the main classes Represents data which needs to be handled asynchronously. Contains a field called “what” kind of message. Contains an array of data items. Each data item has a unique name and by using a C union support is provided for all kinds of data pes including object pointers. Has methods to convert a Binder parcel into an AMessage and vice-versa. Event– An event is a timed “AMessage”. Represents an entity which can process an AMessage. Processing is done in onMessageReceived() Represents a thread which runs an infinite loop. Maintains a queue of events. Anyone can post an event to an “ALooper” which is put at the end of event queue. The thread loop removes events from the queue (based on timing of the AMessage) and delivers them to an Singleton object which keeps a list of associated AHandlers. The interaction
  • 3. International Journal of Advanced Engineering, Management and Science (IJAEMS) Infogain Publication (Infogainpublication.com www.ijaems.com between looper and handler is done via this singleton object. Each looper needs to associate a handler with itself. When processing the event from its queue, a looper delivers the message to the associated handler. NUPlayer Classes Fig.4:NUPlayer Classes and their relation NuPlayer is designed for streaming use-cases and e follows asynchronous message based control mechanism. IMediaPlayerService::create() API gives an IMediaPlayer interface and calling IMediaPlayer::setDataSource() creates a MediaPlayerBase object which is an NuPlayerDriver object in case of streaming playback. NuPlayerDriver’s main role is to act as a looper to handle message passing mechanism while NuPlayer acts as the message handler and performs the actu functions of a media player. NuPlayer contains an object each of a Source, a Decoder and a Renderer. Each of these classes is defined inside the scope of NuPlayer class acts a message handler and is associated with which is implemented by NuPlayerDriver. NuPlayer also maintains reference to the audio sink and native window passed by the application/client. These audio/video rendering. Note that the Renderer class only manages the A/V sync and actual rendering is done by the Decoder class itself.Decoder also maintains the reference to application passed native window and uses it to get decoder output buffers and rendering the video outp decoding is implemented via ACodec class which is the “asynchronous” equivalent of OMXCodec player) and the Decoder class is just a wrapper for ACodec ACodec implements AHierarchicalStateMachine and follows the standard pattern of OMX component state. In a typical playback usecase, the application invokes following set of API calls. MediaPlayer player = new MediaPlayer(); International Journal of Advanced Engineering, Management and Science (IJAEMS) Infogainpublication.com) and handler is done via this singleton needs to associate a handler with itself. When processing the event from its queue, a looper delivers the message to the associated handler. NUPlayer Classes and their relation cases and exclusively follows asynchronous message based control mechanism. The IMediaPlayerService::create() API gives an IMediaPlayer IMediaPlayer::setDataSource() creates a MediaPlayerBase object which is an NuPlayerDriver object NuPlayerDriver’s main role is to act as a looper to handle message passing mechanism while ler and performs the actual NuPlayer contains an object each Each of these classes class. Each of them acts a message handler and is associated with the same looper NuPlayerDriver. NuPlayer also maintains reference to the audio sink and native window passed by the application/client. These are used for Note that the Renderer class only manages the A/V sync and actual rendering is done by the Decoder also maintains the reference to d uses it to get decoder and rendering the video output. Actual decoding is implemented via ACodec class which is the “asynchronous” equivalent of OMXCodec (part of Stagefright player) and the Decoder class is just a wrapper for ACodec. ACodec implements AHierarchicalStateMachine and follows tern of OMX component state. In a typical playback usecase, the application invokes MediaPlayer player = new MediaPlayer(); player.setDataSource(url); player.setSurface(surface); player.prepare(); player.start(); player.stop(); player.release(); NUPlayer DataFlow Sequence diagram Fig.5: NUPlayer sequence diagram for DataFlow V. IMPLEMENTATION A demon is created which reads the TV's capabilities for audio decoding. If TV is capable of decod stream, AUDIO_OFFLOAD flag is set in the NUPlayer class which bypasses audio directly to the TV hardware through hal. When the streams are passed by NUPlayer to the underlying audio player, it will simply forward it to the Following are the steps in the implementation: 1] Daemon reads the HDMI capability on startup. 2] Read data is stored in the data structure. 3] Following steps take place when a 4k Video stream request takes place: [Vol-2, Issue-5, May- 2016] ISSN: 2454-1311 Page | 446 player.setDataSource(url); player.setSurface(surface); NUPlayer DataFlow Sequence diagram NUPlayer sequence diagram for DataFlow IMPLEMENTATION AND TEST RESULT SNIPPETS A demon is created which reads the TV's capabilities for audio decoding. If TV is capable of decoding the audio stream, AUDIO_OFFLOAD flag is set in the NUPlayer class which bypasses audio directly to the TV hardware through hal. When the streams are passed by NUPlayer to the underlying audio player, it will simply forward it to the TV. he steps in the implementation: 1] Daemon reads the HDMI capability on startup. 2] Read data is stored in the data structure. 3] Following steps take place when a 4k Video stream request
  • 4. International Journal of Advanced Engineering, Management and Science (IJAEMS) Infogain Publication (Infogainpublication.com www.ijaems.com 3.1 NUPlayer reads the hardware capability 3.2 Is TV capable of decoding? 3.3 If yes then pass the compressed audio streams directly to TV. 4] Audio and Video sync is handled by TimedQueueEvent Above method reduces the overhead of audio decoding under the assumption that TV is capable of performing audio decoding. If TV is not capable then the the decoding will be handled by the board itself. Following is the code snippet for the daemon reading hardware capability. Fig. 6 Daemon code snippet Performance testing Performance of 4k videos was tested using a monitor tool Monitor tool is an ST-internal tool. It displays the frame drop rates, total frames displayed, queued, repeated and We recorded certain readings before the implementation. Later we ran the same video for the same build. Following are some of the screenshots before and after the changes. International Journal of Advanced Engineering, Management and Science (IJAEMS) Infogainpublication.com) 3.1 NUPlayer reads the hardware capability 3.3 If yes then pass the compressed audio streams 4] Audio and Video sync is handled by TimedQueueEvent Above method reduces the overhead of audio decoding under the assumption that TV is capable of performing audio decoding. If TV is not capable then the the decoding will be Following is the code snippet for the daemon reading Fig. 6 Daemon code snippet Performance of 4k videos was tested using a monitor tool. internal tool. It displays the frame drop rates, total frames displayed, queued, repeated and released. We recorded certain readings before the implementation. Later we ran the same video for the same build. Following are some of the screenshots before and after the changes. Fig.7: Monitor reading before the changes Fig.8: Monitor tool readin We also ran CTS(Compatibility test Suite ) by google for media playback. Initially there were a lot of test failures. After the implementation the failures were greatly reduced. Following are some of the snippets for CTS ran for media package. Fig.9: CTS results before our patch [Vol-2, Issue-5, May- 2016] ISSN: 2454-1311 Page | 447 Monitor reading before the changes Monitor tool reading after changes We also ran CTS(Compatibility test Suite ) by google for media playback. Initially there were a lot of test failures. After the implementation the failures were greatly reduced. Following are some of the snippets for CTS ran for media CTS results before our patch
  • 5. International Journal of Advanced Engineering, Management and Science (IJAEMS) [Vol-2, Issue-5, May- 2016] Infogain Publication (Infogainpublication.com) ISSN: 2454-1311 www.ijaems.com Page | 448 Fig.10: CTS results after our patch If including units in the label, present them within parentheses. Do not label axes only with units. In the example, write “Magnetization (A/m)” or “Magnetization {A[m(1)]}”, not just “A/m”. Do not label axes with a ratio of quantities and units. For example, write “Temperature (K)”, not “Temperature/K”. Results We successfully improved the 4k video playback on STB by tunneling the audio directly to the tv. An initial lag was seen after the video starts. Later the video plays smoothly with very little frame drops. ) VI. ACKNOWLEDGMENT I would like to thank Deepak karda for mentoring me in this project. I would also like to extend my thanks to Munish Bhardwaj and Prof. Swarnalatha for all the encouragement and support. REFERENCES [1] J. Barba, J.C. López, D. de la Fuente, F. Rincón, “OpenMax Hardware Native Support for Efficient Multimedia Embedded Systems” [2] Karim Yagbmour, Embedded Android, published by Oreilly [3] Sang-Pil Moon, Joo-Won Kim, Kuk-Ho Bae, Jae- Cheon Lee and Dae-Wha Seo, “Embedded Linux Implementation on a Commercial Digital TV System,” in IEEE Transactions on Consumer Electronics, Vol. 49, No. 4, NOVEMBER 2003 [4] Damian Hobson-Garcia, Katsuya Matsubara, Takanari Hayama, Hisao Munakata, “Integrating a Hardware Video Codec into Android Stagefright using OpenMAX IL”