単一のプロデューサ、複数コンシューマ カメラのバッファ トランスポート
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
この機能により、キャプチャ セッションがアクティブでカメラ ストリーミングが進行中に、カメラ クライアントが出力サーフェスを動的に追加または削除できる、一連のメソッドが導入されます。新しい出力は、ユーザーが選択した特定の共有カメラ ストリームにマッピングできます。追加したサーフェスは、いつでも削除できます。
これは一般的に、特定のカメラ ストリームに関連するバッファを複数の出力サーフェスで共有することを目的としています。内部参照カウンタは、コンシューマー側で次の処理を行う準備ができるまでバッファを追跡します。すべてのコンシューマーがそれぞれのタスクを完了すると、バッファはキューから除外され、カメラで使用できるようになります。
図 1. バッファ共有
図 1 はシナリオの一例を示しています。カメラサービスの専用共有出力ストリーム内にあるストリーム分割コンポーネントが、カメラ ストリーム 2 によって処理されたバッファに対して、動的な接続または接続解除、参照カウント、管理を行います。
例とソース
この機能のコア実装は、Camera3StreamSplitter
モジュールにあります。この機能に関するドキュメントは、次のデベロッパー ガイドにあります。
実装
この機能はフレームワーク側で実装されるため、Camera HAL 側で実装する必要はありません。
検証
実装は、MultiViewTest モジュールとネイティブ API 用のネイティブ JNI ライブラリの、この機能をカバーする CTS ケースにパスする必要があります。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2024-05-15 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2024-05-15 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2024-05-15 UTC。"]]