omxplayer: make this build with ffmpeg-2.4 and simplify build (based on alarm).

This commit is contained in:
Juan RP 2014-09-29 14:13:08 +02:00
parent 9c7228112a
commit 25a3b53765
5 changed files with 117 additions and 97 deletions

View file

@ -1,66 +0,0 @@
include Makefile.include
CFLAGS+= -std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DHAVE_LIBSWRESAMPLE_SWRESAMPLE_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST
LDFLAGS+=-L./ -ldbus-1 -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz
INCLUDES+=-I./ -Ilinux
SRC=linux/XMemUtils.cpp \
utils/log.cpp \
DynamicDll.cpp \
utils/PCMRemap.cpp \
utils/RegExp.cpp \
OMXSubtitleTagSami.cpp \
OMXOverlayCodecText.cpp \
BitstreamConverter.cpp \
linux/RBP.cpp \
OMXThread.cpp \
OMXReader.cpp \
OMXStreamInfo.cpp \
OMXAudioCodecOMX.cpp \
OMXCore.cpp \
OMXVideo.cpp \
OMXAudio.cpp \
OMXClock.cpp \
File.cpp \
OMXPlayerVideo.cpp \
OMXPlayerAudio.cpp \
OMXPlayerSubtitles.cpp \
SubtitleRenderer.cpp \
Unicode.cpp \
Srt.cpp \
KeyConfig.cpp \
OMXControl.cpp \
Keyboard.cpp \
omxplayer.cpp \
OBJS+=$(filter %.o,$(SRC:.cpp=.o))
all: omxplayer.bin
%.o: %.cpp
@rm -f $@
$(CXX) $(CFLAGS) $(INCLUDES) -c $< -o $@ -Wno-deprecated-declarations
list_test:
$(CXX) -O3 -o list_test list_test.cpp
version:
bash gen_version.sh > version.h
omxplayer.bin: version $(OBJS)
$(CXX) $(LDFLAGS) -o omxplayer.bin $(OBJS) -lvchiq_arm -lvcos -lrt -lpthread -lavutil -lavcodec -lavformat -lswscale -lswresample -lpcre
clean:
for i in $(OBJS); do (if test -e "$$i"; then ( rm $$i ); fi ); done
@rm -f omxplayer.old.log omxplayer.log
@rm -f omxplayer.bin
@rm -rf omxplayer-dist
@rm -f omxplayer-dist.tar.gz
install:
install -d $(DESTDIR)/usr/bin
install -Dm755 omxplayer $(DESTDIR)/usr/bin/omxplayer
install -Dm755 omxplayer.bin $(DESTDIR)/usr/bin

View file

@ -1,29 +0,0 @@
USE_BUILDROOT=0
JOBS=1
CFLAGS :=
CXXFLAGS := $(CFLAGS)
CPPFLAGS := $(CFLAGS)
LDFLAGS :=
LD := ld
CC := gcc
CXX := g++
OBJDUMP := objdump
RANLIB := ranlib
STRIP := strip
AR := ar
CXXCP := $(CXX) -E
CFLAGS += -pipe -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux \
-mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check \
-O3 -mstructure-size-boundary=32 -mno-sched-prolog
LDFLAGS += -L@CROSSBASE@/opt/vc/lib/ -Wl,-rpath /opt/vc/lib -L@CROSSBASE@/usr/lib
INCLUDES += -I@CROSSBASE@/opt/vc/include -I@CROSSBASE@/opt/vc/include/interface/vcos/ \
-I@CROSSBASE@/opt/vc/include/interface/vcos/pthreads \
-I@CROSSBASE@/opt/vc/include/interface/vmcs_host/linux \
-I@CROSSBASE@/usr/include -I@CROSSBASE@/usr/include/dbus-1.0 \
-I@CROSSBASE@/usr/lib/dbus-1.0/include -I@CROSSBASE@/usr/include/freetype2

View file

