]> git.sesse.net Git - nageru/blobdiff - pbo_frame_allocator.cpp
Open up for inputs that are different from the native resolution. No deinterlacing...
[nageru] / pbo_frame_allocator.cpp
index 15fcb61d37b8cefad61df15f26b165796e91b528..613506dcb61b1eb16c4bdc92dbdf88141a95db39 100644 (file)
@@ -1,5 +1,6 @@
 #include "pbo_frame_allocator.h"
 
+#include <stdbool.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <cstddef>
@@ -58,6 +59,9 @@ PBOFrameAllocator::PBOFrameAllocator(size_t frame_size, GLuint width, GLuint hei
                glTexImage2D(GL_TEXTURE_2D, 0, GL_RG8, width / 2, height, 0, GL_RG, GL_UNSIGNED_BYTE, NULL);
                check_error();
 
+               userdata[i].last_width = width;
+               userdata[i].last_height = height;
+
                freelist.push(frame);
        }
        glBindBuffer(buffer, 0);
@@ -103,11 +107,16 @@ FrameAllocator::Frame PBOFrameAllocator::alloc_frame()
                freelist.pop();  // Meh.
        }
        vf.len = 0;
+       vf.overflow = 0;
        return vf;
 }
 
 void PBOFrameAllocator::release_frame(Frame frame)
 {
+       if (frame.overflow > 0) {
+               printf("%d bytes overflow after last (PBO) frame\n", int(frame.overflow));
+       }
+
        std::unique_lock<std::mutex> lock(freelist_mutex);
        freelist.push(frame);
        //--sumsum;