Sorry for insisting on this filepng part - but it was my work,
and I dislike to ship broken feature!
I actually tested Cinelerra git on Ubuntu Live DVD, and
_16 bit_ pngs were broken there without it.
It was as simple as
1) opening the video
2) setting project to rgba-float color format.
3) trying to save png (from non-black area of timeline)
and set options to "with alpha, 16 bits".
By default Cin adds encoded results into resources and on new tracks -
you clearly can see it will be black/broken. 8-bits PNGs are OK.
Ubuntu image I used:
http://mirror.yandex.ru/ubuntu-cdimage/xubuntu/releases/18.04/release/
xubuntu-18.04.4-desktop-amd64.iso - 1.4 Gb
Then I created 4 Gb file in tmpfs, formatted it with btrfs with compression,
and booted Live image:
guest@slax:/dev/shm$ wget
http://mirror.yandex.ru/ubuntu-cdimage/xubuntu/releases/18.04/release/xubuntu-18.04.4-desktop-amd64.iso
--2020-03-25 13:55:42--
http://mirror.yandex.ru/ubuntu-cdimage/xubuntu/releases/18.04/release/xubuntu-18.04.4-desktop-amd64.iso
Распознаётся mirror.yandex.ru… 213.180.204.183, 2a02:6b8::183
Подключение к mirror.yandex.ru|213.180.204.183|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 1534459904 (1,4G) [application/octet-stream]
Сохранение в: «xubuntu-18.04.4-desktop-amd64.iso»
xubuntu-18.04.4-desktop-amd64.iso
100%[==============================================================================================================>]
1,43G 8,26MB/s за 6m 40s
2020-03-25 14:02:28 (3,66 MB/s) - «xubuntu-18.04.4-desktop-amd64.iso» сохранён
[1534459904/1534459904]
guest@slax:/dev/shm$ qemu-sy
qemu-system-aarch64 qemu-system-i386 qemu-system-mips
qemu-system-nios2 qemu-system-riscv64 qemu-system-sparc64
qemu-system-xtensaeb
qemu-system-alpha qemu-system-lm32 qemu-system-mips64
qemu-system-or1k qemu-system-s390x qemu-system-tricore
qemu-system-arm qemu-system-m68k qemu-system-mips64el
qemu-system-ppc qemu-system-sh4 qemu-system-unicore32
qemu-system-cris qemu-system-microblaze qemu-system-mipsel
qemu-system-ppc64 qemu-system-sh4eb qemu-system-x86_64
qemu-system-hppa qemu-system-microblazeel qemu-system-moxie
qemu-system-riscv32 qemu-system-sparc qemu-system-xtensa
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
qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory
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
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
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
guest@slax:/dev/shm$ dd if=/dev/zero of=4Gb bs=1k count=4M
4194304+0 записей получено
4194304+0 записей отправлено
4294967296 байт (4,3 GB, 4,0 GiB) скопирован, 20,7155 s, 207 MB/s
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
WARNING: Image format was not specified for '4Gb' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write
operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
in just a hour I had compiled Cinelerra (by copying git tree from host BEFORE
launching qemu)
Note, in such mem-restricted VM you want to use zram (not default in this
ubuntu flavor):
as root
modprobe zram
echo 1000000000 > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon /dev/zram0
this will create 1Gb sized compressed swap in ram
I even send email from this virtual setup, but it apparently was stuck in
moderation
due to size (over 750 kb).
NOW, I found something really weird!
Patch as attached worked on 64-bit Ubuntu,
but for my system I *must*
place this call to png_set_swap(png_ptr); differently, not before
png_write_info(png_ptr, info_ptr);
but AFTER! I actually left both there ....
Still, this is something strange, I'll try to contact libpng author about
this.....
Also, I attach my current OpenCV tweaks - trim out unneeded stuff,
fixing two typos, adding -stdc++11 line for my odd system.
I still use opencv-20180401.tgz
I also have two lame (mp3lame) patches, but will send them separately.
diff --git a/cinelerra-5.1/cinelerra/filepng.C b/cinelerra-5.1/cinelerra/filepng.C
index 3b28e0ea..2d1f3fbd 100644
--- a/cinelerra-5.1/cinelerra/filepng.C
+++ b/cinelerra-5.1/cinelerra/filepng.C
@@ -228,6 +228,8 @@ int FilePNG::write_frame(VFrame *frame, VFrame *data, FrameWriterUnit *unit)
png_set_IHDR(png_ptr, info_ptr, asset->width, asset->height, asset->png_depth,
asset->png_use_alpha ? PNG_COLOR_TYPE_RGB_ALPHA : PNG_COLOR_TYPE_RGB,
PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
+ if( asset->png_depth == 16 && BC_Resources::little_endian )
+ png_set_swap(png_ptr);
png_write_info(png_ptr, info_ptr);
png_write_image(png_ptr, output_frame->get_rows());
png_write_end(png_ptr, info_ptr);
diff --git a/cinelerra-5.1/opencv_build b/cinelerra-5.1/opencv_build
index 736e1d90..7be18228 100644
--- a/cinelerra-5.1/opencv_build
+++ b/cinelerra-5.1/opencv_build
@@ -49,6 +49,7 @@ jobs:=-j$(shell echo $$(($(cpus) + $(cpus)/2 +2)))
#opencv4 breaks SIFT/SURF findobj
CFLAGS += -I$(opencv_prefix)/include/opencv4
CFLAGS += -I$(opencv_prefix)/include
+CFLAGS += -std=c++11
ifeq ($(src),git)
$(opencv).src:
@@ -83,6 +84,9 @@ $(opencv)/build: $(opencv).src
-DINSTALL_C_EXAMPLES=OFF \
-DINSTALL_PYTHON_EXAMPLES=OFF \
-DBUILD_EXAMPLES=OFF .. \
+ -DBUILD_PERF_TESTS=OFF \
+ -DBUILD_TESTS=OFF \
+ -DBUILD_opencv_apps=OFF \
-DBUILD_opencv_python3=no \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DOPENCV_EXTRA_MODULES_PATH="$(opencv)_contrib/modules/"
@@ -106,10 +110,13 @@ $(opencv)/build: $(opencv).src
-DINSTALL_PYTHON_EXAMPLES=ON \
-DBUILD_EXAMPLES=ON .. \
-DBUILD_opencv_python3=no \
+ -DBUILD_PERF_TESTS=OFF \
+ -DBUILD_TESTS=OFF \
+ -DBUILD_opencv_apps=OFF \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DOPENCV_EXTRA_MODULES_PATH="$(opencv)_contrib/modules/"
-SYSLIB := $(lastword $(wildcard /usr/lib /usrlib32 /usr/lib64))
+SYSLIB := $(lastword $(wildcard /usr/lib /usr/lib32 /usr/lib64))
CVLIBS := $(dir $(shell find $(opencv_prefix) -name libopencv_core.so))
LFLAGS += -L$(CVLIBS) $(patsubst $(CVLIBS)/lib%.so,-l%,$(wildcard $(CVLIBS)/libopencv_*.so))
LFLAGS += $(patsubst $(SYSLIB)/lib%.so,-l%,$(wildcard $(SYSLIB)/lib{Half,Imath,Ilm,Iex}*.so))
@@ -118,7 +125,7 @@ static_incs :=
else ifeq ($(bld),sys)
$(opencv)/build:
-SYSLIB := $(lastword $(wildcard /usr/lib /usrlib32 /usr/lib64))
+SYSLIB := $(lastword $(wildcard /usr/lib /usr/lib32 /usr/lib64))
LFLAGS += $(patsubst $(SYSLIB)/lib%.so,-l%,$(wildcard $(SYSLIB)/libopencv_*.so))
LFLAGS += $(patsubst $(SYSLIB)/lib%.so,-l%,$(wildcard $(SYSLIB)/lib{Half,Imath,Ilm,Iex}*.so))
static_libs :=
--
Cin mailing list
[email protected]
https://lists.cinelerra-gg.org/mailman/listinfo/cin