| 233 | } |
| 234 | |
| 235 | void video_encoder::present_image(vk::Image y_cbcr, vk::SemaphoreSubmitInfo info, uint64_t frame_index) |
| 236 | { |
| 237 | // Wait for encoder to be done |
| 238 | present_slot = (present_slot + 1) % num_slots; |
| 239 | state[present_slot].wait(busy); |
| 240 | if (idr->should_skip(frame_index)) |
| 241 | { |
| 242 | state[present_slot] = skip; |
| 243 | return; |
| 244 | } |
| 245 | state[present_slot] = busy; |
| 246 | return present_image(y_cbcr, info, present_slot, frame_index); |
| 247 | } |
| 248 | |
| 249 | void video_encoder::encode(wivrn_session & cnx, |
| 250 | const to_headset::video_stream_data_shard::view_info_t & view_info, |
no test coverage detected