diff options
Diffstat (limited to 'multimedia/kino')
-rw-r--r-- | multimedia/kino/README | 11 | ||||
-rw-r--r-- | multimedia/kino/doinst.sh | 8 | ||||
-rw-r--r-- | multimedia/kino/kino.SlackBuild | 138 | ||||
-rw-r--r-- | multimedia/kino/kino.info | 10 | ||||
-rw-r--r-- | multimedia/kino/libav-0.7.diff | 60 | ||||
-rw-r--r-- | multimedia/kino/libav-0.8.diff | 57 | ||||
-rw-r--r-- | multimedia/kino/slack-desc | 19 | ||||
-rw-r--r-- | multimedia/kino/v4l1_includes.diff | 26 |
8 files changed, 329 insertions, 0 deletions
diff --git a/multimedia/kino/README b/multimedia/kino/README new file mode 100644 index 0000000000..72789a4cd4 --- /dev/null +++ b/multimedia/kino/README @@ -0,0 +1,11 @@ +Kino is a non-linear DV editor for GNU/Linux. + +It features excellent integration with IEEE 1394 for capture, VTR +control, and recording back to the camera. It captures video to disk +in raw DV or AVI format in both type-1 DV and type-2 DV (separate +audio stream) encodings. + +Kino does not support other video file formats or encodings, but it +can import them by transcoding with FFmpeg and optionally MEncoder. + +This requires libavc1394, libiec61883, libdv, ffmpeg, and libquicktime. diff --git a/multimedia/kino/doinst.sh b/multimedia/kino/doinst.sh new file mode 100644 index 0000000000..e4e6459838 --- /dev/null +++ b/multimedia/kino/doinst.sh @@ -0,0 +1,8 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + +if [ -x /usr/bin/update-mime-database ]; then + /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 +fi + diff --git a/multimedia/kino/kino.SlackBuild b/multimedia/kino/kino.SlackBuild new file mode 100644 index 0000000000..0c5409c249 --- /dev/null +++ b/multimedia/kino/kino.SlackBuild @@ -0,0 +1,138 @@ +#!/bin/sh +# +# Pierre Cazenave (LQ.org pwc101) +# revision date 11/11/2007 (Armistice Day) +# re-revised for 12.2 and new udev locations on 23/12/2008 (day before +# Christmas Eve!). +# Updated for version 1.3.4 17/06/2010 Thanks for Heinz Wiesinger for the +# nudge. +# +# I have set the -enable-local-ffmpeg option since I can't figure +# out how to get the ffmpeg subdirectory configure script to be +# passed the correct install directory for the creation of the +# package. I figured this wasn't too much of an issue, since +# there's a ffmpeg SlackBuild script already. +# +# If you can figure out how to get it to compile so that ffmpeg +# obeys the variables we set, please modify this accordinly. + +# Modified by Robby Workman <rworkman@slackbuilds.org> for better +# consistency with other scripts in our repository +# Re the note above, I wouldn't bother -- better to use ffmpeg +# that's installed on the system. + +PRGNAM=kino +VERSION=1.3.4 +BUILD=${BUILD:-4} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -eu + +rm -rf $TMP/$PRGNAM-$VERSION $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +chmod -R u+w,go+r-w,a-s . + +# some fixes and patches from gentoo, thanks fellas! +# https://sourceforge.net/tracker/?func=detail&aid=3304495&group_id=14103&atid=314103 +sed -i \ +-e '/\$(LIBQUICKTIME_LIBS) \\/d' \ +-e '/^[[:space:]]*\$(SRC_LIBS)/ a\ +\$(LIBQUICKTIME_LIBS) \\' src/Makefile.in || die "sed failed" + +# https://sourceforge.net/tracker/?func=detail&aid=3304499&group_id=14103&atid=314103 +sed -i -e '$a\ +ffmpeg/libavcodec/ps2/idct_mmi.c\ +ffmpeg/libavcodec/sparc/dsputil_vis.c\ +ffmpeg/libavcodec/sparc/vis.h\ +ffmpeg/libavutil/bswap.h\ +ffmpeg/libswscale/yuv2rgb_template.c\ +src/export.h\ +src/message.cc\ +src/page_bttv.cc' po/POTFILES.in || die "sed failed" + +sed -i -e 's:^#include <quicktime.h>:#include <lqt/quicktime.h>:' \ + src/filehandler.h || die "sed failed" + +# fix build with newer ffmpegs +patch -p1 < $CWD/libav-0.7.diff +patch -p1 < $CWD/libav-0.8.diff + +# fix building on kernel > 2.6.37, like in -current +# https://launchpad.net/ubuntu/natty/+source/kino/1.3.4-1ubuntu3 +patch -p1 < $CWD/v4l1_includes.diff + +LDFLAGS="-L/usr/lib$LIBDIRSUFFIX -lavcodec -lavformat -lavutil" \ +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib$LIBDIRSUFFIX \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-static \ + --enable-quicktime \ + --disable-local-ffmpeg + +make +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +find $PKG/usr/man -type f -exec gzip -9 {} \; + +# Give the udev rules a number prefix to be consistent with other rules files +# and move to the new location for 12.2; then remove $PKG/etc directory +mkdir -p $PKG/lib/udev/rules.d +mv $PKG/etc/udev/rules.d/kino.rules $PKG/lib/udev/rules.d/96-kino.rules +rm -rf $PKG/etc + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a ChangeLog AUTHORS BUGS COPYING INSTALL NEWS README TODO help/ \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \; + +# Fix incorrect ownership/permissions on help directory (from sshd to root). +chown -R root:root $PKG/usr/share/kino/help +find $PKG/usr/share/kino/help/en -type d -exec chmod 0755 {} \; +find $PKG/usr/share/kino/help/en -type f -exec chmod 0644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/multimedia/kino/kino.info b/multimedia/kino/kino.info new file mode 100644 index 0000000000..251b43173b --- /dev/null +++ b/multimedia/kino/kino.info @@ -0,0 +1,10 @@ +PRGNAM="kino" +VERSION="1.3.4" +HOMEPAGE="http://www.kinodv.org/" +DOWNLOAD="http://downloads.sourceforge.net/kino/kino-1.3.4.tar.gz" +MD5SUM="52f8ce690e45a089e3edc6c7af61a05c" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="libavc1394 libiec61883 libdv ffmpeg libquicktime" +MAINTAINER="Matteo Bernardini" +EMAIL="ponce@slackbuilds.org" diff --git a/multimedia/kino/libav-0.7.diff b/multimedia/kino/libav-0.7.diff new file mode 100644 index 0000000000..65c5bc3827 --- /dev/null +++ b/multimedia/kino/libav-0.7.diff @@ -0,0 +1,60 @@ +--- kino-1.3.4.orig/src/frame.cc 2011-07-17 14:54:59.089481638 +0200 ++++ kino-1.3.4/src/frame.cc 2011-07-17 15:09:23.199481714 +0200 +@@ -1063,7 +1063,12 @@ + AVPicture dest; + int got_picture; + +- avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() ); ++ AVPacket pkt; ++ av_init_packet(&pkt); ++ pkt.data = data; ++ pkt.size = GetFrameSize(); ++ ++ avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt ); + if ( got_picture ) + { + avpicture_fill( &dest, static_cast<uint8_t*>( rgb ), PIX_FMT_RGB24, GetWidth(), GetHeight() ); +@@ -1123,7 +1128,12 @@ + AVPicture output; + int got_picture; + +- avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() ); ++ AVPacket pkt; ++ av_init_packet(&pkt); ++ pkt.data = data; ++ pkt.size = GetFrameSize(); ++ ++ avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt ); + if ( got_picture ) + { + avpicture_fill( &output, static_cast<uint8_t*>( yuv ), PIX_FMT_YUV422, GetWidth(), GetHeight() ); +@@ -1156,7 +1166,12 @@ + AVFrame *frame = avcodec_alloc_frame(); + int got_picture; + +- avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() ); ++ AVPacket pkt; ++ av_init_packet(&pkt); ++ pkt.data = data; ++ pkt.size = GetFrameSize(); ++ ++ avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt ); + + int width = GetWidth(), height = GetHeight(); + +@@ -1319,12 +1334,12 @@ + #if defined(HAVE_LIBAVCODEC) + if ( avformatEncoder == NULL ) + { +- avformatEncoder = av_alloc_format_context(); ++ avformatEncoder = avformat_alloc_context(); + if ( avformatEncoder ) + { +- avformatEncoder->oformat = guess_format( "dv", NULL, NULL ); ++ avformatEncoder->oformat = av_guess_format( "dv", NULL, NULL ); + AVStream* vst = av_new_stream( avformatEncoder, 0 ); +- vst->codec->codec_type = CODEC_TYPE_VIDEO; ++ vst->codec->codec_type = AVMEDIA_TYPE_VIDEO; + vst->codec->codec_id = CODEC_ID_DVVIDEO; + vst->codec->bit_rate = 25000000; + vst->start_time = 0; diff --git a/multimedia/kino/libav-0.8.diff b/multimedia/kino/libav-0.8.diff new file mode 100644 index 0000000000..f98cbda0bc --- /dev/null +++ b/multimedia/kino/libav-0.8.diff @@ -0,0 +1,57 @@ +--- kino-1.3.4.orig/src/frame.cc 2012-05-14 19:55:42.153772418 -0700 ++++ kino-1.3.4/src/frame.cc 2012-05-14 20:28:34.448838653 -0700 +@@ -101,8 +101,9 @@ + #if defined(HAVE_LIBAVCODEC) + pthread_mutex_lock( &avcodec_mutex ); + av_register_all(); +- libavcodec = avcodec_alloc_context(); +- avcodec_open( libavcodec, avcodec_find_decoder( CODEC_ID_DVVIDEO ) ); ++ libavcodec = avcodec_alloc_context3(NULL); ++ avcodec_open2( libavcodec, ++ avcodec_find_decoder( CODEC_ID_DVVIDEO ), NULL ); + pthread_mutex_unlock( &avcodec_mutex ); + data = ( unsigned char* ) av_mallocz( 144000 ); + #if defined(HAVE_SWSCALE) +@@ -1338,7 +1339,7 @@ + if ( avformatEncoder ) + { + avformatEncoder->oformat = av_guess_format( "dv", NULL, NULL ); +- AVStream* vst = av_new_stream( avformatEncoder, 0 ); ++ AVStream* vst = avformat_new_stream( avformatEncoder, NULL ); + vst->codec->codec_type = AVMEDIA_TYPE_VIDEO; + vst->codec->codec_id = CODEC_ID_DVVIDEO; + vst->codec->bit_rate = 25000000; +@@ -1364,12 +1365,10 @@ + vst->sample_aspect_ratio = avcodecEncoder->sample_aspect_ratio; + #endif + avcodecEncoder->thread_count = 2; +- avcodec_thread_init( avcodecEncoder, avcodecEncoder->thread_count ); + avcodecEncoder->time_base= isPAL ? ( AVRational ){ 1, 25 } : ( AVRational ){ 1001, 30000 }; + avcodecEncoder->pix_fmt = isPAL ? PIX_FMT_YUV420P : PIX_FMT_YUV411P; + avcodecEncoder->flags |= CODEC_FLAG_INTERLACED_DCT; +- av_set_parameters( avformatEncoder, NULL ); +- avcodec_open( avcodecEncoder, avcodec_find_encoder( CODEC_ID_DVVIDEO ) ); ++ avcodec_open2( avcodecEncoder, avcodec_find_encoder( CODEC_ID_DVVIDEO ), NULL ); + av_new_packet( &avpacketEncoder, 144000 ); + tempImage = ( uint8_t* ) av_malloc( + avpicture_get_size( avcodecEncoder->pix_fmt, avcodecEncoder->width, avcodecEncoder->height ) ); +@@ -1475,16 +1474,16 @@ + + // Encode + bytesInFrame = avcodec_encode_video( avcodecEncoder, avpacketEncoder.data, size, output ); +- url_open_buf( &avformatEncoder->pb, data, bytesInFrame, URL_WRONLY ); ++ avformatEncoder->pb = avio_alloc_context(data, bytesInFrame, 0, NULL, NULL, NULL, NULL); + avpacketEncoder.size = bytesInFrame; + if ( !isEncoderHeaderWritten ) + { +- av_write_header( avformatEncoder ); ++ avformat_write_header( avformatEncoder, NULL ); + isEncoderHeaderWritten = true; + } + av_write_frame( avformatEncoder, &avpacketEncoder ); + #if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(0<<8)+0) +- url_close_buf( avformatEncoder->pb ); ++ avio_close( avformatEncoder->pb ); + #else + url_close_buf( &avformatEncoder->pb ); + #endif diff --git a/multimedia/kino/slack-desc b/multimedia/kino/slack-desc new file mode 100644 index 0000000000..31c6b95c1c --- /dev/null +++ b/multimedia/kino/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kino: Kino (a non-linear DV editor for GNU/Linux) +kino: +kino: It features excellent integration with IEEE 1394 for capture, VTR +kino: control, and recording back to the camera. It captures video to disk +kino: in raw DV or AVI format in both type-1 DV and type-2 DV (separate +kino: audio stream) encodings. +kino: Kino does not support other video file formats or encodings, but it +kino: can import them by transcoding with FFmpeg and optionally MEncoder. +kino: +kino: http://www.kinodv.org/ +kino: diff --git a/multimedia/kino/v4l1_includes.diff b/multimedia/kino/v4l1_includes.diff new file mode 100644 index 0000000000..01394fc471 --- /dev/null +++ b/multimedia/kino/v4l1_includes.diff @@ -0,0 +1,26 @@ +Index: kino-1.3.4/ffmpeg/libavdevice/v4l.c +=================================================================== +--- kino-1.3.4.orig/ffmpeg/libavdevice/v4l.c 2011-04-11 15:12:41.915593967 +0200 ++++ kino-1.3.4/ffmpeg/libavdevice/v4l.c 2011-04-11 15:13:05.825593979 +0200 +@@ -26,7 +26,7 @@ + #include <sys/mman.h> + #include <sys/time.h> + #define _LINUX_TIME_H 1 +-#include <linux/videodev.h> ++#include <libv4l1-videodev.h> + #include <time.h> + + typedef struct { +Index: kino-1.3.4/src/v4l.h +=================================================================== +--- kino-1.3.4.orig/src/v4l.h 2011-04-11 15:12:41.895593967 +0200 ++++ kino-1.3.4/src/v4l.h 2011-04-11 15:12:57.555593975 +0200 +@@ -40,7 +40,7 @@ + + #define _DEVICE_H_ + #define _LINUX_TIME_H +-#include <linux/videodev.h> ++#include <libv4l1-videodev.h> + + #include "displayer.h" + |