+ if (global_mixer == nullptr) {
+ return;
+ }
+
+ signal_num = theme->map_signal(signal_num);
+
+ Mixer::BufferedFrame frame = global_mixer->get_buffered_frame(signal_num, 0);
+ const PBOFrameAllocator::Userdata *userdata = (const PBOFrameAllocator::Userdata *)frame.frame->userdata;
+
+ input->set_texture_num(0, userdata->tex_y[frame.field_number]);
+ input->set_texture_num(1, userdata->tex_cbcr[frame.field_number]);
+ input->set_width(userdata->last_width[frame.field_number]);
+ input->set_height(userdata->last_height[frame.field_number]);
+
+ // Hold on to the refcount so that we don't release the input frame
+ // until we're done rendering from it.
+ if (theme->used_input_frames_collector != nullptr) {
+ theme->used_input_frames_collector->push_back(frame.frame);
+ }