<div dir="ltr"><div class="gmail_default" style="font-size:small">Andrew,</div><div class="gmail_default" style="font-size:small">GG writes here:  This is weird.  I have looked into this and Little Endian / png / swapping in ffmpeg, libpng.</div><div class="gmail_default" style="font-size:small">see libpng16-src pnginfo.h, no endian or swap or relevant order params.</div><div class="gmail_default" style="font-size:small">see ffmpeg-4.2 libavcodec/pngdec.c:618 decode_idat_chunk, only 16be formats.<br></div><div class="gmail_default" style="font-size:small">Little Endian format is not supported in ffmpg.  It is not in any png.h header data.  It only seems to be a user specified transform option.   In other words, you have to tell it not to use the default of big endian (network byte order).  Since this only generates the possibility of a fail, I think that the best idea is to remove it as a possibility.   Perhaps you should investigate why it is the default on the machine you are using.  I do not see any way it could be normally generated using libpng16 source (the current version used by all os vendors).<br></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 24, 2020 at 6:13 AM Andrew Randrianasulu <<a href="mailto:randrianasulu@gmail.com">randrianasulu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Sorry, I apparently send wrong patch - 16 bit pngs were still broken.<br>
<br>
I scratched my head a lot (because it was working!)<br>
and realized I swapped order of calls!<br>
<br>
diff relative to commit 8c43913b9f18a3856bbff826aef96587a32f0470<br>
<br>
diff --git a/cinelerra-5.1/cinelerra/filepng.C b/cinelerra-5.1/cinelerra/filepng.C<br>
index 4df95f1e..c2e1cf6c 100644<br>
--- a/cinelerra-5.1/cinelerra/filepng.C<br>
+++ b/cinelerra-5.1/cinelerra/filepng.C<br>
@@ -229,9 +229,9 @@ int FilePNG::write_frame(VFrame *frame, VFrame *data, FrameWriterUnit *unit)<br>
                                asset->png_use_alpha ?  PNG_COLOR_TYPE_RGB_ALPHA : PNG_COLOR_TYPE_RGB,<br>
                                PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);<br>
 // does not work (gg 2020/03/17 libpng16 fc31)<br>
+                       png_write_info(png_ptr, info_ptr);<br>
                        if( asset->png_depth == 16 && BC_Resources::little_endian )<br>
                                png_set_swap(png_ptr);<br>
-                       png_write_info(png_ptr, info_ptr);<br>
                        png_write_image(png_ptr, output_frame->get_rows());<br>
                        png_write_end(png_ptr, info_ptr);<br>
                        result = 0;<br>
<br>
this way it SHOULD work .... Tested!<br>
<br>
Also, hint for ccache:<br>
in .ccache/ccache.conf set for maximum compression<br>
<br>
compression = true<br>
compression_level = 8<br>
-- <br>
Cin mailing list<br>
<a href="mailto:Cin@lists.cinelerra-gg.org" target="_blank">Cin@lists.cinelerra-gg.org</a><br>
<a href="https://lists.cinelerra-gg.org/mailman/listinfo/cin" rel="noreferrer" target="_blank">https://lists.cinelerra-gg.org/mailman/listinfo/cin</a><br>
</blockquote></div>