@ -0,0 +1,105 @@
--- Makefile
+++ Makefile
@@ -2,9 +2,9 @@ include Makefile.include
CFLAGS+=-std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DHAVE_LIBSWRESAMPLE_SWRESAMPLE_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST
-LDFLAGS+=-L./ -Lffmpeg_compiled/usr/local/lib/ -lc -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz
+LDFLAGS+=-L./ -lc -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz
-INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/local/include/ -I /usr/include/dbus-1.0 -I /usr/lib/arm-linux-gnueabihf/dbus-1.0/include
+INCLUDES+=-I./ -Ilinux
DIST ?= omxplayer-dist
@@ -39,7 +39,7 @@ SRC=linux/XMemUtils.cpp \
OBJS+=$(filter %.o,$(SRC:.cpp=.o))
-all: dist
+all: omxplayer.bin
%.o: %.cpp
@rm -f $@
@@ -51,7 +51,7 @@ version:
bash gen_version.sh > version.h
omxplayer.bin: version $(OBJS)
- $(CXX) $(LDFLAGS) -o omxplayer.bin $(OBJS) -lvchiq_arm -lvcos -ldbus-1 -lrt -lpthread -lavutil -lavcodec -lavformat -lswscale -lswresample -lpcre
+ $(CXX) -o omxplayer.bin $(OBJS) $(LDFLAGS) -lvchiq_arm -lvcos -ldbus-1 -lrt -lpthread -lavutil -lavcodec -lavformat -lswscale -lswresample -lpcre
$(STRIP) omxplayer.bin
help.h: README.md Makefile
@@ -74,19 +74,9 @@ clean:
@rm -rf $(DIST)
@rm -f omxplayer-dist.tar.gz
-ffmpeg:
- @rm -rf ffmpeg
- make -f Makefile.ffmpeg
- make -f Makefile.ffmpeg install
-
-dist: omxplayer.bin omxplayer.1
- mkdir -p $(DIST)/usr/lib/omxplayer
- mkdir -p $(DIST)/usr/bin
- mkdir -p $(DIST)/usr/share/doc/omxplayer
- mkdir -p $(DIST)/usr/share/man/man1
- cp omxplayer omxplayer.bin $(DIST)/usr/bin
- cp COPYING $(DIST)/usr/share/doc/omxplayer
- cp README.md $(DIST)/usr/share/doc/omxplayer/README
- cp omxplayer.1 $(DIST)/usr/share/man/man1
- cp -a ffmpeg_compiled/usr/local/lib/*.so* $(DIST)/usr/lib/omxplayer/
- cd $(DIST); tar -czf ../$(DIST).tgz *
+install:
+ install -d $(DESTDIR)/usr/bin
+ install -d $(DESTDIR)/usr/share/doc/omxplayer
+ install omxplayer $(DESTDIR)/usr/bin/
+ install omxplayer.bin $(DESTDIR)/usr/bin/
+ install README.md $(DESTDIR)/usr/share/doc/omxplayer/
--- Makefile.include
+++ Makefile.include
@@ -1,40 +1,4 @@
-USE_BUILDROOT=0
-FLOAT=hard
-
-ifeq ($(USE_BUILDROOT), 1)
-BUILDROOT :=/opt/xbmc-bcm/buildroot
-SDKSTAGE :=$(BUILDROOT)/output/staging
-TARGETFS :=$(BUILDROOT)/output/target
-TOOLCHAIN :=$(BUILDROOT)/output/host/usr/
-HOST :=arm-unknown-linux-gnueabi
-SYSROOT :=$(BUILDROOT)/output/host/usr/arm-unknown-linux-gnueabi/sysroot
-else
-BUILDROOT :=/opt/bcm-rootfs
-SDKSTAGE :=/opt/bcm-rootfs
-TARGETFS :=/opt/bcm-rootfs
-TOOLCHAIN :=/home/dc4/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/
-HOST :=arm-linux-gnueabihf
-#SYSROOT :=$(TOOLCHAIN)/arm-bcm2708hardfp-linux-gnueabi/sysroot
-SYSROOT :=/opt/bcm-rootfs
-endif
-
-JOBS=7
-
-CFLAGS := -isystem$(PREFIX)/include
-CXXFLAGS := $(CFLAGS)
-CPPFLAGS := $(CFLAGS)
-LDFLAGS := -L$(BUILDROOT)/lib
-LD := $(TOOLCHAIN)/bin/$(HOST)-ld --sysroot=$(SYSROOT)
-CC := $(TOOLCHAIN)/bin/$(HOST)-gcc --sysroot=$(SYSROOT)
-CXX := $(TOOLCHAIN)/bin/$(HOST)-g++ --sysroot=$(SYSROOT)
-OBJDUMP := $(TOOLCHAIN)/bin/$(HOST)-objdump
-RANLIB := $(TOOLCHAIN)/bin/$(HOST)-ranlib
-STRIP := $(TOOLCHAIN)/bin/$(HOST)-strip
-AR := $(TOOLCHAIN)/bin/$(HOST)-ar
-CXXCP := $(CXX) -E
-PATH := $(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(PATH)
-
-CFLAGS += -pipe -mfloat-abi=$(FLOAT) -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog
-LDFLAGS += -L$(SDKSTAGE)/lib -L$(SDKSTAGE)/usr/lib -L$(SDKSTAGE)/opt/vc/lib/ -Lpcre/build
-#INCLUDES += -isystem$(SDKSTAGE)/usr/include -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SYSROOT)/usr/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -isystem$(SDKSTAGE)/usr/include/freetype2
-INCLUDES += -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SYSROOT)/usr/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -Ipcre/build -Iboost-trunk -Ifreetype2/include
+#STRIP := strip
+CFLAGS += -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog
+LDFLAGS += -L$(XBPS_CROSS_BASE)/opt/vc/lib/
+INCLUDES += -I$(XBPS_CROSS_BASE)/opt/vc/include -I$(XBPS_CROSS_BASE)/opt/vc/include/interface/vmcs_host/linux -I$(XBPS_CROSS_BASE)/opt/vc/include/interface/vcos/pthreads -I$(XBPS_CROSS_BASE)/usr/include/freetype2 -I$(XBPS_CROSS_BASE)/usr/include/dbus-1.0 -I$(XBPS_CROSS_BASE)/usr/lib/dbus-1.0/include

View file

@ -0,0 +1,11 @@
--- DllAvFilter.h
+++ DllAvFilter.h
@@ -124,7 +124,7 @@ public:
}
virtual int avfilter_graph_parse(AVFilterGraph *graph, const char *filters, AVFilterInOut **inputs, AVFilterInOut **outputs, void *log_ctx)
{
- return ::avfilter_graph_parse(graph, filters, inputs, outputs, log_ctx);
+ return ::avfilter_graph_parse(graph, filters, *inputs, *outputs, log_ctx);
}
virtual int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx)
{

View file

@ -12,6 +12,7 @@ homepage="https://github.com/popcornmix/omxplayer"
# XXX only rpi
only_for_archs="armv6l"
build_style=gnu-makefile
make_build_args="XBPS_CROSS_BASE=$XBPS_CROSS_BASE"
hostmakedepends="pkg-config git"
makedepends="rpi-firmware>=20130913 pcre-devel boost-devel freetype-devel ffmpeg-devel>=2.4 dbus-devel"
depends="rpi-firmware>=20130913 freefont-ttf"
@ -24,8 +25,6 @@ do_fetch() {
}
pre_build() {
cp -f ${FILESDIR}/* .
sed -e 's,/usr/share/fonts/truetype/freefont,/usr/share/fonts/TTF,g' -i omxplayer.cpp
mkdir -p /opt/vc/lib
sed -e "s|@CROSSBASE@|${XBPS_CROSS_BASE}|g" -i Makefile.include
}