<div dir="ltr"><div>Sorry, we figured out what happened.  I was fooled by the filepng write_frame function.  It uses a test to see if what it is writing can be a "direct_copy".  So... whenever I added your patch to test it, and ran the png render, my test data was a png, and it always just copied it instead of testing your patch.  I was tricked into believing your patch had no effect.  That was incorrect, it is needed.  Turns out the swap is to present the data in network order to the interface.  My mistake...</div><div><br></div><div>When I used a synthetic render (gradient only), the writer can't just copy it.  It has to be  compressed.  The test indicates your mod is needed for sure.  I added the change just as soon as I realized what had happened.</div><div><br></div><div>Well, just goes to show that good testing is the road to hell.  <br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 26, 2020 at 8:46 PM 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 for insisting on this filepng  part  - but it was my work, <br>
and I dislike to ship broken feature!<br>
<br>
I actually tested Cinelerra git on Ubuntu Live DVD, and <br>
_16 bit_ pngs were broken there without it.<br>
<br>
It was as simple as <br>
1) opening  the video<br>
2) setting project to rgba-float color format.<br>
3) trying to save png (from non-black area of timeline) <br>
and set options to "with alpha, 16 bits".<br>
<br>
By default Cin adds encoded results into resources and on new tracks -<br>
you clearly can see it will be black/broken. 8-bits PNGs are OK.<br>
<br>
Ubuntu image I used:<br>
<a href="http://mirror.yandex.ru/ubuntu-cdimage/xubuntu/releases/18.04/release/xubuntu-18.04.4-desktop-amd64.iso" rel="noreferrer" target="_blank">http://mirror.yandex.ru/ubuntu-cdimage/xubuntu/releases/18.04/release/<br>
xubuntu-18.04.4-desktop-amd64.iso</a> - 1.4 Gb<br>
<br>
Then I created 4 Gb file in tmpfs, formatted it with btrfs with compression, and booted Live image:<br>
<br>
guest@slax:/dev/shm$ wget <a href="http://mirror.yandex.ru/ubuntu-cdimage/xubuntu/releases/18.04/release/xubuntu-18.04.4-desktop-amd64.iso--2020-03-25" rel="noreferrer" target="_blank">http://mirror.yandex.ru/ubuntu-cdimage/xubuntu/releases/18.04/release/xubuntu-18.04.4-desktop-amd64.iso<br>
--2020-03-25</a> 13:55:42--  <a href="http://mirror.yandex.ru/ubuntu-cdimage/xubuntu/releases/18.04/release/xubuntu-18.04.4-desktop-amd64.iso" rel="noreferrer" target="_blank">http://mirror.yandex.ru/ubuntu-cdimage/xubuntu/releases/18.04/release/xubuntu-18.04.4-desktop-amd64.iso</a><br>
Распознаётся <a href="http://mirror.yandex.ru" rel="noreferrer" target="_blank">mirror.yandex.ru</a>… 213.180.204.183, 2a02:6b8::183<br>
Подключение к <a href="http://mirror.yandex.ru" rel="noreferrer" target="_blank">mirror.yandex.ru</a>|213.180.204.183|:80... соединение установлено.<br>
HTTP-запрос отправлен. Ожидание ответа… 200 OK<br>
Длина: 1534459904 (1,4G) [application/octet-stream]<br>
Сохранение в: «xubuntu-18.04.4-desktop-amd64.iso»<br>
<br>
xubuntu-18.04.4-desktop-amd64.iso                  100%[==============================================================================================================>]   1,43G  8,26MB/s    за 6m 40s<br>
<br>
2020-03-25 14:02:28 (3,66 MB/s) - «xubuntu-18.04.4-desktop-amd64.iso» сохранён [1534459904/1534459904]<br>
<br>
guest@slax:/dev/shm$ qemu-sy<br>
qemu-system-aarch64       qemu-system-i386          qemu-system-mips          qemu-system-nios2         qemu-system-riscv64       qemu-system-sparc64       qemu-system-xtensaeb<br>
qemu-system-alpha         qemu-system-lm32          qemu-system-mips64        qemu-system-or1k          qemu-system-s390x         qemu-system-tricore<br>
qemu-system-arm           qemu-system-m68k          qemu-system-mips64el      qemu-system-ppc           qemu-system-sh4           qemu-system-unicore32<br>
qemu-system-cris          qemu-system-microblaze    qemu-system-mipsel        qemu-system-ppc64         qemu-system-sh4eb         qemu-system-x86_64<br>
qemu-system-hppa          qemu-system-microblazeel  qemu-system-moxie         qemu-system-riscv32       qemu-system-sparc         qemu-system-xtensa<br>
guest@slax:/dev/shm$ qemu-system-x86_64 -m 2000 -display sdl,gl=on -soundhw es1370 -usb -cdrom xubuntu-18.04.4-desktop-amd64.iso<br>
qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory<br>
guest@slax:/dev/shm$ qemu-system-x86_64 -m 2000 -display sdl,gl=on -soundhw es1370 -usb -cdrom xubuntu-18.04.4-desktop-amd64.iso<br>
guest@slax:/dev/shm$ qemu-system-x86_64 -m 2000 -display sdl,gl=on -soundhw es1370 -usb -cdrom xubuntu-18.04.4-desktop-amd64.iso -enable-kvm -smp 3<br>
guest@slax:/dev/shm$ qemu-system-x86_64 -m 2000 -display sdl,gl=on -soundhw es1370 -usb -cdrom xubuntu-18.04.4-desktop-amd64.iso -enable-kvm -smp 3<br>
guest@slax:/dev/shm$ dd if=/dev/zero of=4Gb bs=1k count=4M<br>
4194304+0 записей получено<br>
4194304+0 записей отправлено<br>
4294967296 байт (4,3 GB, 4,0 GiB) скопирован, 20,7155 s, 207 MB/s<br>
guest@slax:/dev/shm$ qemu-system-x86_64 -m 2000 -display sdl,gl=on -soundhw es1370 -usb -cdrom xubuntu-18.04.4-desktop-amd64.iso -enable-kvm -smp 4 -hda 4Gb<br>
WARNING: Image format was not specified for '4Gb' and probing guessed raw.<br>
         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.<br>
         Specify the 'raw' format explicitly to remove the restrictions.<br>
<br>
in just a hour I had compiled Cinelerra (by copying git tree from host BEFORE launching qemu)<br>
<br>
Note, in such mem-restricted VM you want to use zram (not default in this ubuntu flavor):<br>
as root <br>
modprobe zram<br>
echo 1000000000 > /sys/block/zram0/disksize<br>
mkswap /dev/zram0<br>
swapon /dev/zram0<br>
<br>
this will create 1Gb sized compressed swap in ram<br>
<br>
I even send email from this virtual setup, but it apparently was stuck in moderation<br>
due to size (over 750 kb).<br>
<br>
NOW, I found something really weird!<br>
Patch as attached worked on 64-bit Ubuntu,<br>
but for my system I *must*<br>
place this call to  png_set_swap(png_ptr); differently, not before  png_write_info(png_ptr, info_ptr);<br>
but AFTER! I actually left both there ....<br>
<br>
Still, this is something strange, I'll try to contact libpng author about this.....<br>
<br>
Also, I attach my current OpenCV tweaks - trim out unneeded stuff, <br>
fixing two typos, adding -stdc++11 line for my odd system.<br>
<br>
I still use opencv-20180401.tgz<br>
<br>
I also have two lame (mp3lame) patches, but will send them separately.<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>