update to libquicktime-1.0.5

* newer ffmpeg
* use sndio in lqtplay
This commit is contained in:
jakemsr 2010-05-26 22:31:23 +00:00
parent d43c66a699
commit b666a5d2b5
8 changed files with 239 additions and 63 deletions

View File

@ -1,11 +1,10 @@
# $OpenBSD: Makefile,v 1.22 2009/08/10 06:33:02 kili Exp $
# $OpenBSD: Makefile,v 1.23 2010/05/26 22:31:23 jakemsr Exp $
# $FreeBSD: ports/multimedia/libquicktime/Makefile,v 1.19 2004/03/16 04:23:53 edwin Exp $
SHARED_ONLY= Yes
COMMENT= library for reading and writing quicktime files
DISTNAME= libquicktime-1.1.1
PKGNAME= ${DISTNAME}p4
DISTNAME= libquicktime-1.1.5
CATEGORIES= multimedia
SHARED_LIBS= quicktime 4.0
@ -17,21 +16,23 @@ PERMIT_PACKAGE_FTP= Yes
PERMIT_DISTFILES_CDROM= Yes
PERMIT_DISTFILES_FTP= Yes
WANTLIB= GL ICE SM X11 Xau Xaw Xcomposite Xcursor \
Xdamage Xdmcp Xext Xfixes Xi Xinerama Xrandr \
Xrender Xt Xv a52 atk-1.0 c cairo expat \
faac faad fontconfig freetype gio-2.0 \
glib-2.0 glitz gmodule-2.0 gobject-2.0 m \
ogg ossaudio pango-1.0 pangocairo-1.0 \
pangoft2-1.0 pcre pixman-1 pthread theora \
z oil-0.3 schroedinger-1.0 pthread-stubs xcb
WANTLIB= GL ICE SM X11 Xau Xaw Xcomposite Xcursor \
Xdamage Xdmcp Xext Xfixes Xi Xinerama Xrandr \
Xrender Xt Xv atk-1.0 c cairo expat faac \
faad fontconfig freetype gio-2.0 glib-2.0 \
glitz gmodule-2.0 gobject-2.0 gsm \
gthread-2.0 m ogg oil-0.3 pango-1.0 \
pangocairo-1.0 pangoft2-1.0 pcre pixman-1 \
pthread pthread-stubs schroedinger-1.0 \
sndio speex theora xcb xcb-render \
xcb-render-util z
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=libquicktime/}
MODULES= devel/gettext
BUILD_DEPENDS= :doxygen-*:devel/doxygen
LIB_DEPENDS= avcodec.>=13.1,avutil.>=6,swscale.>=1:ffmpeg->=20080620p10:graphics/ffmpeg \
LIB_DEPENDS= avcodec.>=14,avutil.>=7,swscale.>=2:ffmpeg->=20100512:graphics/ffmpeg \
dv.>=4::multimedia/libdv \
gtk-x11-2.0.>=800.8,gdk-x11-2.0.>=800.8,gdk_pixbuf-2.0.>=800.8::x11/gtk+2 \
jpeg.>=9::graphics/jpeg \
@ -50,11 +51,16 @@ MAKE_ENV= DOXYGEN_ENCODE_PATH_STRIP=${WRKSRC}
CONFIGURE_STYLE= gnu
CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include -I${LOCALBASE}/include/libpng -I${X11BASE}/include" \
LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib" \
ac_cv_search_pthread_create=-pthread
ac_cv_search_pthread_create=-pthread \
ac_cv_lib_ossaudio__oss_ioctl=no \
ac_cv_header_soundcard_h=no
CONFIGURE_ARGS= ${CONFIGURE_SHARED} \
--enable-gpl \
--with-libdv \
--without-alsa
post-install:
rm -f ${PREFIX}/share/doc/libquicktime/apiref/dir_*.html
.include <bsd.port.mk>

View File

