Suche senden
Hochladen
Stagefright入門
•
Als ODP, PDF herunterladen
•
1 gefällt mir
•
4,003 views
L
l_b__
Folgen
横浜Androidプラットフォーム部第13回勉強会で発表した資料です。
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 34
Jetzt herunterladen
Empfohlen
Stagefright入門
Stagefright入門
l_b__
第8回Unity勉強会 Unityサウンド入門編 と サウンドワークショップ事例 Tech buzz8 Unity Study 20120927 tanaka
第8回Unity勉強会 Unityサウンド入門編 と サウンドワークショップ事例 Tech buzz8 Unity Study 20120927 tanaka
Takashi Tanaka
20分で理解するdisplaysystem
20分で理解するdisplaysystem
magoroku Yamamoto
Elog and Ebuild Phase Hook
Elog and Ebuild Phase Hook
Yasuhiro Asaka
「Adx2 LE」Unity活用編 初~中級編
「Adx2 LE」Unity活用編 初~中級編
Takaaki Ichijo
ラズパイオーディオで学ぶシステム構築入門
ラズパイオーディオで学ぶシステム構築入門
VirtualTech Japan Inc./Begi.net Inc.
ソフトシンセを作りながら学ぶPythonプログラミング
ソフトシンセを作りながら学ぶPythonプログラミング
Ransui Iso
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
Atsushi Odagiri
Empfohlen
Stagefright入門
Stagefright入門
l_b__
第8回Unity勉強会 Unityサウンド入門編 と サウンドワークショップ事例 Tech buzz8 Unity Study 20120927 tanaka
第8回Unity勉強会 Unityサウンド入門編 と サウンドワークショップ事例 Tech buzz8 Unity Study 20120927 tanaka
Takashi Tanaka
20分で理解するdisplaysystem
20分で理解するdisplaysystem
magoroku Yamamoto
Elog and Ebuild Phase Hook
Elog and Ebuild Phase Hook
Yasuhiro Asaka
「Adx2 LE」Unity活用編 初~中級編
「Adx2 LE」Unity活用編 初~中級編
Takaaki Ichijo
ラズパイオーディオで学ぶシステム構築入門
ラズパイオーディオで学ぶシステム構築入門
VirtualTech Japan Inc./Begi.net Inc.
ソフトシンセを作りながら学ぶPythonプログラミング
ソフトシンセを作りながら学ぶPythonプログラミング
Ransui Iso
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
Atsushi Odagiri
Lithium Labo #1
Lithium Labo #1
Yusuke Ando
debugging server with strace
debugging server with strace
Yoshinari Takaoka
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
Etsuji Nakai
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
UnityTechnologiesJapan002
Nio2
Nio2
Appresso Engineering Team
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
Yasunori Horikoshi
Inside winnyp
Inside winnyp
FFRI, Inc.
VSTiつくるよゼミ
VSTiつくるよゼミ
y3eadgbe
○○大学の本当にあった怖い話
○○大学の本当にあった怖い話
idkqh7 Nishino
談話と特殊効果 #1
談話と特殊効果 #1
幸雄 村上
DTMF — DTMF と自作アプリの軌跡 #yidev
DTMF — DTMF と自作アプリの軌跡 #yidev
Tomohiro Kumagai
ラズパイオーディオで学ぶLinuxシステム構築
ラズパイオーディオで学ぶLinuxシステム構築
VirtualTech Japan Inc./Begi.net Inc.
組み込みシステムのセキュリティ
組み込みシステムのセキュリティ
FFRI, Inc.
Yapf2013
Yapf2013
l_b__
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグ
l_b__
Open binder
Open binder
l_b__
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)
l_b__
ABS2015 のセッション紹介
ABS2015 のセッション紹介
l_b__
PF開発に使えるAOSPのツール達
PF開発に使えるAOSPのツール達
l_b__
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
Intentの概要
Intentの概要
l_b__
Android デバッグ小ネタ
Android デバッグ小ネタ
l_b__
Weitere ähnliche Inhalte
Was ist angesagt?
Lithium Labo #1
Lithium Labo #1
Yusuke Ando
debugging server with strace
debugging server with strace
Yoshinari Takaoka
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
Etsuji Nakai
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
UnityTechnologiesJapan002
Nio2
Nio2
Appresso Engineering Team
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
Yasunori Horikoshi
Inside winnyp
Inside winnyp
FFRI, Inc.
VSTiつくるよゼミ
VSTiつくるよゼミ
y3eadgbe
○○大学の本当にあった怖い話
○○大学の本当にあった怖い話
idkqh7 Nishino
談話と特殊効果 #1
談話と特殊効果 #1
幸雄 村上
DTMF — DTMF と自作アプリの軌跡 #yidev
DTMF — DTMF と自作アプリの軌跡 #yidev
Tomohiro Kumagai
ラズパイオーディオで学ぶLinuxシステム構築
ラズパイオーディオで学ぶLinuxシステム構築
VirtualTech Japan Inc./Begi.net Inc.
組み込みシステムのセキュリティ
組み込みシステムのセキュリティ
FFRI, Inc.
Was ist angesagt?
(13)
Lithium Labo #1
Lithium Labo #1
debugging server with strace
debugging server with strace
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
Nio2
Nio2
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
Inside winnyp
Inside winnyp
VSTiつくるよゼミ
VSTiつくるよゼミ
○○大学の本当にあった怖い話
○○大学の本当にあった怖い話
談話と特殊効果 #1
談話と特殊効果 #1
DTMF — DTMF と自作アプリの軌跡 #yidev
DTMF — DTMF と自作アプリの軌跡 #yidev
ラズパイオーディオで学ぶLinuxシステム構築
ラズパイオーディオで学ぶLinuxシステム構築
組み込みシステムのセキュリティ
組み込みシステムのセキュリティ
Andere mochten auch
Yapf2013
Yapf2013
l_b__
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグ
l_b__
Open binder
Open binder
l_b__
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)
l_b__
ABS2015 のセッション紹介
ABS2015 のセッション紹介
l_b__
PF開発に使えるAOSPのツール達
PF開発に使えるAOSPのツール達
l_b__
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
Intentの概要
Intentの概要
l_b__
Android デバッグ小ネタ
Android デバッグ小ネタ
l_b__
Android,Brillo,ChromeOS
Android,Brillo,ChromeOS
l_b__
Andere mochten auch
(10)
Yapf2013
Yapf2013
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグ
Open binder
Open binder
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)
ABS2015 のセッション紹介
ABS2015 のセッション紹介
PF開発に使えるAOSPのツール達
PF開発に使えるAOSPのツール達
Androidの新ビルドシステム
Androidの新ビルドシステム
Intentの概要
Intentの概要
Android デバッグ小ネタ
Android デバッグ小ネタ
Android,Brillo,ChromeOS
Android,Brillo,ChromeOS
Kürzlich hochgeladen
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Kürzlich hochgeladen
(11)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Stagefright入門
1.
Stagefright 入門 ~
Android Multimedia~ 横浜 Android プラットフォーム部 第13回勉強会 2011/9/19 @ l_b__
2.
3.
ソース自体は Eclair から入っていたが、正式採用は
Gingerbread
4.
意味は「舞台負け」「気後れ」「舞台あがり」(研究社新英和中辞典より)
5.
6.
Uri myUri =
....; // initialize Uri here
7.
MediaPlayer mediaPlayer =
new MediaPlayer();
8.
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
9.
mediaPlayer.setDataSource(getApplicationContext(), myUri);
10.
mediaPlayer.prepare();
11.
mediaPlayer.start();
12.
13.
コアである MediaPlayer.java の実行ステップ数450行!
14.
15.
で、 JNI を通した呼び先が
Stagefright。
16.
17.
しかし ffmpeg はライセンスに
GPL を採用。
18.
しかも...
19.
Hall of Shame
20.
21.
で、 ffmpeg はあきらめ、他のエンジンを探したらしい。
22.
そして採用されたのが PacketVideo 社の
CORE をオープンソース化した OpenCore。
23.
以後、 Froyo まで/
external/opencore の下に存在。
24.
25.
開発向けガイドなどのドキュメント類が/external/opencore/doc配下にある。
26.
OpenCoreには一つ面白い特徴が。
27.
28.
29.
30.
OpenGL,OpenCL,OpenVG,OpenSL,OpenKODE,WebGL,EGL,WebCL,OpenWF etc etc.
31.
OpenAL が Khronos
策定で無いのをさっき知ったのはここだけの話です。
32.
33.
OpenMAXにはDL(Development Layer)、IL、AL(Application Layer)があり、ILはコーデックを叩きやすくするAPIが定義されている。
34.
OpenMAX IL http://pc.watch.impress.co.jp/docs/2004/0729/kaigai104.htm
から
35.
36.
Stagefrightが公開されたのはEclairから。
37.
38.
動画再生はファイル/ストリームからコンテナ形式に従ってフレームを取り出し、デコードして取り出した画像を画面表示すること。
39.
40.
前の I フレーム/
P フレームを参照して復号する P フレーム
41.
42.
43.
サンプリング周波数単位で、音圧を変換した量子化ビットを記録したもの。
44.
サンプリング周波数は音声をどの頻度でデータ化するかをHzで表したもの。
45.
量子化ビット(ビット深度)はどの程度の精度で音圧を記録するか。
46.
47.
データサイズは1秒辺り44100x2byte(=16bit)x2(ch)=176400byte
48.
このデータをコーデックでエンコード・デコードする。
49.
50.
ファイル/ストリームがどのコンテナ形式かをチェックし、対応するDataSource/MediaSourceに格納
51.
52.
デコードしたフレームをSurface/AudioTrackに設定してSurfaceFlinger/AudioFlingerに渡して再生する(Rendrer)
53.
StageFrightを簡単な図で http://events.linuxfoundation.org/events/embedded-linux-conference/garcia の資料http://elinux.org/images/5/52/Elc2011_garcia.pdfから
54.
55.
56.
57.
58.
OpenMAX IL の使い方は
Bellagio( http://omxil.sourceforge.net/)が詳しく 、サンプルソースがある。
59.
/ external/opencore/doc にある開発ガイドにも説明あり。
60.
以下 openmax_call_sequences.pdf から抜粋
61.
62.
コンポーネント名から機能(何のCodecか)を取得。
63.
64.
コンポーネントのパラメータ取得
65.
66.
この後、コンポーネントの状態をLoaded->Idle->Executingにする。
67.
68.
69.
70.
画像データは必要ならスケーリング、画像フォーマット(YUV->RGB)変換を行い、Surfaceを使ってSurfaceFlingerで描画。
71.
音声データはAudioTrackを使ってAudioFlingerで再生。
72.
http://freepine.blogspot.com/2010/01/overview-of-stagefrighter-player.html Stagefrightの構成図
73.
74.
オレンジがOpenMAX ILの実装部分。
75.
水色がレンダリング処理部分。
76.
赤が全体を制御する機能部分。
77.
78.
StagefrightにはOpenMAX DLというオープンスタンダードが使われています。
79.
80.
なので、Android標準で対応していないフォーマットの動画・音声も頑張ればHWデコードをサポートした形で自作アプリから再生できます。 以上です。
Jetzt herunterladen