]> git.sesse.net Git - nageru/blobdiff - mixer.cpp
Various cosmetics in the readback code.
[nageru] / mixer.cpp
index 1367f303a7b73f3a404a641fd9fd691dde521601..b3950a1c829f7f7ebfd7ab355af8488597a56350 100644 (file)
--- a/mixer.cpp
+++ b/mixer.cpp
@@ -30,6 +30,7 @@
 #include "bmusb/bmusb.h"
 #include "context.h"
 #include "defs.h"
+#include "flags.h"
 #include "h264encode.h"
 #include "pbo_frame_allocator.h"
 #include "ref_counted_gl_sync.h"
@@ -132,7 +133,7 @@ Mixer::Mixer(const QSurfaceFormat &format, unsigned num_cards)
        display_chain->set_dither_bits(0);  // Don't bother.
        display_chain->finalize();
 
-       h264_encoder.reset(new H264Encoder(h264_encoder_surface, WIDTH, HEIGHT, &httpd));
+       h264_encoder.reset(new H264Encoder(h264_encoder_surface, global_flags.va_display, WIDTH, HEIGHT, &httpd));
 
        for (unsigned card_index = 0; card_index < num_cards; ++card_index) {
                printf("Configuring card %d...\n", card_index);
@@ -440,6 +441,8 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode,
                check_error();
                glBindTexture(GL_TEXTURE_2D, 0);
                check_error();
+               glBindBuffer(GL_PIXEL_UNPACK_BUFFER_ARB, 0);
+               check_error();
                GLsync fence = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, /*flags=*/0);
                check_error();
                assert(fence != nullptr);
@@ -673,7 +676,7 @@ void Mixer::thread_func()
                        h264_encoder->shutdown();
                        httpd.close_output_file();
                        httpd.open_output_file(filename.c_str());
-                       h264_encoder.reset(new H264Encoder(h264_encoder_surface, WIDTH, HEIGHT, &httpd));
+                       h264_encoder.reset(new H264Encoder(h264_encoder_surface, global_flags.va_display, WIDTH, HEIGHT, &httpd));
                }
 
 #if 0