@ -1,5 +1,5 @@
MD5 (libquicktime-1.1.1.tar.gz) = iN+DikULbGdogZ1FuswJJg==
RMD160 (libquicktime-1.1.1.tar.gz) = 0Ci3xh0hjeiRA9MiUZQhYH6IzXA=
SHA1 (libquicktime-1.1.1.tar.gz) = E2Zve4LYBFoD6SWWbPgJhnSBQEE=
SHA256 (libquicktime-1.1.1.tar.gz) = kO+hqDYTNoBmnKx0O3JmCHIK2POq3Ntx/x4p5RC9DRM=
SIZE (libquicktime-1.1.1.tar.gz) = 1009816
MD5 (libquicktime-1.1.5.tar.gz) = D9RbPe/wMXwvhaNLGxBqzw==
RMD160 (libquicktime-1.1.5.tar.gz) = x2yGy/bMKbOl90Ku6Hw+T+LTg60=
SHA1 (libquicktime-1.1.5.tar.gz) = EdrZL+nbtnqo70LDQE06y6euKjc=
SHA256 (libquicktime-1.1.5.tar.gz) = ywVsgm+pysUfciedFGvAjdBYFhl7zrGG0kJ6VvrYa/Q=
SIZE (libquicktime-1.1.5.tar.gz) = 997305

View File

