<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>