問題タブ [openmax]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - OpenMAX と NDK: サーフェスはどこで入手できますか?
ビデオを表示するアプリケーションを作成しています。このアプリケーションは、Android NDK と JNI を使用して作成されています。
OpenMAXを使いたいです。OpenMAX の例では、Java からサーフェスを取得しますが、レンダリングするサーフェスをどこで取得できますか? applicationContext を介してのみ nativeWindow を取得できます。
例:
しかし、私は表面を持っていません。
ありがとう
c++ - 可変長構造
OMX は、次の定義を持つ構造体を提供します
設定する定数文字配列があります。
私が理解している限り、memcopy ファイル名を struct.contentURI に設定し、それに応じて struct.size を更新する必要があります。どうすればいいですか?
よろしくお願いします
decoding - オーディオデコーダコンポーネントにバッファを割り当てた後のOMX_ErrorUnsupportedSettingエラーイベント
Raspberry Piのオーディオデコーダーコンポーネントにバッファーを提供した後、OMX_ErrorUnsupportedSettingエラーイベントが発生します。パラメータを変更するために頭に浮かんだことは何でも試しましたが、それでもコールバックが到着します。OpenMAX標準に、そのイベントの原因となっているパラメーターを調査する方法はありますか?
これは私がしていることです:
- コンポーネントを作成しました。
- すべてのポートを無効にしました。
- 状態をアイドルに設定します。
- OMX_AUDIO_CodingAACを使用するようにポート形式を設定します。
- OMX_AUDIO_CodingAACを使用するようにポート定義を設定します。それぞれ6144バイトの4つのバッファ。
- プロファイルを次の値に設定します(必要かどうかはわかりません)。profileType.nSampleRate= 48000; profileType.nFrameLength = 0; profileType.nChannels = 6; profileType.nBitRate = 288000; profileType.nAudioBandWidth = 0; bCodecConfigIsCompleteを使用してOMX_PARAM_CODECCONFIGTYPEを1に設定します。
- OMX_IndexParamBrcmDecoderPassThroughをtrueに設定します。
すべてのバッファがコンポーネントに送信された後、突然OMX_ErrorUnsupportedSettingイベントが発生し、ポートが有効になりません。私が間違っている可能性があること、またはエラーの原因となっているパラメーターをどのように検査できるかについてのアイデアはありますか?
android - OpenMAX for Android NDK を使用してライブ ビデオ/オーディオをサーバーにストリーミングできますか? 例?
OpenMax には「Data Sink」という概念があります。
仕様はそれらについて述べています:
仕様からのサンプルコードを次に示します。
ただし、他のいくつかの場所では、次のように述べています。
これらのURI /データシンクを備えたOpenMaxを使用して、マイク/カメラからライブデータをキャプチャしてサーバーにストリーミングするストリーミングアプリを実装できるかどうかを知っている人はいますか? 例?
video - OpenMax read_media
read_mediaコンポーネントhttp://home.nouwen.name/RaspberryPi/doc...media.htmlを使用してハードウェア読み取りメディアファイルを試します。最初にコンポーネントを作成します。
次に、パラメータを作成します。
次に、メモリを割り当て、ファイルにuriを設定します。
そして最後に、read_mediaコンポーネントにparamを設定します。
しかし、提出されたコンポーネントのパラメータを設定してください、何が問題なのですか?何か助けてもらえますか?
video - omxplayer AVパケット
こんにちは、 GitHubの OpenMax コンポーネントと hello_video の例を使用してビデオをデコードしようとしています。私は単純に video.c を編集し、AVFormat の「main frame while」を置き換えます。(私はmp4、mov、mkvを読む必要があります....)。したがって、ffmpegで生成したtest.h264ファイルと他のファイルでは、すべて正常に動作し、画面上で映画を見ることができます。
しかし、test.mp4 ファイルを開くと、画面に画像が表示されず、コンソールにログインすると、データが正しく読み取られ、ビデオ デコーダの入力バッファに正しく解析されたことが示されます。2回目のテストで画面に何も表示されない理由を説明できますか?
arm - ARMNEONOpenMAx番号のベンチマーク
私は現在、さまざまなコンパイラ(DS-5およびIARを試した)とさまざまなライブラリ(Openmax、NE10)を使用して、Cortex-A8プロセッサのパフォーマンスをベンチマークする作業を行っています。私は特に、NEONユニットが比較したときに何が達成できるかを確認するために取り組んでいます1.ARMのみ2.ARM + VFPv3
Openmaxには、2つのバージョンがあります。1。NEON用にカスタマイズされています。2。ArmプロセッサのサンプルコードOpenMaxを使用して次の表を作成しました。予想通り、NEONコードのパフォーマンスは比類のないものです。
https://docs.google.com/file/d/0B318pI7x2QVceWRDTE5FQk8zcVk/edit
NE10は、Cortexで現在利用可能な他の唯一の信号処理ライブラリです-AIはまだNE10ライブラリで作業中です。
これらの数値を他のプロセッサと比較する方法はありますか?またはプロセッサを比較するためのプログラム標準プログラムはありますか?
以下は、Openmaxapiへのリンクです http://www.khronos.org/files/openmax_dl_spec_1_0_2.pdf
android - openmax AL フレームワークを使用して mp4 ファイルを再生する
openmax ALフレームワークとアンドロイドバッファキューを使用してmp4ファイルを再生するには? Androidバッファキューは.tsデータのみを供給したと思います
コードは次のとおりです。
次に、メディア プレーヤー オブジェクトを作成します。
しかし、MPEG-2 TS データが供給されていない XA_DATALOCATOR_ANDROIDBUFFERQUEUE データ ソースでプレーヤーを作成できないというエラーが表示されます。
android - Android MediaCodec AAC エンコーダー
MediaCodec
API レベル 16 以降の Android SDK が提供するクラスをエンコーダーと共に使用して、OMX.SEC.aac.enc
オーディオをファイルにエンコードします。AudioRecord
クラスからオーディオ入力を取得します。AudioRecord
クラスの私のインスタンスは次のように構成されています。
インスタンスから生データを再生できるAudioRecord
ので、問題はありません。
AudioRecord
インスタンスからの出力をインスタンスに書き込み、ByteBuffer
エンコーダーから利用可能な入力バッファーに渡します。エンコーダからの出力は、SD カード上のファイルに書き込まれます。
これらは私のMediaCodec
インスタンスの設定パラメータです:
VLC は、私の aac ファイルにストリームがないことを教えてくれます。コマンドFFMPEG -i @filename@
を実行すると、次のエラーが表示されます: Invalid data found when processing input . 私がテストしたメディアプレーヤーのどれも私のファイルを再生できません。
ファイルを再生できないのはなぜですか? OpenMAX
エラーは発生LogCat
せず、エンコード時にアプリケーションがクラッシュすることもありません。同じ原理で動作するビデオエンコーダーを作成しましたが、動作します。
AudioRecord
これは、インスタンスからバッファにデータを読み取るコードです。
エンコーダーの関数 add は、あるバッファーの内容を別のバッファーにコピーします。
次のコードは、エンコーダーの入力バッファーを占有するために使用されます。
次のように、エンコーダーからの出力をローカル ファイルに書き込みます。