2012-07-31 1 views
0

HTC Evo 3D의 3D 디스플레이의 작동 원리를 이해하고자합니다. 그러나 코드와 HTCDev의 자습서는이 문제에 도움이되지 않습니다.SEI FPA를보고 Android MediaPlayer가 3D 디스플레이를 어떻게 결정합니까?

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 비트 같은 손으로 제공되는 선택을 무시했다고한다 헤더의 SEI FPA 비트를 찾습니다. 필요한 코드 부분을 보여주기 위해 도움이 필요합니다. 미리 감사드립니다.

답변

1

헤더 자체에서 SEI FPA 비트를 구문 분석해야합니까? 이것이이 API의 범위를 벗어납니다. 언급 한 바와 같이, 코덱은 S3D 설정을 활성화 (및 재정의)하기 위해이를 구문 분석합니다.

개요에서는 x264와 같은 타사 도구를 사용하여이 비트를 기존 콘텐츠에 추가하는 방법에 대해 설명했습니다.

런타임시 파일 헤더를 구문 분석하는 데 도움이 필요하면 x264 코드를 살펴 보는 것이 좋습니다.

+0

디스플레이를 SEI FPA 플래그로 덮어 쓰지 않으려합니다. 즉, FPA를 보지 않고 S3D 설정을 활성화 또는 비활성화하고 싶습니다. SEI FPA 플래그가 첫 번째 단락의 MediaPlayer 코덱의 코덱 부분에서 구문 분석된다고 가정합니다. 그리고이 비트를 비디오에 추가하는 방법을 알고 있지만 SEI FPA 플래그를 불가능하게 설정하는 라이브 스트림을 사용하려고합니다. – peagasus

관련 문제