Credit Andrew - fix vorbis audio which was scratchy and ensure aging plugin does...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / filepng.C
index 3b28e0eac5fa145ee8c99b7adc21cf4c9b688d6f..f4b09d7d178f65dd7a473ea2b40aa2217e41a6bb 100644 (file)
@@ -2,6 +2,7 @@
 /*
  * CINELERRA
  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
+ * Copyright (C) 2003-2016 Cinelerra CV contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -229,6 +230,7 @@ int FilePNG::write_frame(VFrame *frame, VFrame *data, FrameWriterUnit *unit)
                                asset->png_use_alpha ?  PNG_COLOR_TYPE_RGB_ALPHA : PNG_COLOR_TYPE_RGB,
                                PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
                        png_write_info(png_ptr, info_ptr);
+                       if( BC_Resources::little_endian ) png_set_swap(png_ptr);
                        png_write_image(png_ptr, output_frame->get_rows());
                        png_write_end(png_ptr, info_ptr);
                        result = 0;
@@ -257,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);
 
@@ -352,6 +360,8 @@ PNGConfigVideo::PNGConfigVideo(BC_WindowBase *parent_window, Asset *asset)
        compression = 0;
        depth8 = 0;
        depth16 = 0;
+// *** CONTEXT_HELP ***
+       context_help_set_keyword("Single File Rendering");
 }
 
 PNGConfigVideo::~PNGConfigVideo()