Skip to content

Commit

Permalink
0.9.5: separate code and docs
Browse files Browse the repository at this point in the history
  • Loading branch information
zvezdochiot committed Jul 21, 2022
1 parent 1d26361 commit 5ee1dc5
Show file tree
Hide file tree
Showing 260 changed files with 393 additions and 56 deletions.
167 changes: 111 additions & 56 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ USE_BPGVIEW=y
# Installation prefix
prefix=/usr/local


#################################

ifdef CONFIG_WIN32
Expand All @@ -40,12 +39,16 @@ PWD:=$(shell pwd)

CFLAGS:=-Os -Wall -MMD -fno-asynchronous-unwind-tables -fdata-sections -ffunction-sections -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -fomit-frame-pointer
CFLAGS+=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_REENTRANT
CFLAGS+=-I.
CFLAGS+=-I./src
CFLAGS+=-DCONFIG_BPG_VERSION=\"$(shell cat VERSION)\"
ifdef USE_JCTVC_HIGH_BIT_DEPTH
CFLAGS+=-DRExt__HIGH_BIT_DEPTH_SUPPORT
endif

ifneq ($(shell uname -m), i386)
CFLAGS += -fPIC
endif

# Emscriptem config
EMLDFLAGS:=-s "EXPORTED_FUNCTIONS=['_bpg_decoder_open','_bpg_decoder_decode','_bpg_decoder_get_info','_bpg_decoder_start','_bpg_decoder_get_frame_duration','_bpg_decoder_get_line','_bpg_decoder_close','_malloc','_free']"
EMLDFLAGS+=-s NO_FILESYSTEM=1 -s NO_BROWSER=1
Expand All @@ -72,18 +75,34 @@ endif

all: $(PROGS)

LIBBPG_OBJS:=$(addprefix libavcodec/, \
hevc_cabac.o hevc_filter.o hevc.o hevcpred.o hevc_refs.o\
hevcdsp.o hevc_mvs.o hevc_ps.o hevc_sei.o\
utils.o cabac.o golomb.o videodsp.o )
LIBBPG_OBJS+=$(addprefix libavutil/, mem.o buffer.o log2_tab.o frame.o pixdesc.o md5.o )
LIBBPG_OBJS+=libbpg.o

LIBBPG_JS_OBJS:=$(patsubst %.o, %.js.o, $(LIBBPG_OBJS)) tmalloc.js.o

LIBBPG_JS8_OBJS:=$(patsubst %.o, %.js8.o, $(LIBBPG_OBJS)) tmalloc.js8.o

LIBBPG_JS8A_OBJS:=$(patsubst %.o, %.js8a.o, $(LIBBPG_OBJS)) tmalloc.js8a.o
LIBBPG_OBJS:=$(addprefix src/libavcodec/, \
hevc_cabac.o \
hevc_filter.o \
hevc.o \
hevcpred.o \
hevc_refs.o \
hevcdsp.o \
hevc_mvs.o \
hevc_ps.o \
hevc_sei.o\
utils.o \
cabac.o \
golomb.o \
videodsp.o )
LIBBPG_OBJS+=$(addprefix src/libavutil/, \
mem.o \
buffer.o \
log2_tab.o \
frame.o \
pixdesc.o \
md5.o )
LIBBPG_OBJS+=src/libbpg.o

LIBBPG_JS_OBJS:=$(patsubst %.o, %.js.o, $(LIBBPG_OBJS)) src/tmalloc.js.o

LIBBPG_JS8_OBJS:=$(patsubst %.o, %.js8.o, $(LIBBPG_OBJS)) src/tmalloc.js8.o

LIBBPG_JS8A_OBJS:=$(patsubst %.o, %.js8a.o, $(LIBBPG_OBJS)) src/tmalloc.js8a.o

$(LIBBPG_OBJS): CFLAGS+=-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DHAVE_AV_CONFIG_H -std=c99 -D_GNU_SOURCE=1 -DUSE_VAR_BIT_DEPTH -DUSE_PRED

Expand All @@ -93,41 +112,75 @@ $(LIBBPG_JS8_OBJS): EMCFLAGS+=-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN

$(LIBBPG_JS8A_OBJS): EMCFLAGS+=-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DHAVE_AV_CONFIG_H -std=c99 -D_GNU_SOURCE=1 -DUSE_PRED

BPGENC_OBJS:=bpgenc.o
BPGENC_OBJS:=src/bpgenc.o
BPGENC_LIBS:=

