質問・問題
Pre-Encoder Frame Position で Raw Video Data のオブザーブできません
回答・解決方法
Video Observer は SDK に対し Post-Capturer、Pre-Renderer、Pre-Encoder の 3 箇所から Raw Video Data をオブザーブするよう指定できますが、デフォルトでは Pre-Encoder でのオブザーブのみ無効となっています (v3.5.1 時点)。
Pre-Encoder Frame Position でもデータをオブザーブしたい場合、IVideoFrameObserver またはそれ同等のクラスを継承する Video Observer クラス内で getObservedFramePosition() が以下の値を返すようオーバーライドを実施し、その Video Observer を registerVideoFrameObserver などを使い SDK に登録してください:
( POSITION_POST_CAPTURER | POSITION_PRE_RENDERER | POSITION_PRE_ENCODER )
関連リンク
Android SDK API:
3.x API
- RtcEngine.registerVideoFrameObserver()
- IVideoFrameObserver,onPreEncodeVideoFrame()
- IVideoFrameObserver.getObservedFramePosition()
4.x API
- RtcEngine.registerVideoFrameObserver()
- IVideoFrameObserver,onPreEncodeVideoFrame()
- IVideoFrameObserver.getObservedFramePosition()
iOS SDK API:
3.x API
4.x API
C++ APIs:
3.x API
- IMediaEngine::registerVideoFrameObserver()
- IVideoFrameObserver::onPreEncodeVideoFrame()
- IVideoFrameObserver::getObservedFramePosition()
4.x API
- IMediaEngine::registerVideoFrameObserver()
- IVideoFrameObserver::onPreEncodeVideoFrame()
- IVideoFrameObserver::getObservedFramePosition()