Credit Andrew - fix vorbis audio which was scratchy and ensure aging plugin does...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / filepng.C
index 2386068be07d2a453d7561abff7f5b386d670e4e..f4b09d7d178f65dd7a473ea2b40aa2217e41a6bb 100644 (file)
@@ -259,7 +259,13 @@ int FilePNG::read_frame(VFrame *output, VFrame *input)
 
        //printf("FilePNG::read_frame 1 %d %d\n", native_cmodel, output->get_color_model());
        png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0);
+       if(!png_ptr) return 0;
        info_ptr = png_create_info_struct(png_ptr);
+       if(!info_ptr) return 0;
+       if (setjmp(png_jmpbuf(png_ptr))) {
+       png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+       return 0;
+       }
        png_set_read_fn(png_ptr, input, (png_rw_ptr)read_function);
        png_read_info(png_ptr, info_ptr);