@ -1,7 +1,7 @@
$OpenBSD: patch-configure,v 1.9 2009/05/06 20:24:15 kili Exp $
--- configure.orig Wed Dec 17 12:13:49 2008
+++ configure Wed May 6 21:49:21 2009
@@ -25174,7 +25174,7 @@ fi
$OpenBSD: patch-configure,v 1.10 2010/05/26 22:31:23 jakemsr Exp $
--- configure.orig Tue Feb 23 12:43:36 2010
+++ configure Tue May 18 17:55:59 2010
@@ -14553,7 +14553,7 @@ fi
VORBIS_LIBS="-L$prefix/lib"
fi
@ -10,7 +10,7 @@ $OpenBSD: patch-configure,v 1.9 2009/05/06 20:24:15 kili Exp $
VORBISFILE_LIBS="-lvorbisfile"
VORBISENC_LIBS="-lvorbisenc"
@@ -25389,11 +25389,11 @@ if test "x$with_lame" != "xno"; then
@@ -14713,11 +14713,11 @@ if test "x$with_lame" != "xno"; then
OLD_CFLAGS=$CFLAGS
OLD_LIBS=$LIBS
@ -25,4 +25,4 @@ $OpenBSD: patch-configure,v 1.9 2009/05/06 20:24:15 kili Exp $
+#fi
{ echo "$as_me:$LINENO: checking for lame" >&5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lame" >&5

View File

@ -1,14 +0,0 @@
$OpenBSD: patch-src_timecode_c,v 1.1 2009/06/18 07:50:18 jasper Exp $
Fix potential 64-bit issue due to missing header.
--- src/timecode.c.orig Thu Jun 18 09:40:52 2009
+++ src/timecode.c Thu Jun 18 09:41:13 2009
@@ -23,6 +23,7 @@
*******************************************************************************/
#include <stdlib.h>
+#include <string.h>
#include "lqt_private.h"

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-utils_Makefile_in,v 1.4 2010/05/26 22:31:23 jakemsr Exp $
--- utils/Makefile.in.orig Tue May 18 17:41:51 2010
+++ utils/Makefile.in Tue May 18 17:42:07 2010
@@ -416,7 +416,7 @@ qtyuv4toyuv_SOURCES = yuv4toyuv.c
qtyuv4toyuv_LDADD = @UTIL_LIBADD@
lqtplay_SOURCES = lqtplay.c common.c
lqtplay_LDADD = @UTIL_LIBADD@ @X_LIBS@ -lXaw -lXt @X_PRE_LIBS@ -lXext \
- -lXv @GL_LIBS@ -lX11 @X_EXTRA_LIBS@ -lm @ALSA_LIBS@ @OSSAUDIO_LIBS@
+ -lXv @GL_LIBS@ -lX11 @X_EXTRA_LIBS@ -lm @ALSA_LIBS@ @OSSAUDIO_LIBS@ -lsndio
INCLUDES = -I$(top_srcdir)/include \
-I$(top_builddir)/include/quicktime \

View File

@ -1,12 +1,195 @@
$OpenBSD: patch-utils_lqtplay_c,v 1.5 2009/04/29 21:22:14 kili Exp $
--- utils/lqtplay.c.orig Sat Aug 2 20:40:00 2008
+++ utils/lqtplay.c Thu Apr 16 21:55:32 2009
@@ -978,7 +978,7 @@ static void qt_init(FILE *fp, char *filename)
$OpenBSD: patch-utils_lqtplay_c,v 1.6 2010/05/26 22:31:23 jakemsr Exp $
--- utils/lqtplay.c.orig Thu Jan 14 10:41:17 2010
+++ utils/lqtplay.c Wed May 26 15:23:48 2010
@@ -41,6 +41,8 @@
#include "common.h"
+#define HAVE_SNDIO
+
#include <X11/Xlib.h>
#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
@@ -70,6 +72,10 @@
#ifdef HAVE_ALSA
#include <alsa/asoundlib.h>
#endif
+#ifdef HAVE_SNDIO
+#include <poll.h>
+#include <sndio.h>
+#endif
#include <unistd.h>
#include <stdlib.h>
@@ -789,6 +795,88 @@ return 0;
/* ------------------------------------------------------------------------ */
+/* sndio code */
+
+#ifdef HAVE_SNDIO
+
+static struct sio_hdl *hdl;
+static struct sio_par par;
+
+static int use_sndio = 1;
+
+static int oss_sr,oss_hr;
+
+#else
+
+/* Disable sndio */
+static int use_sndio = 0;
+
+#endif /* HAVE_SNDIO */
+
+static int
+sndio_setformat(int chan, int rate)
+{
+#ifdef HAVE_SNDIO
+ sio_initpar(&par);
+ par.bits = 16;
+ par.sig = 1;
+ par.rate = rate;
+ par.pchan = chan;
+ /* yes, lqtplay wants really small blocks */
+ par.round = rate / 100;
+ par.appbufsz = par.round * 25;
+
+ if (!sio_setpar(hdl, &par) || !sio_getpar(hdl, &par)) {
+ fprintf(stderr,_("ERROR: can't set sound format\n"));
+ exit(1);
+ }
+
+ if (par.pchan != chan || par.bits != 16 || par.sig != 1 ||
+ par.le != SIO_LE_NATIVE) {
+ fprintf(stderr,_("ERROR: can't set requested sound format\n"));
+ exit(1);
+ }
+
+ if (par.rate != rate) {
+ oss_sr = rate;
+ oss_hr = par.rate;
+ fprintf(stderr,_("WARNING: sample rate mismatch (need %d, got %d)\n"),
+ rate, par.rate);
+ }
+
+ return 0;
+#else
+ return 1;
+#endif
+}
+
+static int sndio_init(char *dev, int channels, int rate)
+{
+#ifdef HAVE_SNDIO
+
+ /* this code is absolutely horrible. lqtplay expects to be able
+ to write at least every 2 ms. do not follow this example. */
+
+ hdl = sio_open(NULL, SIO_PLAY, 1);
+ if (NULL == hdl) {
+ fprintf(stderr,_("ERROR: can't open sndio\n"));
+ return -1;
+ }
+ sndio_setformat(channels,rate);
+
+ if (!sio_start(hdl)) {
+ fprintf(stderr,_("ERROR: can't start sndio\n"));
+ return -1;
+ }
+ return 0;
+#else
+ return 1;
+#endif
+}
+
+
+
+/* ------------------------------------------------------------------------ */
/* oss code */
#ifndef AFMT_S16_NE
@@ -972,7 +1060,11 @@ static void qt_init(FILE *fp, char *filename)
qt_hasaudio = 1;
qt_channels = quicktime_track_channels(qt,0);
qt_sample_rate = quicktime_sample_rate(qt,0);
- if (use_alsa == 1) {
+ if (use_sndio == 1) {
+ if (-1 == sndio_init(adev_name, qt_channels,
+ qt_sample_rate)) {
+ qt_hasaudio = 0;}
+ } else if (use_alsa == 1) {
if (-1 == alsa_init(adev_name, qt_channels,
qt_sample_rate)) {
qt_hasaudio = 0;}
}
else {
- if (-1 == oss_init("/dev/dsp", qt_channels,
+ if (-1 == oss_init("/dev/audio", qt_channels,
qt_sample_rate))
qt_hasaudio = 0;
}
@@ -1422,6 +1514,48 @@ static int qt_alsa_audio_write()
return 0;
}
+static int qt_sndio_audio_write(void)
+{
+#ifdef HAVE_SNDIO
+ struct pollfd pfd;
+ int rc, n, revents;
+
+ if(!qt_audio_samples_in_buffer)
+ decode_audio(AUDIO_BLOCK_SIZE);
+
+ /* this code is absolutely horrible. do not follow this example. */
+
+ n = sio_pollfd(hdl, &pfd, POLLOUT);
+ rc = poll(&pfd, n, 10000);
+ if (rc <= 0)
+ goto fail;
+ revents = sio_revents(hdl, &pfd);
+ if (!(revents & POLLOUT))
+ goto fail;
+ rc = sio_write(hdl,qt_audio_ptr,qt_audio_samples_in_buffer * qt_channels * sizeof(*qt_audio));
+ switch (rc) {
+ case 0:
+ goto fail;
+ break;
+ default:
+ qt_audio_samples_in_buffer -= rc / (qt_channels * sizeof(*qt_audio));
+ qt_audio_ptr += rc / sizeof(*qt_audio);
+ break;
+ }
+
+ if (qt_audio_eof && 0 == qt_audio_samples_in_buffer) {
+ return -1;
+ }
+#endif
+ return 0;
+fail:
+ fprintf(stderr,_("write sndio: Huh? no data to write/no data written?\n"));
+ sio_close(hdl);
+ hdl = NULL;
+ qt_hasaudio = 0;
+ return 0;
+}
+
static int qt_oss_audio_write(void)
{
int rc;
@@ -1803,7 +1937,7 @@ int main(int argc, char *argv[])
FD_SET(ConnectionNumber(dpy),&rd);
max = ConnectionNumber(dpy);
if (qt_hasaudio) {
- if (use_alsa == 0) {
+ if (use_alsa == 0 && use_sndio == 0) {
FD_SET(oss_fd,&wr);
if (oss_fd > max)
max = oss_fd;
@@ -1841,7 +1975,10 @@ int main(int argc, char *argv[])
}
rc = select(max+1,&rd,&wr,NULL,&wait);
if (qt_hasaudio) {
- if (use_alsa == 1) {
+ if (use_sndio == 1) {
+ if (0 != qt_sndio_audio_write()) qt_hasaudio = 0;
+ }
+ else if (use_alsa == 1) {
if (0 != qt_alsa_audio_write()) qt_hasaudio = 0;
}
else if (FD_ISSET(oss_fd,&wr)) {

View File

@ -1,10 +0,0 @@
$OpenBSD: patch-utils_yuv4toyuv_c,v 1.3 2008/01/26 02:02:50 jakemsr Exp $
--- utils/yuv4toyuv.c.orig Wed Feb 14 03:40:59 2007
+++ utils/yuv4toyuv.c Sat Jan 19 21:06:11 2008
@@ -1,5 +1,6 @@
/*******************************************************************************
yuv4toyuv.c
+#include "funcprotos.h"
libquicktime - A library for reading and writing quicktime/avi/mp4 files.
http://libquicktime.sourceforge.net

View File

@ -1,4 +1,4 @@
@comment $OpenBSD: PLIST,v 1.8 2009/04/29 21:22:14 kili Exp $
@comment $OpenBSD: PLIST,v 1.9 2010/05/26 22:31:23 jakemsr Exp $
@bin bin/libquicktime_config
bin/lqt-config
@bin bin/lqt_transcode
@ -14,7 +14,6 @@ include/lqt/
include/lqt/colormodels.h
include/lqt/lqt.h
include/lqt/lqt_atoms.h
include/lqt/lqt_codecapi.h
include/lqt/lqt_codecinfo.h
include/lqt/lqt_qtvr.h
include/lqt/lqt_version.h
@ -40,6 +39,8 @@ lib/libquicktime/lqt_mjpeg.so
lib/libquicktime/lqt_png.so
@comment lib/libquicktime/lqt_rtjpeg.la
lib/libquicktime/lqt_rtjpeg.so
@comment lib/libquicktime/lqt_schroedinger.la
lib/libquicktime/lqt_schroedinger.so
@comment lib/libquicktime/lqt_videocodec.la
lib/libquicktime/lqt_videocodec.so
@comment lib/libquicktime/lqt_vorbis.la
@ -53,8 +54,6 @@ share/doc/libquicktime/
share/doc/libquicktime/apiref/
share/doc/libquicktime/apiref/annotated.html
share/doc/libquicktime/apiref/colormodels_8h-source.html
share/doc/libquicktime/apiref/dir_2c23d5540d2a668b0550fa40aa20e858.html
share/doc/libquicktime/apiref/dir_4abde00ac62fef88430208d846181602.html
share/doc/libquicktime/apiref/dirs.html
share/doc/libquicktime/apiref/doxygen.css
share/doc/libquicktime/apiref/doxygen.png