0

HTC Evo 3D の 3D ディスプレイの動作原理を理解したいです。ただし、コードと HTCDev のチュートリアルはこれについては役に立ちません。ヘッダーの SEI FPA ビットは、次のように手動で指定された選択をオーバーライドすると言われています。

public void surfaceChanged(SurfaceHolder surfaceholder, int i, int j, int k) {
    holder = surfaceholder;
    enableS3D(true, holder.getSurface()); // note SEI FPA flag in content
                                          // overrides this
}

再生ビデオ コード:

private void playVideo() {
    release();
    fileName = "HTCDemo.mp4";
    try {
        mediaPlayer = new MediaPlayer();
        final AssetFileDescriptor afd = getAssets().openFd(fileName);
        mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),
                afd.getLength());
        mediaPlayer.setDisplay(holder);
        mediaPlayer.prepare();
        mediaPlayer.setOnPreparedListener(this);
        mediaPlayer.setOnVideoSizeChangedListener(this);
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    } catch (Exception e) {
        Log.e(TAG, Log.getStackTraceString(e));
    }
}

この時点で、ヘッダー内の SEI FPA ビットのどこにあるのかを追跡できませんでした。必要なコード部分を表示するためのヘルプが必要です。前もって感謝します。

4

1 に答える 1

1

ヘッダー自体の SEI FPA ビットを解析する必要がありますか? それはこの API の範囲外です。前述のように、コーデックはこれを解析して S3D 設定を有効 (およびオーバーライド) します。

概要では、x264 などのサードパーティ ツールを使用して、このビットを既存のコンテンツに追加する方法について説明しています。

ファイルヘッダーの解析が実行時に必要な場合は、x264 のコードを参照することをお勧めします。

于 2012-07-31T19:39:46.950 に答える