ifdef USE_X265
BPGENC_OBJS+=x265_glue.o
BPGENC_OBJS+=src/x265_glue.o
BPGENC_LIBS+= -lx265
bpgenc.o: CFLAGS+=-DUSE_X265
src/bpgenc.o: CFLAGS+=-DUSE_X265
endif # USE_X265

ifdef USE_JCTVC
JCTVC_OBJS=$(addprefix jctvc/TLibEncoder/, SyntaxElementWriter.o TEncSbac.o \
TEncBinCoderCABACCounter.o TEncGOP.o\
TEncSampleAdaptiveOffset.o TEncBinCoderCABAC.o TEncAnalyze.o\
TEncEntropy.o TEncTop.o SEIwrite.o TEncPic.o TEncRateCtrl.o\
WeightPredAnalysis.o TEncSlice.o TEncCu.o NALwrite.o TEncCavlc.o\
TEncSearch.o TEncPreanalyzer.o)
JCTVC_OBJS+=jctvc/TLibVideoIO/TVideoIOYuv.o
JCTVC_OBJS+=$(addprefix jctvc/TLibCommon/, TComWeightPrediction.o TComLoopFilter.o\
TComBitStream.o TComMotionInfo.o TComSlice.o ContextModel3DBuffer.o\
TComPic.o TComRdCostWeightPrediction.o TComTU.o TComPicSym.o\
TComPicYuv.o TComYuv.o TComTrQuant.o TComInterpolationFilter.o\
ContextModel.o TComSampleAdaptiveOffset.o SEI.o TComPrediction.o\
TComDataCU.o TComChromaFormat.o Debug.o TComRom.o\
TComPicYuvMD5.o TComRdCost.o TComPattern.o TComCABACTables.o)
JCTVC_OBJS+=jctvc/libmd5/libmd5.o
JCTVC_OBJS+=jctvc/TAppEncCfg.o jctvc/TAppEncTop.o jctvc/program_options_lite.o

$(JCTVC_OBJS) jctvc_glue.o: CFLAGS+=-I$(PWD)/jctvc -Wno-sign-compare

jctvc/libjctvc.a: $(JCTVC_OBJS)
JCTVC_OBJS=$(addprefix src/jctvc/TLibEncoder/, \
SyntaxElementWriter.o \
TEncSbac.o \
TEncBinCoderCABACCounter.o \
TEncGOP.o \
TEncSampleAdaptiveOffset.o \
TEncBinCoderCABAC.o \
TEncAnalyze.o \
TEncEntropy.o \
TEncTop.o \
SEIwrite.o \
TEncPic.o \
TEncRateCtrl.o \
WeightPredAnalysis.o \
TEncSlice.o \
TEncCu.o \
NALwrite.o \
TEncCavlc.o \
TEncSearch.o \
TEncPreanalyzer.o)
JCTVC_OBJS+=src/jctvc/TLibVideoIO/TVideoIOYuv.o
JCTVC_OBJS+=$(addprefix src/jctvc/TLibCommon/, \
TComWeightPrediction.o \
TComLoopFilter.o \
TComBitStream.o \
TComMotionInfo.o \
TComSlice.o \
ContextModel3DBuffer.o \
TComPic.o \
TComRdCostWeightPrediction.o \
TComTU.o \
TComPicSym.o \
TComPicYuv.o \
TComYuv.o \
TComTrQuant.o \
TComInterpolationFilter.o \
ContextModel.o \
TComSampleAdaptiveOffset.o \
SEI.o \
TComPrediction.o \
TComDataCU.o \
TComChromaFormat.o \
Debug.o \
TComRom.o\
TComPicYuvMD5.o \
TComRdCost.o \
TComPattern.o \
TComCABACTables.o)
JCTVC_OBJS+=src/jctvc/libmd5/libmd5.o
JCTVC_OBJS+=src/jctvc/TAppEncCfg.o src/jctvc/TAppEncTop.o src/jctvc/program_options_lite.o

$(JCTVC_OBJS) src/jctvc_glue.o: CFLAGS+=-I$(PWD)/src/jctvc -Wno-sign-compare

src/jctvc/libjctvc.a: $(JCTVC_OBJS)
$(AR) rcs $@ $^

BPGENC_OBJS+=jctvc_glue.o jctvc/libjctvc.a
BPGENC_OBJS+=src/jctvc_glue.o src/jctvc/libjctvc.a

