diff options
author | Pacho Ramos <pacho@gentoo.org> | 2017-06-17 11:26:05 +0200 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2017-06-17 11:28:05 +0200 |
commit | 03d7a29c19acd548611a8cd1f17f01745d1f5f6d (patch) | |
tree | 1455f153c5ae96ffff70281363d57242003d3cde /media-video/kino | |
parent | profiles/arch/ia64: package.use.mask: unmask USE=test dev-libs/libgdata-0.16.... (diff) | |
download | gentoo-03d7a29c19acd548611a8cd1f17f01745d1f5f6d.tar.gz gentoo-03d7a29c19acd548611a8cd1f17f01745d1f5f6d.tar.bz2 gentoo-03d7a29c19acd548611a8cd1f17f01745d1f5f6d.zip |
media-video/kino: Fix build with ffmpeg-3 (#539894), drop support for dead gstreamer:0.10
Package-Manager: Portage-2.3.6, Repoman-2.3.2
Diffstat (limited to 'media-video/kino')
-rw-r--r-- | media-video/kino/files/kino-1.3.4-ffmpeg3.patch | 157 | ||||
-rw-r--r-- | media-video/kino/files/kino-1.3.4-libavcodec-pkg-config.patch | 4 | ||||
-rw-r--r-- | media-video/kino/kino-1.3.4-r1.ebuild | 105 |
3 files changed, 264 insertions, 2 deletions
diff --git a/media-video/kino/files/kino-1.3.4-ffmpeg3.patch b/media-video/kino/files/kino-1.3.4-ffmpeg3.patch new file mode 100644 index 000000000000..57849d74e5c9 --- /dev/null +++ b/media-video/kino/files/kino-1.3.4-ffmpeg3.patch @@ -0,0 +1,157 @@ +--- ./src.orig/frame.cc 2016-12-18 12:25:48.480275083 -0600 ++++ ./src/frame.cc 2016-12-18 12:54:17.800740672 -0600 +@@ -103,7 +103,7 @@ + av_register_all(); + libavcodec = avcodec_alloc_context3(NULL); + avcodec_open2( libavcodec, +- avcodec_find_decoder( CODEC_ID_DVVIDEO ), NULL ); ++ avcodec_find_decoder( AV_CODEC_ID_DVVIDEO ), NULL ); + pthread_mutex_unlock( &avcodec_mutex ); + data = ( unsigned char* ) av_mallocz( 144000 ); + #if defined(HAVE_SWSCALE) +@@ -1060,7 +1060,7 @@ + int Frame::ExtractRGB( void * rgb ) + { + #if defined(HAVE_LIBAVCODEC) +- AVFrame *frame = avcodec_alloc_frame(); ++ AVFrame *frame = av_frame_alloc(); + AVPicture dest; + int got_picture; + +@@ -1072,17 +1072,17 @@ + avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt ); + if ( got_picture ) + { +- avpicture_fill( &dest, static_cast<uint8_t*>( rgb ), PIX_FMT_RGB24, GetWidth(), GetHeight() ); ++ avpicture_fill( &dest, static_cast<uint8_t*>( rgb ), AV_PIX_FMT_RGB24, GetWidth(), GetHeight() ); + #if defined(HAVE_SWSCALE) + if ( !imgConvertRgbCtx ) + imgConvertRgbCtx = sws_getContext( libavcodec->width, libavcodec->height, libavcodec->pix_fmt, +- GetWidth(), GetHeight(), PIX_FMT_RGB24, SWS_FAST_BILINEAR, NULL, NULL, NULL ); ++ GetWidth(), GetHeight(), AV_PIX_FMT_RGB24, SWS_FAST_BILINEAR, NULL, NULL, NULL ); + sws_scale( imgConvertRgbCtx, frame->data, frame->linesize, 0, libavcodec->height, dest.data, dest.linesize ); + #else +- img_convert( &dest, PIX_FMT_RGB24, reinterpret_cast<AVPicture*>( frame ), libavcodec->pix_fmt, GetWidth(), GetHeight() ); ++ img_convert( &dest, AV_PIX_FMT_RGB24, reinterpret_cast<AVPicture*>( frame ), libavcodec->pix_fmt, GetWidth(), GetHeight() ); + #endif + } +- av_free( frame ); ++ av_frame_free( &frame ); + #else + unsigned char *pixels[ 3 ]; + int pitches[ 3 ]; +@@ -1125,7 +1125,7 @@ + int Frame::ExtractYUV( void *yuv ) + { + #if defined(HAVE_LIBAVCODEC) +- AVFrame *frame = avcodec_alloc_frame();; ++ AVFrame *frame = av_frame_alloc();; + AVPicture output; + int got_picture; + +@@ -1137,14 +1137,14 @@ + avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt ); + if ( got_picture ) + { +- avpicture_fill( &output, static_cast<uint8_t*>( yuv ), PIX_FMT_YUV422, GetWidth(), GetHeight() ); ++ avpicture_fill( &output, static_cast<uint8_t*>( yuv ), AV_PIX_FMT_YUYV422, GetWidth(), GetHeight() ); + #if defined(HAVE_SWSCALE) + if ( !imgConvertYuvCtx ) + imgConvertYuvCtx = sws_getContext( libavcodec->width, libavcodec->height, libavcodec->pix_fmt, +- GetWidth(), GetHeight(), PIX_FMT_YUV422, SWS_FAST_BILINEAR, NULL, NULL, NULL ); ++ GetWidth(), GetHeight(), AV_PIX_FMT_YUYV422, SWS_FAST_BILINEAR, NULL, NULL, NULL ); + sws_scale( imgConvertYuvCtx, frame->data, frame->linesize, 0, libavcodec->height, output.data, output.linesize ); + #else +- img_convert( &output, PIX_FMT_YUV422, (AVPicture *)frame, libavcodec->pix_fmt, GetWidth(), GetHeight() ); ++ img_convert( &output, AV_PIX_FMT_YUYV422, (AVPicture *)frame, libavcodec->pix_fmt, GetWidth(), GetHeight() ); + #endif + } + av_free( frame ); +@@ -1164,7 +1164,7 @@ + int Frame::ExtractYUV420( uint8_t *yuv, uint8_t *output[ 3 ] ) + { + #if defined(HAVE_LIBAVCODEC) +- AVFrame *frame = avcodec_alloc_frame(); ++ AVFrame *frame = av_frame_alloc(); + int got_picture; + + AVPacket pkt; +@@ -1176,7 +1176,7 @@ + + int width = GetWidth(), height = GetHeight(); + +- if ( libavcodec->pix_fmt == PIX_FMT_YUV420P ) // PAL ++ if ( libavcodec->pix_fmt == AV_PIX_FMT_YUV420P ) // PAL + { + int h2 = height / 2; + int w2 = width / 2; +@@ -1204,7 +1204,7 @@ + } + } + } +- else // libavcodec.pix_fmt == PIX_FMT_YUV411P // NTSC ++ else // libavcodec.pix_fmt == AV_PIX_FMT_YUV411P // NTSC + { + int w4 = width / 4; + +@@ -1341,7 +1341,7 @@ + avformatEncoder->oformat = av_guess_format( "dv", NULL, NULL ); + AVStream* vst = avformat_new_stream( avformatEncoder, NULL ); + vst->codec->codec_type = AVMEDIA_TYPE_VIDEO; +- vst->codec->codec_id = CODEC_ID_DVVIDEO; ++ vst->codec->codec_id = AV_CODEC_ID_DVVIDEO; + vst->codec->bit_rate = 25000000; + vst->start_time = 0; + AVCodecContext *avcodecEncoder = vst->codec; +@@ -1366,14 +1366,14 @@ + #endif + avcodecEncoder->thread_count = 2; + avcodecEncoder->time_base= isPAL ? ( AVRational ){ 1, 25 } : ( AVRational ){ 1001, 30000 }; +- avcodecEncoder->pix_fmt = isPAL ? PIX_FMT_YUV420P : PIX_FMT_YUV411P; ++ avcodecEncoder->pix_fmt = isPAL ? AV_PIX_FMT_YUV420P : AV_PIX_FMT_YUV411P; + avcodecEncoder->flags |= CODEC_FLAG_INTERLACED_DCT; +- avcodec_open2( avcodecEncoder, avcodec_find_encoder( CODEC_ID_DVVIDEO ), NULL ); ++ avcodec_open2( avcodecEncoder, avcodec_find_encoder( AV_CODEC_ID_DVVIDEO ), NULL ); + av_new_packet( &avpacketEncoder, 144000 ); + tempImage = ( uint8_t* ) av_malloc( + avpicture_get_size( avcodecEncoder->pix_fmt, avcodecEncoder->width, avcodecEncoder->height ) ); + #if defined(HAVE_SWSCALE) +- imgConvertEncoderCtx = sws_getContext( avcodecEncoder->width, avcodecEncoder->height, PIX_FMT_RGB24, ++ imgConvertEncoderCtx = sws_getContext( avcodecEncoder->width, avcodecEncoder->height, AV_PIX_FMT_RGB24, + avcodecEncoder->width, avcodecEncoder->height, avcodecEncoder->pix_fmt, SWS_FAST_BILINEAR, NULL, NULL, NULL); + #endif + } +@@ -1452,8 +1452,8 @@ + if ( CreateEncoder( IsPAL(), IsWide() ) ) + { + #if defined(HAVE_LIBAVCODEC) +- AVFrame *input = avcodec_alloc_frame(); +- AVFrame *output = avcodec_alloc_frame(); ++ AVFrame *input = av_frame_alloc(); ++ AVFrame *output = av_frame_alloc(); + + if ( input && output ) + { +@@ -1464,16 +1464,19 @@ + + // Convert color space + avpicture_fill( ( AVPicture* )output, tempImage, avcodecEncoder->pix_fmt, width, height ); +- avpicture_fill( ( AVPicture* )input, rgb, PIX_FMT_RGB24, width, height ); ++ avpicture_fill( ( AVPicture* )input, rgb, AV_PIX_FMT_RGB24, width, height ); + #if defined(HAVE_SWSCALE) + sws_scale( imgConvertEncoderCtx, input->data, input->linesize, 0, height, + output->data, output->linesize); + #else +- img_convert( ( AVPicture* )output, avcodecEncoder->pix_fmt, ( AVPicture* )input, PIX_FMT_RGB24, width, height ); ++ img_convert( ( AVPicture* )output, avcodecEncoder->pix_fmt, ( AVPicture* )input, AV_PIX_FMT_RGB24, width, height ); + #endif + + // Encode +- bytesInFrame = avcodec_encode_video( avcodecEncoder, avpacketEncoder.data, size, output ); ++ ++ // bytesInFrame = avcodec_encode_video( avcodecEncoder, avpacketEncoder.data, size, output ); ++ int got_packet; ++ bytesInFrame = avcodec_encode_video2( avcodecEncoder, &avpacketEncoder, output, &got_packet ); + avformatEncoder->pb = avio_alloc_context(data, bytesInFrame, 0, NULL, NULL, NULL, NULL); + avpacketEncoder.size = bytesInFrame; + if ( !isEncoderHeaderWritten ) diff --git a/media-video/kino/files/kino-1.3.4-libavcodec-pkg-config.patch b/media-video/kino/files/kino-1.3.4-libavcodec-pkg-config.patch index d6a8953cf00a..c5cd12106f5c 100644 --- a/media-video/kino/files/kino-1.3.4-libavcodec-pkg-config.patch +++ b/media-video/kino/files/kino-1.3.4-libavcodec-pkg-config.patch @@ -1,5 +1,5 @@ ---- a/kino-1.3.4/configure.in 2009-09-08 02:35:23.000000000 -0400 -+++ b/kino-1.3.4/configure.in 2014-01-27 14:53:01.366063037 -0500 +--- a/configure.in 2009-09-08 02:35:23.000000000 -0400 ++++ b/configure.in 2014-01-27 14:53:01.366063037 -0500 @@ -221,7 +221,7 @@ if (test "x$avcodec_include" != x) || (test "x$avcodec_lib" != x) ; then local_legacy_ffmpeg_test diff --git a/media-video/kino/kino-1.3.4-r1.ebuild b/media-video/kino/kino-1.3.4-r1.ebuild new file mode 100644 index 000000000000..173197e1a2de --- /dev/null +++ b/media-video/kino/kino-1.3.4-r1.ebuild @@ -0,0 +1,105 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit autotools ltprune udev + +DESCRIPTION="Kino is a non-linear DV editor for GNU/Linux" +HOMEPAGE="http://www.kinodv.org/" +SRC_URI="mirror://sourceforge/kino/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" +IUSE="alsa dvdr gpac lame libav quicktime sox vorbis" + +# Optional dependency on cinelerra-cvs (as a replacement for libquicktime) +# dropped because kino may run with it but won't build anymore. + +CDEPEND=" + >=x11-libs/gtk+-2.6.0:2 + >=gnome-base/libglade-2.5.0 + >=dev-libs/glib-2:2 + x11-libs/libXv + dev-libs/libxml2:2 + media-libs/audiofile + >=sys-libs/libraw1394-1.0.0 + >=sys-libs/libavc1394-0.4.1 + >=media-libs/libdv-0.103 + media-libs/libsamplerate + media-libs/libiec61883 + media-libs/libv4l:0= + alsa? ( >=media-libs/alsa-lib-1.0.9 ) + !libav? ( >=media-video/ffmpeg-3:0= ) + libav? ( media-video/libav:0= ) + quicktime? ( >=media-libs/libquicktime-0.9.5 ) +" +DEPEND="${CDEPEND} + dev-util/intltool +" +RDEPEND="${CDEPEND} + media-video/mjpegtools + media-sound/rawrec + dvdr? ( media-video/dvdauthor + app-cdr/dvd+rw-tools ) + gpac? ( media-video/gpac ) + lame? ( media-sound/lame ) + sox? ( media-sound/sox ) + vorbis? ( media-sound/vorbis-tools ) +" + +src_prepare() { + default + + # Deactivating automagic alsa configuration, bug #134725 + if ! use alsa ; then + sed -i -e "s:HAVE_ALSA 1:HAVE_ALSA 0:" configure || die + fi + + # Fix bug #169590 + # 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 + + # Fix test failure discovered in bug #193947 + # 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 -i -e 's:^#include <quicktime.h>:#include <lqt/quicktime.h>:' src/filehandler.h || die + eapply "${FILESDIR}/${P}-v4l1.patch" + eapply "${FILESDIR}/${P}-libav-0.7.patch" + eapply "${FILESDIR}/${P}-libav-0.8.patch" + eapply "${FILESDIR}/${P}-libavcodec-pkg-config.patch" + eapply "${FILESDIR}/${P}-ffmpeg3.patch" + + mv configure.in configure.ac || die + eautoreconf +} + +src_configure() { + econf \ + --disable-local-ffmpeg \ + $(use_enable quicktime) \ + $(use_with sparc dv1394) \ + --with-udev-rules-dir="$(get_udevdir)"/rules.d \ + CPPFLAGS="-I${ROOT}usr/include/libavcodec -I${ROOT}usr/include/libavformat -I${ROOT}usr/include/libswscale" +} + +src_install() { + default + mv "${ED}/$(get_udevdir)"/rules.d/{,99-}kino.rules + fowners root:root -R /usr/share/kino/help #177378 + prune_libtool_files --all #385361 +} |