0% found this document useful (0 votes)
64 views5 pages

Assignement 1

The document discusses traversing the Android source code to become familiar with the folders and files related to multimedia video. It describes how the android.media APIs are used to interact with multimedia hardware through Binder IPC. Key classes and files related to media playback and encoding are identified in the frameworks/av/media and frameworks/support/media directories.

Uploaded by

Sai Akula
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views5 pages

Assignement 1

The document discusses traversing the Android source code to become familiar with the folders and files related to multimedia video. It describes how the android.media APIs are used to interact with multimedia hardware through Binder IPC. Key classes and files related to media playback and encoding are identified in the frameworks/av/media and frameworks/support/media directories.

Uploaded by

Sai Akula
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 5

Assignment : 1 Date:11/26/2020

Android Multimedia Video


Task : Traversing trough the Android source code to get familar with folders/files and locations.

Version : Pie - 9.0.0_r3

Source : http://androidxref.com/

Basically application code utilize android.media APIs to interact with the multimedia hardware.

android.media -> Binder IPC

The Binder IPC proxies facilitate communication over process boundaries Location :
frameworks/av/media/libmedia

Libmedia utilizes the Media Player Services

MediaPlayerService class is defined in MediaPlayerService.h and definitions are implemented in


MediaPlayerService.cpp.

PATH : /frameworks/av/media/libmediaplayerservice/MediaPlayerService.h

· Class MediaPlayerService : public BnMediaPlayerService

PATH : /frameworks/av/media/libmediaplayerservice/MediaPlayerService.cpp

· MediaPlayerService::MediaPlayerService

· MediaPlayerService::removeMediaRecorderClient

· MediaPlayerService::removeClient

Video Formats : H.263, H.264 AVC(BP,MP), H.265 HEVC ,MPEG-4 SP,VP8, VP9, AV1

File Formats : 3GPP (.3gp), MPEG-4 (.mp4), Matroska (.mkv) ,MPEG-TS (.ts), WebM (.webm)

For video Encoding , Decoding, Playback & Streaming speed and resolution are recommended based on
the certain parameters.

eg: (SD- Low/High) quality Format (H.264) -> (176 x 144 px @ 12 fps ) (480 x 360 px @ 30 fps) are
recomended respectively.

>> Similarlly for images also Android framework recomends some formats.

PATH : /frameworks/support/media/src/main/java/androidx/media/

AudioAttributesCompat.java
DataSourceDesc.java
Media2DataSource.java
MediaBrowser2.java
MediaBrowserCompatUtils.java
....

MediaController2ImplBase.java
MediaInterface2.java
MediaItem2.java
MediaLibraryService2.java
MediaLibrarySessionImplBase.java
MediaMetadata2.java
MediaPlayer2.java
MediaPlayer2Impl.java
MediaPlayerInterface.java
MediaPlaylistAgent.java
MediaSession2.java
......

MediaSessionManager.java
MediaSessionManagerImplApi21.java
MediaSessionManagerImplApi28.java
MediaSessionManagerImplBase.java
MediaSessionService2.java
MediaUtils2.java
Rating2.java
session/
SessionCommand2.java
SessionCommandGroup2.java
SessionPlaylistAgentImplBase.java
SessionToken2.java
subtitle/
VolumeProviderCompat.java
For unit test the services scripts are here.

PATH : /cts/tests/tests/media/src/android/media/cts/

AdaptivePlaybackTest.java
AsyncPlayerTest.java
AudioAttributesTest.java
AudioEffectTest.java
AudioFocusTest.java
AudioFormatTest.java
AudioHelper.java
AudioManagerStub.java
AudioManagerStubHelper.java
AudioManagerTest.java
AudioNativeTest.java
AudioPlaybackConfigurationTest.java
AudioPlayRoutingNative.java
AudioPreProcessingTest.java
AudioPresentationTest.java
AudioRecord_BufferSizeTest.java
AudioRecordAppOpTest.java
AudioRecordTest.java
AudioTrack_ListenerTest.java
AudioTrackLatencyTest.java
AudioTrackNative.java
AudioTrackSurroundTest.java
AudioTrackTest.java
....

CodecState.java
CodecUtils.java
CompositionTextureView.java
ConnectionStatus.java
DecodeAccuracyTest.java
DecodeAccuracyTestActivity.java
DecodeAccuracyTestBase.java
DecodeEditEncodeTest.java
DecoderConformanceTest.java
DecoderTest.java
DecoderTestAacDrc.java
DecoderTestXheAac.java
DeviceUtils.java
....

EncodeDecodeTest.java
EncoderTest.java
EncodeVirtualDisplayTest.java
EncodeVirtualDisplayWithCompositionTest.java
EnumDevicesTest.java
EnvReverbTest.java
EqualizerTest.java
ExifInterfaceTest.java
ExtractDecodeEditEncodeMuxTest.java
FaceDetector_FaceTest.java
FaceDetectorStub.java
FaceDetectorTest.java
FaceView.java
....

MediaCodecCapabilitiesTest.java
MediaCodecClearKeyPlayer.java
MediaCodecListTest.java
MediaCodecTest.java
MediaCodecTunneledPlayer.java
.....

MediaPlayer2TestBase.java
MediaPlayerDrmTest.java
MediaPlayerDrmTestBase.java
MediaPlayerFlakyNetworkTest.java
MediaPlayerSurfaceStubActivity.java
MediaPlayerSurfaceTest.java
MediaPlayerTest.java
MediaPlayerTestBase.java
MediaRandomTest.java
MediaRecorderTest.java
MediaSessionTest.java
MediaStubActivity.java
PostProcTestBase.java
PresentationSyncTest.java
PresetReverbTest.java
RemoteControllerTest.java
RemoteVirtualDisplayService.java
.....

Utils.java
VideoDecoderPerfTest.java
VideoEditorTest.java
VideoEncoderTest.java
YUVImage.java

Note : Most of these files are licensed as APACHE LICENSE, VERSION 2.0

http://www.apache.org/licenses/LICENSE-2.0

You might also like