]> git.sesse.net Git - movit/blobdiff - ycbcr_input.cpp
Deallocation in YCbCrInput.
[movit] / ycbcr_input.cpp
index a73518d4ad2797f274f2dad2cac6ebf6a281a0ff..268abcb35059cc722ea7fc1f3495a9aebda0ad02 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,6 +35,18 @@ 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()
 {
        // Create PBOs to hold the textures holding the input image, and then the texture itself.