]> git.sesse.net Git - movit/blobdiff - ycbcr_input.cpp
Move the GL_UNPACK_ALIGNMENT setting into the texture creation, so that clients won...
[movit] / ycbcr_input.cpp
index a73518d4ad2797f274f2dad2cac6ebf6a281a0ff..8d58c7de8ab10c6d09adf68fa0bc8ef467f8be51 100644 (file)
@@ -17,6 +17,9 @@ YCbCrInput::YCbCrInput(const ImageFormat &image_format,
          width(width),
          height(height)
 {
+       pbos[0] = pbos[1] = pbos[2] = 0;
+       texture_num[0] = texture_num[1] = texture_num[2] = 0;
+
        pitch[0] = pitch[1] = pitch[2] = width;
 
        assert(width % ycbcr_format.chroma_subsampling_x == 0);
@@ -32,8 +35,23 @@ YCbCrInput::YCbCrInput(const ImageFormat &image_format,
        register_int("needs_mipmaps", &needs_mipmaps);
 }
 
+YCbCrInput::~YCbCrInput()
+{
+       if (pbos[0] != 0) {
+               glDeleteBuffers(3, pbos);
+               check_error();
+       }
+       if (texture_num[0] != 0) {
+               glDeleteTextures(3, texture_num);
+               check_error();
+       }
+}
+
 void YCbCrInput::finalize()
 {
+       glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+       check_error();
+
        // Create PBOs to hold the textures holding the input image, and then the texture itself.
        glGenBuffers(3, pbos);
        check_error();