این ویژگی مجموعهای از روشها را معرفی میکند که به کلاینتهای دوربین اجازه میدهد سطوح خروجی را به صورت پویا اضافه و حذف کنند، در حالی که جلسه ضبط فعال است و پخش دوربین در حال انجام است. یک خروجی جدید میتواند به یک جریان دوربین مشترک خاص و انتخاب شده توسط کاربر نگاشت شود. پس از اضافه شدن یک سطح، میتوان آن را در هر زمانی حذف کرد.
ایده کلی این است که بافرهای مرتبط با یک جریان دوربین خاص را در چندین سطح خروجی به اشتراک بگذارید. یک شمارنده مرجع داخلی، بافرها را همزمان با آماده شدن برای پردازش بیشتر در سمت مصرفکننده، پیگیری میکند. هنگامی که همه مصرفکنندگان وظایف مربوط به خود را انجام میدهند، بافر از صف خارج شده و برای دوربین در دسترس قرار میگیرد.

شکل ۱. اشتراکگذاری بافر
شکل ۱ یک سناریوی نمونه را نشان میدهد که در آن بافرهای پردازششده توسط جریان ۲ دوربین به صورت پویا متصل و جدا میشوند، مرجع آنها شمارش میشود و توسط مؤلفه تقسیمکننده جریان در داخل یک جریان خروجی مشترک اختصاصی در سرویس دوربین مدیریت میشوند.
مثالها و منابع
پیادهسازی اصلی این ویژگی را میتوان در ماژول Camera3StreamSplitter یافت. مستندات مربوط به این ویژگی را میتوان در مرجع توسعهدهنده یافت:
پیادهسازی
هیچ پیادهسازی در سمت دوربین HAL لازم نیست زیرا این ویژگی در سمت چارچوب پیادهسازی شده است.
اعتبارسنجی
پیادهسازی شما باید موارد CTS را که این ویژگی را از ماژول MultiViewTest و کتابخانه JNI بومی برای API بومی پوشش میدهند، با موفقیت پشت سر بگذارد.