問題タブ [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.

0 投票する
0 に答える
1240 参照

android - Android での OpenMAX DL (開発レイヤー) のサポート

AndroidでOpenMAX DLライブラリを使用することは可能ですか? AFAIK android 2.2 は、おそらく OpenMAX 標準のこの部分を実装していない OpenCore を使用しています。VisualOn は数か月前に OHA に参加し、その VOME は OpenMAX を完全に実装しています。VOME が現在 Android 2.3 の一部であるかどうかは誰にもわかりませんか? もしそうなら、それを使用する方法の例はありますか? 最適化された FFT 関数の使用に特に興味があります。

0 投票する
1 に答える
228 参照

directshow - directshow を OpenMAX 準拠にする方法

directshow を OpenMAX 準拠にする方法を教えてください。directshow を使用すると、メディア インフラストラクチャの移植性が得られません。私はopenMAXの統合レイヤーで何かをしなければなりません。役立つソースを提供してください。

0 投票する
1 に答える
505 参照

assembly - Windows組み込みデバイスでopenMaxライブラリを構築する方法

Windows に埋め込まれたコンパクト 7 (NEON を使用した Armv7 がサポートされています) で、ネオンの最適化を使用して OpenMax を構築しようとしています。現時点では、このエラーに問題があります:

windows armasm.exe は、「.S16」の意味を理解できません。解決策または別の互換性のあるコンパイラはありますか?

0 投票する
2 に答える
1989 参照

android - Android StageFright ソフトウェア コーデックでの OMX インターフェイスのサポート

Android ソフトウェア コーデック (例: OMX.PV.mpeg4enc) は OpenMAX (OMX) インターフェイスをサポートしていますか? たとえばOMX_FillThisBufferOMX_EmptyThisBufferなどの標準の OMX 機能をサポートしていますか? それとも、ハードウェア デコーダのみが OMX インターフェイスをサポートしていますか?

0 投票する
3 に答える
4099 参照

c++ - GPU デインターレース

OpenGL を使用して色変換、スケーリング、変換などのビデオ処理を行うアプリケーションがあります。私は主に BGRA (1xGL_BGRA) または YUVA (4xGL_R) ビデオ、つまりアルファを含むものを扱っています。

次に、高品質のインターレース解除も行いたいと思います。Nvidia は、"PureVideo" 機能を通じて高品質のハードウェア アクセラレーションによるインターレース解除をサポートしていることに気付きました。基本的に私がやりたいことは、x 数のカラー チャネルを持つインターレースされた OpenGL テクスチャを送信し、2 つのプログレッシブ テクスチャを取得することです。

私の質問は、この機能に最も簡単かつ最も効率的にアクセスする方法です (おそらく OpenGL との相互運用で)。

私はDXVAとOpenMaxを見てきましたが、どちらも再生に重点を置いているようです(デインターレース処理ではありません。つまり、フレームレートなどの関連性のないオプションを設定する必要があります...)およびアルファなしフォーマット...

0 投票する
1 に答える
3679 参照

android - 標準のAndroidH264ソフトウェアエンコーダーをffmpegベースのエンコーダーに置き換える

Android ICS以降では、新しいOpenMax IL APIバージョンが使用されており、古いバイナリブロブが役に立たない/使用されていない状態になっています。これにより、ICSを正常に実行している古いデバイスでは、ビデオの再生が壊れてしまいます(たとえば、YouTube HQやIMBD)。これは、同じデバイスでffmpegが実行できることと比較すると、Androidのフォールバックソフトウェアデコーダーが機能しないためです(MXPlayer + arm6vfpをテストしました)。 ffmpegと720pの映画は素晴らしい再生でした)。

私はAndroidのソースコードを掘り下げて、ffmpegライブラリの素晴らしさを使用できるようにするためにコードを追加/置換できる場所と正確な内容を確認しようとしています。問題は、たとえばYouTubeアプリでビデオをデコードするためにどのコードが使用されているのか、またはそれがどのように決定されるのかが正確にわからないことです。

だから私が知る限り、私には2つの選択肢があります。

  1. 現在使用されているソフトウェアデコーダーを把握し、その外部インターフェイスをffmpegにラップして、現在使用されている低速のソフトウェアデコーダーを効果的に置き換えてみてください。最終結果は単一になります。そのため、デバイスにプッシュできます。

  2. Androidをだましてffmpegに基づいたOMXライブラリを考えさせる方法を理解し(私はAndroid用に正常にビルドしました:limoa)、これを考慮されるライブラリのリストのどこかに追加します(またはより良い:使用できないハードウェアコーデックを置き換えます)。

拡張機能として、これを介してカムコーダーのビデオエンコーディングも機能させたいので、真の統合ソリューションが非常に望まれます。問題は、どのように、どこで、そして何をするかということです。Androidのソースツリーを検索すると、さまざまな場所で「H264」や関連するものが多数表示されます。可能な限り低くて単純なものが必要なので、decode(buffer)ffmpeg(libavcodec)を使用するために架空の関数呼び出しをラップするだけです。

0 投票する
1 に答える
588 参照

c++ - C ++を使用してopenmaxでビデオを再生する

ローカルドライブにあるビデオファイルを再生するためのopenmaxのCコードの例を教えてください。以下のリンクでヘッダーファイルを見つけることができます - http://www.khronos.org/registry/omxal/

ありがとう。

0 投票する
1 に答える
5007 参照

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?

0 投票する
2 に答える
2592 参照

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を掘り下げようとしていますが、これはかなり奇妙に思えます。どこから始めればいいですか?それは実行可能なアプローチですか?

よろしくお願いします