From owner-svn-ports-head@freebsd.org Sun Dec 6 07:19:42 2015 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6D1DAA41036; Sun, 6 Dec 2015 07:19:42 +0000 (UTC) (envelope-from riggs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3D19C1D41; Sun, 6 Dec 2015 07:19:42 +0000 (UTC) (envelope-from riggs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tB67JfdP087620; Sun, 6 Dec 2015 07:19:41 GMT (envelope-from riggs@FreeBSD.org) Received: (from riggs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tB67Jee5087609; Sun, 6 Dec 2015 07:19:40 GMT (envelope-from riggs@FreeBSD.org) Message-Id: <201512060719.tB67Jee5087609@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: riggs set sender to riggs@FreeBSD.org using -f From: Thomas Zander Date: Sun, 6 Dec 2015 07:19:40 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r403092 - in head/multimedia: . omxplayer omxplayer/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Dec 2015 07:19:42 -0000 Author: riggs Date: Sun Dec 6 07:19:40 2015 New Revision: 403092 URL: https://svnweb.freebsd.org/changeset/ports/403092 Log: Add omxplayer, a command line media player originally developed for the RPi PR: 204392 Submitted by: mikael.urankar@gmail.com (maintainer) Added: head/multimedia/omxplayer/ head/multimedia/omxplayer/Makefile (contents, props changed) head/multimedia/omxplayer/distinfo (contents, props changed) head/multimedia/omxplayer/files/ head/multimedia/omxplayer/files/patch-Keyboard.cpp (contents, props changed) head/multimedia/omxplayer/files/patch-Keyboard.h (contents, props changed) head/multimedia/omxplayer/files/patch-Makefile (contents, props changed) head/multimedia/omxplayer/files/patch-Makefile.include (contents, props changed) head/multimedia/omxplayer/files/patch-linux_PlatformDefs.h (contents, props changed) head/multimedia/omxplayer/files/patch-omxplayer.cpp (contents, props changed) head/multimedia/omxplayer/pkg-descr (contents, props changed) Modified: head/multimedia/Makefile Modified: head/multimedia/Makefile ============================================================================== --- head/multimedia/Makefile Sun Dec 6 06:54:57 2015 (r403091) +++ head/multimedia/Makefile Sun Dec 6 07:19:40 2015 (r403092) @@ -267,6 +267,7 @@ SUBDIR += oggvideotools SUBDIR += ogmrip SUBDIR += ogmtools + SUBDIR += omxplayer SUBDIR += opencinematools SUBDIR += openh264 SUBDIR += openquicktime Added: head/multimedia/omxplayer/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/omxplayer/Makefile Sun Dec 6 07:19:40 2015 (r403092) @@ -0,0 +1,54 @@ +# Created by: mikael.urankar@gmail.com +# $FreeBSD$ + +PORTNAME= omxplayer +PORTVERSION= 20151109 +CATEGORIES= multimedia + +MAINTAINER= mikael.urankar@gmail.com +COMMENT= Raspberry Pi video player + +LICENSE= GPLv2 + +LIB_DEPENDS= libboost_thread.so:${PORTSDIR}/devel/boost-libs \ + libdbus-1.so:${PORTSDIR}/devel/dbus \ + libpcre.so:${PORTSDIR}/devel/pcre \ + libEGL.so:${PORTSDIR}/misc/raspberrypi-userland \ + libavcodec.so:${PORTSDIR}/multimedia/ffmpeg \ + libfreetype.so:${PORTSDIR}/print/freetype2 +RUN_DEPENDS= bash:${PORTSDIR}/shells/bash \ + ${LOCALBASE}/share/fonts/freefont-ttf/FreeSans.ttf:${PORTSDIR}/x11-fonts/freefont-ttf + +ONLY_FOR_ARCHS= armv6 + +CFLAGS+= -Dfopen64=fopen -Dfseeko64=fseeko -Dftello64=ftello +ALL_TARGET= omxplayer.bin + +USE_GITHUB= yes +GH_ACCOUNT= popcornmix +GH_TAGNAME= 6f073c9 + +USES= gmake shebangfix +USE_GCC= yes +SHEBANG_FILES= omxplayer + +PLIST_FILES= bin/omxplayer bin/omxplayer.bin +PORTDOCS= README.md + +OPTIONS_DEFINE= DOCS + +post-patch: + @${REINPLACE_CMD} -e \ + 's|LOCALBASE|${LOCALBASE}|g' ${WRKSRC}/omxplayer.cpp + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/omxplayer.bin ${STAGEDIR}${PREFIX}/bin + ${INSTALL_SCRIPT} ${WRKSRC}/omxplayer ${STAGEDIR}${PREFIX}/bin + +do-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} +.for i in ${PORTDOCS} + ${INSTALL_DATA} -p ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR} +.endfor + +.include Added: head/multimedia/omxplayer/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/omxplayer/distinfo Sun Dec 6 07:19:40 2015 (r403092) @@ -0,0 +1,2 @@ +SHA256 (popcornmix-omxplayer-20151109-6f073c9_GH0.tar.gz) = a88723f7f854386b53fb601b4f57cbad33a702556de83122661cc6cd5d877ff2 +SIZE (popcornmix-omxplayer-20151109-6f073c9_GH0.tar.gz) = 1203829 Added: head/multimedia/omxplayer/files/patch-Keyboard.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/omxplayer/files/patch-Keyboard.cpp Sun Dec 6 07:19:40 2015 (r403092) @@ -0,0 +1,64 @@ +--- Keyboard.cpp.orig 2015-10-24 12:09:14 UTC ++++ Keyboard.cpp +@@ -23,7 +23,6 @@ Keyboard::Keyboard() + new_termios = orig_termios; + new_termios.c_lflag &= ~(ICANON | ECHO | ECHOCTL | ECHONL); + new_termios.c_cflag |= HUPCL; +- new_termios.c_cc[VMIN] = 0; + + tcsetattr(STDIN_FILENO, TCSANOW, &new_termios); + } +@@ -74,13 +73,20 @@ void Keyboard::restore_term() + } + } + +-void Keyboard::Sleep(unsigned int dwMilliSeconds) ++int Keyboard::Hit() + { +- struct timespec req; +- req.tv_sec = dwMilliSeconds / 1000; +- req.tv_nsec = (dwMilliSeconds % 1000) * 1000000; ++ struct timeval timeo; ++ fd_set fds; + +- while ( nanosleep(&req, &req) == -1 && errno == EINTR && (req.tv_nsec > 0 || req.tv_sec > 0)); ++ timeo.tv_sec = 0; ++ timeo.tv_usec = 200000; ++ ++ FD_ZERO(&fds); ++ FD_SET(STDIN_FILENO, &fds); ++ ++ select(FD_SETSIZE, &fds, NULL, NULL, &timeo); ++ ++ return FD_ISSET(STDIN_FILENO, &fds); + } + + void Keyboard::Process() +@@ -90,9 +96,16 @@ void Keyboard::Process() + if (conn) + dbus_connection_read_write_dispatch(conn, 0); + int ch[8]; +- int chnum = 0; ++ int chnum, nb; + +- while ((ch[chnum] = getchar()) != EOF) chnum++; ++ if (Hit() == 0) ++ continue; ++ ++ ioctl(STDIN_FILENO, FIONREAD, &nb); ++ ++ for (chnum = 0; chnum < nb && chnum < 8; chnum++) { ++ ch[chnum] = getchar(); ++ } + + if (chnum > 1) ch[0] = ch[chnum - 1] | (ch[chnum - 2] << 8); + +@@ -101,8 +114,6 @@ void Keyboard::Process() + + if (m_keymap[ch[0]] != 0) + send_action(m_keymap[ch[0]]); +- else +- Sleep(20); + } + } + Added: head/multimedia/omxplayer/files/patch-Keyboard.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/omxplayer/files/patch-Keyboard.h Sun Dec 6 07:19:40 2015 (r403092) @@ -0,0 +1,11 @@ +--- Keyboard.h.orig 2015-10-24 12:09:14 UTC ++++ Keyboard.h +@@ -21,7 +21,7 @@ + void Process(); + void setKeymap(std::map keymap); + void setDbusName(std::string dbus_name); +- void Sleep(unsigned int dwMilliSeconds); ++ int Hit(); + int getEvent(); + private: + void restore_term(); Added: head/multimedia/omxplayer/files/patch-Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/omxplayer/files/patch-Makefile Sun Dec 6 07:19:40 2015 (r403092) @@ -0,0 +1,28 @@ +--- Makefile.orig 2015-10-24 12:09:14 UTC ++++ 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./ -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 -I$(LOCALBASE)/include/dbus-1.0 -I$(LOCALBASE)/include/dbus-1.0/include -I$(LOCALBASE)/include/freetype2 -I$(LOCALBASE)/include/ffmpeg + + DIST ?= omxplayer-dist + +@@ -48,11 +48,10 @@ all: dist + omxplayer.o: help.h keys.h + + version: +- bash gen_version.sh > version.h ++ sh 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 +- $(STRIP) omxplayer.bin ++ $(CXX) $(CFLAGS) $(LDFLAGS) -o omxplayer.bin $(OBJS) -lvchiq_arm -lvcos -ldbus-1 -lrt -lthr -lavutil -lavcodec -lavformat -lswscale -lswresample -lpcre + + help.h: README.md Makefile + awk '/SYNOPSIS/{p=1;print;next} p&&/KEY BINDINGS/{p=0};p' $< \ Added: head/multimedia/omxplayer/files/patch-Makefile.include ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/omxplayer/files/patch-Makefile.include Sun Dec 6 07:19:40 2015 (r403092) @@ -0,0 +1,47 @@ +--- Makefile.include.orig 2015-10-24 12:09:14 UTC ++++ Makefile.include +@@ -1,40 +1,7 @@ +-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 ++LDFLAGS := -L$(LOCALBASE)/lib -L$(LOCALBASE)/lib/ffmpeg + CXXCP := $(CXX) -E +-PATH := $(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(PATH) ++STRIP := strip ++FLOAT := softfp + + 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 ++INCLUDES += -I$(LOCALBASE)/include -I$(LOCALBASE)/include/interface/vcos/pthreads -I$(LOCALBASE)/include/interface/vmcs_host/linux -I$(LOCALBASE)/lib/dbus-1.0/include Added: head/multimedia/omxplayer/files/patch-linux_PlatformDefs.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/omxplayer/files/patch-linux_PlatformDefs.h Sun Dec 6 07:19:40 2015 (r403092) @@ -0,0 +1,29 @@ +--- linux/PlatformDefs.h.orig 2015-10-24 12:09:14 UTC ++++ linux/PlatformDefs.h +@@ -39,11 +39,11 @@ + #include + #include + #include +-#ifdef __APPLE__ ++#if defined(__APPLE__) + #include + #include + #include +-#else ++#elif defined(__linux__) + #include + #endif + #include +@@ -416,8 +416,12 @@ typedef struct _SECURITY_ATTRIBUTES { + #define FILE_CURRENT 1 + #define FILE_END 2 + ++#ifndef _S_IFREG + #define _S_IFREG S_IFREG ++#endif ++#ifndef _S_IFDIR + #define _S_IFDIR S_IFDIR ++#endif + #define MAX_PATH PATH_MAX + + #define _stat stat Added: head/multimedia/omxplayer/files/patch-omxplayer.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/omxplayer/files/patch-omxplayer.cpp Sun Dec 6 07:19:40 2015 (r403092) @@ -0,0 +1,13 @@ +--- omxplayer.cpp.orig 2015-10-24 12:09:14 UTC ++++ omxplayer.cpp +@@ -84,8 +86,8 @@ bool m_osd + bool m_no_keys = false; + std::string m_external_subtitles_path; + bool m_has_external_subtitles = false; +-std::string m_font_path = "/usr/share/fonts/truetype/freefont/FreeSans.ttf"; +-std::string m_italic_font_path = "/usr/share/fonts/truetype/freefont/FreeSansOblique.ttf"; ++std::string m_font_path = "/usr/local/share/fonts/freefont-ttf/FreeSans.ttf"; ++std::string m_italic_font_path = "/usr/local/share/fonts/freefont-ttf/FreeSansOblique.ttf"; + std::string m_dbus_name = "org.mpris.MediaPlayer2.omxplayer"; + bool m_asked_for_font = false; + bool m_asked_for_italic_font = false; Added: head/multimedia/omxplayer/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/omxplayer/pkg-descr Sun Dec 6 07:19:40 2015 (r403092) @@ -0,0 +1,5 @@ +OMXPlayer is a commandline OMX player for the Raspberry Pi. It was developed +as a testbed for the XBMC Raspberry PI implementation and is quite handy to +use standalone. + +WWW: https://github.com/popcornmix/omxplayer