X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mixer.cpp;h=02f4dd29c33e3afbf1b09fb8f75cfa528d195fb1;hb=5c560f35dea9f3aa5f13c42f4a0112a4d05f2152;hp=b6824d51ef3911034ac700d1a4a2295e3d57fa1b;hpb=196392c483a9cbf7fd7b572d9242aa283031453f;p=nageru diff --git a/mixer.cpp b/mixer.cpp index b6824d5..02f4dd2 100644 --- a/mixer.cpp +++ b/mixer.cpp @@ -74,7 +74,6 @@ void insert_new_frame(RefCountedFrame frame, unsigned field_num, bool interlaced } } - } // namespace Mixer::Mixer(const QSurfaceFormat &format, unsigned num_cards) @@ -146,8 +145,6 @@ Mixer::Mixer(const QSurfaceFormat &format, unsigned num_cards) cards[card_index].usb->start_bm_capture(); } - //chain->enable_phase_timing(true); - // Set up stuff for NV12 conversion. // Cb/Cr shader. @@ -159,7 +156,8 @@ Mixer::Mixer(const QSurfaceFormat &format, unsigned num_cards) "void main() { \n" " gl_FragColor = texture2D(cbcr_tex, tc0); \n" "} \n"; - cbcr_program_num = resource_pool->compile_glsl_program(cbcr_vert_shader, cbcr_frag_shader); + vector frag_shader_outputs; + cbcr_program_num = resource_pool->compile_glsl_program(cbcr_vert_shader, cbcr_frag_shader, frag_shader_outputs); r128.init(2, OUTPUT_FREQUENCY); r128.integr_start(); @@ -387,10 +385,8 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode, check_error(); glBindBuffer(GL_PIXEL_UNPACK_BUFFER_ARB, pbo); check_error(); - glFlushMappedBufferRange(GL_PIXEL_UNPACK_BUFFER, 0, video_frame.size); + glMemoryBarrier(GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT); check_error(); - //glMemoryBarrier(GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT); - //check_error(); glBindTexture(GL_TEXTURE_2D, userdata->tex_cbcr[field]); check_error(); @@ -561,6 +557,7 @@ void Mixer::thread_func() Theme::Chain theme_main_chain = theme->get_chain(0, pts(), WIDTH, HEIGHT, input_state); EffectChain *chain = theme_main_chain.chain; theme_main_chain.setup_chain(); + //theme_main_chain.chain->enable_phase_timing(true); GLuint y_tex, cbcr_tex; bool got_frame = h264_encoder->begin_frame(&y_tex, &cbcr_tex);