X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fthirdparty%2Fsrc%2Fdav1d-0.4.0.patch1;fp=cinelerra-5.1%2Fthirdparty%2Fsrc%2Fdav1d-0.4.0.patch1;h=05396f33a01b58820c5413c64d77c273432bf223;hp=0000000000000000000000000000000000000000;hb=a1ec01f78c69ac89b70269884acc212a23e49622;hpb=d034ec092c8aaf21c755bc612796df69ffdee4ac diff --git a/cinelerra-5.1/thirdparty/src/dav1d-0.4.0.patch1 b/cinelerra-5.1/thirdparty/src/dav1d-0.4.0.patch1 new file mode 100644 index 00000000..05396f33 --- /dev/null +++ b/cinelerra-5.1/thirdparty/src/dav1d-0.4.0.patch1 @@ -0,0 +1,346 @@ +diff -uN dav1d-0.4.0.orig/Makefile dav1d-0.4.0/Makefile +--- dav1d-0.4.0.orig/Makefile 1969-12-31 17:00:00.000000000 -0700 ++++ dav1d-0.4.0/Makefile 2019-08-30 10:30:39.846512952 -0600 +@@ -0,0 +1,342 @@ ++BUILD=build ++DESTDIR=/ ++PREFIX=usr/local ++LIBDIR=$(PREFIX)/lib ++INCDIR=$(PREFIX)/include ++# make Q="" for verbose ++Q?=@echo == $@; ++OBJDIR?=$(BUILD)/static ++NASM_BLD=$(OBJDIR)/nasm ++ENTRY_BLD=$(OBJDIR)/entry ++SRC_BLD=$(OBJDIR)/src ++BIT8_BLD=$(OBJDIR)/bits8 ++BIT16_BLD=$(OBJDIR)/bits16 ++TOOLS_BLD=$(BUILD)/tools ++TESTS_BLD=$(BUILD)/tests ++ ++STATIC_LIB=$(BUILD)/src/libdav1d.a ++SHARED_LIB=$(BUILD)/src/libdav1d.so ++DEFS= -DNDEBUG -D_FILE_OFFSET_BITS=64 -D_POSIX_C_SOURCE=200112L ++FUZZ= -DDAV1D_MT_FUZZING ++ ++BLD_INCL= $(DEFS) -I. -Isrc -Iinclude/dav1d -Iinclude \ ++ -I$(BUILD) -I$(BUILD)/include -I$(BUILD)/include/dav1d ++TOOLS_INCL= $(DEFS) -Itools -I. -I$(BUILD) -I$(BUILD)/tools \ ++ -Iinclude -Iinclude/dav1d -I$(BUILD)/include/dav1d \ ++ -I$(BUILD)/include -I/usr/include/SDL2 ++ ++NP?=.NOTPARALLEL: ++$(NP) ++MAKE_P:=$(MAKE) -j NP="" ++ ++all: meson_data ++ $(MAKE_P) $(STATIC_LIB) OBJDIR=$(BUILD)/static ++ $(MAKE_P) $(SHARED_LIB) OBJDIR=$(BUILD)/shared ++# req SDL ++# $(MAKE_P) $(TOOLS) OBJDIR=$(BUILD)/static ++# $(MAKE_P) $(TESTS) OBJDIR=$(BUILD)/static ++ ++CC_DEFS=\ ++ -DNDEBUG \ ++ -D_FILE_OFFSET_BITS=64 \ ++ -D_POSIX_C_SOURCE=200112L \ ++ ++CC_OPTS=\ ++ -pipe \ ++ -Wall \ ++ -Winvalid-pch \ ++ -Wextra \ ++ -std=c99 \ ++ -O3 \ ++ -fvisibility=hidden \ ++ -Wundef \ ++ -Werror=vla \ ++ -Wno-maybe-uninitialized \ ++ -Wno-missing-field-initializers \ ++ -Wno-unused-parameter \ ++ -Werror=missing-prototypes \ ++ -fomit-frame-pointer \ ++ -ffast-math \ ++ -fPIC \ ++ -mpreferred-stack-boundary=5 \ ++ -MD -MQ $@ -MF $@.d \ ++ ++SHA_OPTS=\ ++ -Wl,--no-undefined \ ++ -Wl,--as-needed \ ++ -Wl,-O1 \ ++ -shared \ ++ -fPIC \ ++ -Wl,--start-group \ ++ -Wl,-soname,libdav1d.so.2 \ ++ -Wl,--end-group \ ++ -pthread \ ++ ++CC_CC=$(Q)cc $(CC_OPTS) $(CFLAGS) ++NASM=$(Q)/usr/bin/nasm ++any=$(foreach i,$(2),$(1)/$(i)) ++ ++# nasm ++NASM_OBJS=$(call any,$(NASM_BLD), \ ++ cdef.obj \ ++ cdef_sse.obj \ ++ cpuid.obj \ ++ ipred.obj \ ++ ipred_ssse3.obj \ ++ itx.obj \ ++ itx_ssse3.obj \ ++ loopfilter.obj \ ++ looprestoration.obj \ ++ looprestoration_ssse3.obj \ ++ mc.obj \ ++ mc_ssse3.obj \ ++ msac.obj) ++$(NASM_BLD)/%.obj: src/x86/%.asm ++ $(NASM) -f elf64 \ ++ -I src/ -I $(BUILD)/ -MQ $@ -MF $@.ndep \ ++ $< -o $@ ++ ++# entry ++ENTRY_OBJS=$(call any,$(ENTRY_BLD), \ ++ lib.c.o \ ++ thread_task.c.o) ++$(ENTRY_BLD)/%.c.o: src/%.c ++ $(CC_CC) -Iinclude -Ibuild/include/dav1d -Isrc/entry $(BLD_INCL) \ ++ -mincoming-stack-boundary=4 -o $@ -c $< ++ ++# src ++SRC_OBJS=$(call any,$(SRC_BLD), \ ++ cdf.o \ ++ cpu.o \ ++ data.o \ ++ decode.o \ ++ dequant_tables.o \ ++ getbits.o \ ++ intra_edge.o \ ++ lf_mask.o \ ++ log.o \ ++ msac.o \ ++ obu.o \ ++ picture.o \ ++ qm.o \ ++ ref.o \ ++ ref_mvs.o \ ++ scan.o \ ++ tables.o \ ++ warpmv.o \ ++ wedge.o \ ++ x86/cpu.c.o) ++$(SRC_BLD)/%.o: src/%.c ++ $(CC_CC) $(BLD_INCL) -pthread -o $@ -c $< ++$(SRC_BLD)/x86/%.c.o: src/x86/%.c ++ $(CC_CC) $(BLD_INCL) -o $@ -c $< ++ ++# bits ++BITS_OBJS= \ ++ cdef_tmpl.o \ ++ cdef_apply_tmpl.o \ ++ film_grain_tmpl.o \ ++ ipred_tmpl.o \ ++ ipred_prepare_tmpl.o \ ++ itx_tmpl.o \ ++ lf_apply_tmpl.o \ ++ loopfilter_tmpl.o \ ++ looprestoration_tmpl.o \ ++ lr_apply_tmpl.o \ ++ mc_tmpl.o \ ++ recon_tmpl.o \ ++ x86/cdef_init_tmpl.c.o \ ++ x86/ipred_init_tmpl.c.o \ ++ x86/itx_init_tmpl.c.o \ ++ x86/loopfilter_init_tmpl.c.o \ ++ x86/looprestoration_init_tmpl.c.o \ ++ x86/mc_init_tmpl.c.o \ ++ ++BIT8_OBJS=$(call any,$(BIT8_BLD),$(BITS_OBJS)) ++$(BIT8_BLD)/x86/%.c.o: src/x86/%.c ++ $(CC_CC) $(BLD_INCL) -DBITDEPTH=8 -o $@ -c $< ++$(BIT8_BLD)/%.o: src/%.c ++ $(CC_CC) $(BLD_INCL) -DBITDEPTH=8 -o $@ -c $< ++ ++BIT16_OBJS=$(call any,$(BIT16_BLD),$(BITS_OBJS)) ++$(BIT16_BLD)/x86/%.c.o: src/x86/%.c ++ $(CC_CC) $(BLD_INCL) -DBITDEPTH=16 -o $@ -c $< ++$(BIT16_BLD)/%.o: src/%.c ++ $(CC_CC) $(BLD_INCL) -DBITDEPTH=16 -o $@ -c $< ++ ++$(BUILD)/config.h: ++ echo > $@ "#pragma once" ++ echo >> $@ "#define ARCH_AARCH64 0" ++ echo >> $@ "#define ARCH_ARM 0" ++ echo >> $@ "#define ARCH_PPC64LE 0" ++ echo >> $@ "#define ARCH_X86 1" ++ echo >> $@ "#define ARCH_X86_32 0" ++ echo >> $@ "#define ARCH_X86_64 1" ++ echo >> $@ "#define CONFIG_16BPC 1" ++ echo >> $@ "#define CONFIG_8BPC 1" ++ echo >> $@ "#define CONFIG_LOG 1" ++ echo >> $@ "#define ENDIANNESS_BIG 0" ++ echo >> $@ "#define HAVE_ASM 1" ++ echo >> $@ "#define HAVE_POSIX_MEMALIGN 1" ++ echo >> $@ "#define HAVE_UNISTD_H 1" ++ echo >> $@ "#define STACK_ALIGNMENT 32" ++ ++$(BUILD)/config.asm: ++ echo > $@ "%define ARCH_X86_32 0" ++ echo >> $@ "%define ARCH_X86_64 1" ++ echo >> $@ "%define PIC 1" ++ echo >> $@ "%define STACK_ALIGNMENT 32" ++ ++$(BUILD)/include/vcs_version.h: ++ mkdir -p $(BUILD)/include ++ echo > $@ "#define DAV1D_VERSION \"0.4.0\"" ++ ++$(BUILD)/include/dav1d/version.h: ++ mkdir -p $(BUILD)/include/dav1d ++ echo > $@ "#ifndef DAV1D_VERSION_H" ++ echo >> $@ "#define DAV1D_VERSION_H" ++ echo >> $@ "#define DAV1D_API_VERSION_MAJOR 2" ++ echo >> $@ "#define DAV1D_API_VERSION_MINOR 0" ++ echo >> $@ "#define DAV1D_API_VERSION_PATCH 0" ++ echo >> $@ "#endif /* DAV1D_VERSION_H */" ++ ++$(TOOLS_BLD)/cli_config.h: ++ mkdir -p $(TOOLS_BLD) ++ echo > $@ "#pragma once" ++ echo >> $@ "#define HAVE_CLOCK_GETTIME 1" ++ ++.PHONY: meson_data ++meson_data: ++ make meson_dirs OBJDIR=$(BUILD)/static ++ make meson_dirs OBJDIR=$(BUILD)/shared ++ ln -sf ./include/compat/gcc/stdatomic.h . ++ ++.PHONY: meson_dirs ++meson_dirs: $(OBJDIR) \ ++ $(BUILD)/config.h $(BUILD)/config.asm \ ++ $(BUILD)/include/vcs_version.h \ ++ $(BUILD)/include/dav1d/version.h \ ++ $(TOOLS_BLD)/cli_config.h \ ++ ++LIB_OBJS=$(ENTRY_OBJS) $(NASM_OBJS) $(SRC_OBJS) $(BIT8_OBJS) $(BIT16_OBJS) ++ ++$(STATIC_LIB): DIR?=static ++$(STATIC_LIB): $(LIB_OBJS) ++ rm -f $@ ++ gcc-ar csrD $@ $(LIB_OBJS) ++ ++$(SHARED_LIB): DIR?=shared ++$(SHARED_LIB): $(LIB_OBJS) ++ rm -f $@ ++ cc -o $@ $(LIB_OBJS) $(SHA_OPTS) ++ ++# tools ++DAV1D_OBJS=$(call any,$(TOOLS_BLD),\ ++ dav1d.o \ ++ dav1d_cli_parse.o \ ++ input/annexb.o \ ++ input/ivf.o \ ++ input/input.o \ ++ output/md5.o \ ++ output/null.o \ ++ output/output.o \ ++ output/y4m2.o \ ++ output/yuv.o) ++ ++DAV1DPLAY_OBJS=$(call any,$(TOOLS_BLD),\ ++ dav1dplay.o \ ++ input/annexb.o \ ++ input/ivf.o \ ++ input/input.o) ++ ++$(TOOLS_BLD)/%.o: tools/%.c ++ $(CC_CC) $(TOOLS_INCL) -o $@ -c $< ++ ++DAV1D=$(TOOLS_BLD)/dav1d ++$(DAV1D): $(DAV1D_OBJS) ++ $(CC_CC) -pthread -I$(BUILD) -o $@ $(DAV1D_OBJS) $(STATIC_LIB) ++ ++DAV1DPLAY=$(TOOLS_BLD)/dav1dplay ++$(DAV1DPLAY): $(DAV1DPLAY_OBJS) ++ $(CC_CC) -pthread -o $(TOOLS_BLD)/dav1dplay $(DAV1DPLAY_OBJS) $(STATIC_LIB) -lSDL2 ++ ++TOOLS=$(DAV1D) $(DAV1DPLAY) ++.PHONY: tools ++tools: $(TOOLS) ++ ++# tests ++TESTS_CHKASM=tests/checkasm ++TESTS_CHKASM_BLD=$(TESTS_BLD)/checkasm ++CHKASM_BIT8=$(TESTS_CHKASM_BLD)/bit8 ++CHKASM_BIT16=$(TESTS_CHKASM_BLD)/bit16 ++CHKASM_BITS= \ ++ cdef.o \ ++ ipred.o \ ++ itx.o \ ++ loopfilter.o \ ++ looprestoration.o \ ++ mc.o \ ++ ++CHKASM_BIT8_OBJS=$(call any,$(CHKASM_BIT8),$(CHKASM_BITS)) ++CHKASM_BIT16_OBJS=$(call any,$(CHKASM_BIT16),$(CHKASM_BITS)) ++ ++TESTS_CHKASM_OBJS= \ ++ $(TESTS_CHKASM_BLD)/checkasm.o \ ++ $(TESTS_CHKASM_BLD)/msac.o \ ++ $(CHKASM_BIT8_OBJS) $(CHKASM_BIT16_OBJS) \ ++ $(TESTS_CHKASM_BLD)/x86/checkasm.obj \ ++ ++$(TESTS_CHKASM_BLD)/%.o: $(TESTS_CHKASM)/%.c ++ $(CC_CC) $(BLD_INCL) -o $@ -c $< ++$(CHKASM_BIT8)/%.o: $(TESTS_CHKASM)/%.c ++ $(CC_CC) $(BLD_INCL) -DBITDEPTH=8 -o $@ -c $< ++$(CHKASM_BIT16)/%.o: $(TESTS_CHKASM)/%.c ++ $(CC_CC) $(BLD_INCL) -DBITDEPTH=16 -o $@ -c $< ++$(TESTS_CHKASM_BLD)/x86/%.obj: $(TESTS_CHKASM)/x86/%.asm ++ @$(NASM) -f elf64 \ ++ -I src/ -I $(BUILD)/ -MQ $@ -MF $@.ndep \ ++ $< -o $@ ++ ++CHECKASM=$(TESTS_BLD)/checkasm/checkasm ++$(CHECKASM): $(TESTS_CHKASM_OBJS) $(STATIC_LIB) ++ $(CC_CC) -pthread -o $@ $(TESTS_CHKASM_OBJS) $(STATIC_LIB) -lm ++ ++TESTS_FUZZER=tests/libfuzzer ++TESTS_FUZZER_BLD=$(TESTS_BLD)/libfuzzer ++TESTS_FUZZER_OBJS= \ ++ $(TESTS_FUZZER_BLD)/main.o \ ++ $(TESTS_FUZZER_BLD)/dav1d_fuzzer.o \ ++ ++$(TESTS_FUZZER_BLD)/%.o: $(TESTS_FUZZER)/%.c ++ $(CC_CC) $(BLD_INCL) -o $@ -c $< ++ ++DAV1D_FUZZER=$(TESTS_BLD)/dav1d_fuzzer ++$(DAV1D_FUZZER): $(TESTS_FUZZER_OBJS) $(STATIC_LIB) ++ $(CC_CC) -pthread -o $@ $(TESTS_FUZZER_OBJS) $(STATIC_LIB) ++ ++TESTS=$(CHECKASM) $(DAV1D_FUZZER) ++.PHONY: tests ++tests: $(TESTS) ++ ++$(OBJDIR): ++ mkdir -p $@/include/dav1d \ ++ $(BUILD)/src $(BUILD)/include \ ++ $(ENTRY_BLD) $(NASM_BLD) \ ++ $(SRC_BLD)/x86 $(BIT8_BLD)/x86 $(BIT16_BLD)/x86 \ ++ $(TOOLS_BLD) $(TOOLS_BLD)/input $(TOOLS_BLD)/output \ ++ $(TESTS_CHKASM_BLD)/bit8 $(TESTS_CHKASM_BLD)/bit16 \ ++ $(TESTS_CHKASM_BLD)/x86 $(TESTS_FUZZER_BLD) \ ++ ++clean: ++ rm -rf $(BUILD) ++ ++install: ++ mkdir -p $(DESTDIR)$(LIBDIR) ++ cp -a $(STATIC_LIB) $(DESTDIR)$(LIBDIR) ++ cp -a $(SHARED_LIB) $(DESTDIR)$(LIBDIR) ++ mkdir -p $(DESTDIR)$(INCDIR) ++ cp -a include/dav1d $(DESTDIR)$(INCDIR) ++ rm -f $(DESTDIR)$(INCDIR)/dav1d/meson.build ++ rm -f $(DESTDIR)$(INCDIR)/dav1d/version.h.in ++ cp -a $(BUILD)/include/dav1d/version.h $(DESTDIR)$(INCDIR)/version.h ++