問題タブ [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.
android - Android での OpenMAX DL (開発レイヤー) のサポート
AndroidでOpenMAX DLライブラリを使用することは可能ですか? AFAIK android 2.2 は、おそらく OpenMAX 標準のこの部分を実装していない OpenCore を使用しています。VisualOn は数か月前に OHA に参加し、その VOME は OpenMAX を完全に実装しています。VOME が現在 Android 2.3 の一部であるかどうかは誰にもわかりませんか? もしそうなら、それを使用する方法の例はありますか? 最適化された FFT 関数の使用に特に興味があります。
directshow - directshow を OpenMAX 準拠にする方法
directshow を OpenMAX 準拠にする方法を教えてください。directshow を使用すると、メディア インフラストラクチャの移植性が得られません。私はopenMAXの統合レイヤーで何かをしなければなりません。役立つソースを提供してください。
assembly - Windows組み込みデバイスでopenMaxライブラリを構築する方法
Windows に埋め込まれたコンパクト 7 (NEON を使用した Armv7 がサポートされています) で、ネオンの最適化を使用して OpenMax を構築しようとしています。現時点では、このエラーに問題があります:
windows armasm.exe は、「.S16」の意味を理解できません。解決策または別の互換性のあるコンパイラはありますか?
android - Android StageFright ソフトウェア コーデックでの OMX インターフェイスのサポート
Android ソフトウェア コーデック (例: OMX.PV.mpeg4enc
) は OpenMAX (OMX) インターフェイスをサポートしていますか? たとえばOMX_FillThisBuffer
、OMX_EmptyThisBuffer
などの標準の OMX 機能をサポートしていますか? それとも、ハードウェア デコーダのみが OMX インターフェイスをサポートしていますか?
c++ - GPU デインターレース
OpenGL を使用して色変換、スケーリング、変換などのビデオ処理を行うアプリケーションがあります。私は主に BGRA (1xGL_BGRA) または YUVA (4xGL_R) ビデオ、つまりアルファを含むものを扱っています。
次に、高品質のインターレース解除も行いたいと思います。Nvidia は、"PureVideo" 機能を通じて高品質のハードウェア アクセラレーションによるインターレース解除をサポートしていることに気付きました。基本的に私がやりたいことは、x 数のカラー チャネルを持つインターレースされた OpenGL テクスチャを送信し、2 つのプログレッシブ テクスチャを取得することです。
私の質問は、この機能に最も簡単かつ最も効率的にアクセスする方法です (おそらく OpenGL との相互運用で)。
私はDXVAとOpenMaxを見てきましたが、どちらも再生に重点を置いているようです(デインターレース処理ではありません。つまり、フレームレートなどの関連性のないオプションを設定する必要があります...)およびアルファなしフォーマット...
android - 標準のAndroidH264ソフトウェアエンコーダーをffmpegベースのエンコーダーに置き換える
Android ICS以降では、新しいOpenMax IL APIバージョンが使用されており、古いバイナリブロブが役に立たない/使用されていない状態になっています。これにより、ICSを正常に実行している古いデバイスでは、ビデオの再生が壊れてしまいます(たとえば、YouTube HQやIMBD)。これは、同じデバイスでffmpegが実行できることと比較すると、Androidのフォールバックソフトウェアデコーダーが機能しないためです(MXPlayer + arm6vfpをテストしました)。 ffmpegと720pの映画は素晴らしい再生でした)。
私はAndroidのソースコードを掘り下げて、ffmpegライブラリの素晴らしさを使用できるようにするためにコードを追加/置換できる場所と正確な内容を確認しようとしています。問題は、たとえばYouTubeアプリでビデオをデコードするためにどのコードが使用されているのか、またはそれがどのように決定されるのかが正確にわからないことです。
だから私が知る限り、私には2つの選択肢があります。
現在使用されているソフトウェアデコーダーを把握し、その外部インターフェイスをffmpegにラップして、現在使用されている低速のソフトウェアデコーダーを効果的に置き換えてみてください。最終結果は単一になります。そのため、デバイスにプッシュできます。
Androidをだましてffmpegに基づいたOMXライブラリを考えさせる方法を理解し(私はAndroid用に正常にビルドしました:limoa)、これを考慮されるライブラリのリストのどこかに追加します(またはより良い:使用できないハードウェアコーデックを置き換えます)。
拡張機能として、これを介してカムコーダーのビデオエンコーディングも機能させたいので、真の統合ソリューションが非常に望まれます。問題は、どのように、どこで、そして何をするかということです。Androidのソースツリーを検索すると、さまざまな場所で「H264」や関連するものが多数表示されます。可能な限り低くて単純なものが必要なので、decode(buffer)
ffmpeg(libavcodec)を使用するために架空の関数呼び出しをラップするだけです。
c++ - C ++を使用してopenmaxでビデオを再生する
ローカルドライブにあるビデオファイルを再生するためのopenmaxのCコードの例を教えてください。以下のリンクでヘッダーファイルを見つけることができます - http://www.khronos.org/registry/omxal/
ありがとう。
android - HW rendering to Android Surface using OpenMAX IL
I would like to utilize OMX HW renderer as described here: http://www.slideshare.net/RaghavanVenkateswaran/iomx-in-android
OS: Android 2.3.4
System libaries used: libmedia, libbinder, libstagefright, libutils
OMX components on my device:
componentName: OMX.ITTIAM.AAC.decode, componentRole: audio_decoder.aac
componentName: OMX.ITTIAM.AAC.encode, componentRole: audio_encoder.aac
componentName: OMX.TI.720P.Decoder, componentRole: video_decoder.mpeg4
componentName: OMX.TI.720P.Decoder, componentRole: video_decoder.avc
componentName: OMX.TI.720P.Encoder, componentRole: video_encoder.mpeg4
componentName: OMX.TI.720P.Encoder, componentRole: video_encoder.avc
componentName: OMX.TI.AAC.decode, componentRole: audio_decoder.aac
componentName: OMX.TI.AAC.encode, componentRole: audio_encoder.aac
componentName: OMX.TI.AMR.decode, componentRole: audio_decoder.amrnb
componentName: OMX.TI.AMR.encode, componentRole: audio_encoder.amrnb
componentName: OMX.TI.Camera, componentRole: camera.yuv
componentName: OMX.TI.JPEG.decoder, componentRole: image_decoder.jpeg
componentName: OMX.TI.JPEG.encoder, componentRole: image_encoder.jpeg
componentName: OMX.TI.MP3.decode, componentRole: audio_decoder.mp3
componentName: OMX.TI.VPP, componentRole: iv_renderer.yuv.overlay
componentName: OMX.TI.Video.Decoder, componentRole: video_decoder.h263
componentName: OMX.TI.Video.Decoder, componentRole: video_decoder.avc
componentName: OMX.TI.Video.Decoder, componentRole: video_decoder.mpeg2
componentName: OMX.TI.Video.Decoder, componentRole: video_decoder.mpeg4
componentName: OMX.TI.Video.Decoder, componentRole: video_decoder.wmv
componentName: OMX.TI.Video.encoder, componentRole: video_encoder.mpeg4
componentName: OMX.TI.Video.encoder, componentRole: video_encoder.h263
componentName: OMX.TI.Video.encoder, componentRole: video_encoder.avc
componentName: OMX.TI.WBAMR.decode, componentRole: audio_decoder.amrwb
componentName: OMX.TI.WBAMR.encode, componentRole: audio_encoder.amrwb
componentName: OMX.TI.WMA.decode, componentRole: audio_decoder.wma
I have done these steps:
1, Passed the Android Surface object through the JNI that way (exactly as in the native MediaPlayer):
JNI (C++):
Surface variable in MMediaPlayer is declared as:
Java:
2, Initialized the IOMX node:
Note: hardcoded values are there only for simplicity and testing purposes
3, Tried to create the OMX Renderer:
which always returns NULL.
Has anybody an idea what’s wrong with that? Am I initializing wrong component? Or there must be followed some special calling sequence? Or something else?
c++ - どこから始めればよいOpenMAXILコンポーネントの作成
ラズベリーパイのビデオ出力を取得して、ちょっとadalightアンビエントライトニングシステムに渡します。XBMCのPI用プレーヤー、omxplayer、デコードおよびその他の機能用のOpenMAXAPIを使用します。
コードを調べると、次のようになります。
m_omx_tunnel_sched.Initialize(&m_omx_sched, m_omx_sched.GetOutputPort(), &m_omx_render, m_omx_render.GetInputPort());
私が理解している限り、これはビデオスケジューラとレンダラー[S]->[R]の間にパイプラインを設定します。
今の私の考えは、グラバーコンポーネントを作成し、それをパイプライン[S]->[G]->[R]にほとんどプラグインしないことです。グラバーはフレームバッファーからピクセルを抽出し、LEDを駆動するデーモンに渡します。
今、私はOpenMAX APIを掘り下げようとしていますが、これはかなり奇妙に思えます。どこから始めればいいですか?それは実行可能なアプローチですか?
よろしくお願いします