bpgenc.o: CFLAGS+=-DUSE_JCTVC
src/bpgenc.o: CFLAGS+=-DUSE_JCTVC
endif # USE_JCTVC


Expand All @@ -153,27 +206,27 @@ BPGVIEW_LIBS:=-lSDL_image -lSDL $(LIBS)

endif #!CONFIG_WIN32

bpgenc.o: CFLAGS+=-Wno-unused-but-set-variable
src/bpgenc.o: CFLAGS+=-Wno-unused-but-set-variable

libbpg.a: $(LIBBPG_OBJS)
$(AR) rcs $@ $^

bpgdec$(EXE): bpgdec.o libbpg.a
bpgdec$(EXE): src/bpgdec.o libbpg.a
$(CC) $(LDFLAGS) -o $@ $^ $(BPGDEC_LIBS)

bpgenc$(EXE): $(BPGENC_OBJS)
$(CXX) $(LDFLAGS) -o $@ $^ $(BPGENC_LIBS)

bpgview$(EXE): bpgview.o libbpg.a
bpgview$(EXE): src/bpgview.o libbpg.a
$(CC) $(LDFLAGS) -o $@ $^ $(BPGVIEW_LIBS)

bpgdec.js: $(LIBBPG_JS_OBJS) post.js
bpgdec.js: $(LIBBPG_JS_OBJS) src/post.js
$(EMCC) $(EMLDFLAGS) -s TOTAL_MEMORY=33554432 -o $@ $(LIBBPG_JS_OBJS)

bpgdec8.js: $(LIBBPG_JS8_OBJS) post.js
bpgdec8.js: $(LIBBPG_JS8_OBJS) src/post.js
$(EMCC) $(EMLDFLAGS) -s TOTAL_MEMORY=16777216 -o $@ $(LIBBPG_JS8_OBJS)

bpgdec8a.js: $(LIBBPG_JS8A_OBJS) post.js
bpgdec8a.js: $(LIBBPG_JS8A_OBJS) src/post.js
$(EMCC) $(EMLDFLAGS) -s TOTAL_MEMORY=16777216 -o $@ $(LIBBPG_JS8A_OBJS)

size:
Expand All @@ -184,11 +237,13 @@ size:
install: bpgenc bpgdec
install -s -m 755 $^ $(prefix)/bin

CLEAN_DIRS=doc html libavcodec libavutil \
jctvc jctvc/TLibEncoder jctvc/TLibVideoIO jctvc/TLibCommon jctvc/libmd5
CLEAN_DIRS=doc html src/libavcodec src/libavutil \
src/jctvc src/jctvc/TLibEncoder src/jctvc/TLibVideoIO \
src/jctvc/TLibCommon src/jctvc/libmd5

clean:
rm -f $(PROGS) *.o *.a *.d *~ $(addsuffix /*.o, $(CLEAN_DIRS)) \
rm -f $(PROGS) $(BPGENC_OBJS) $(LIBBPG_OBJS) $(JCTVC_OBJS) \
src/*.o *.a src/*.d src/*~ $(addsuffix /*.o, $(CLEAN_DIRS)) \
$(addsuffix /*.d, $(CLEAN_DIRS)) $(addsuffix /*~, $(CLEAN_DIRS)) \
$(addsuffix /*.a, $(CLEAN_DIRS))

Expand All @@ -207,11 +262,11 @@ clean:
%.js8a.o: %.c
$(EMCC) $(EMCFLAGS) -c -o $@ $<

-include $(wildcard *.d)
-include $(wildcard libavcodec/*.d)
-include $(wildcard libavutil/*.d)
-include $(wildcard jctvc/*.d)
-include $(wildcard jctvc/TLibEncoder/*.d)
-include $(wildcard jctvc/TLibVideoIO/*.d)
-include $(wildcard jctvc/TLibCommon/*.d)
-include $(wildcard jctvc/libmd5/*.d)
-include $(wildcard src/*.d)
-include $(wildcard src/libavcodec/*.d)
-include $(wildcard src/libavutil/*.d)
-include $(wildcard src/jctvc/*.d)
-include $(wildcard src/jctvc/TLibEncoder/*.d)
-include $(wildcard src/jctvc/TLibVideoIO/*.d)
-include $(wildcard src/jctvc/TLibCommon/*.d)
-include $(wildcard src/jctvc/libmd5/*.d)
Loading

0 comments on commit 5ee1dc5

Please sign in to comment.