Commit abce4012 authored by Michael's avatar Michael

k3b: rebuild for libav

parent ff354f07
#
# KDE SC Packages for Chakra, part of chakra-project.org
# Apps Packages for Chakra, part of chakra-project.org
#
# maintainer (i686): Phil Miller <philm[at]chakra-project[dog]org>
# maintainer (x86_64): Manuel Tortosa <manutortosa[at]chakra-project[dot]org>
# include global config
source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
pkgname=k3b
pkgver=2.0.2
pkgrel=2
depends=('kdebase-runtime' 'kdemultimedia-common' 'libsamplerate' 'libmad'
pkgrel=6
depends=('kde-runtime' 'libkcddb' 'libkcompactdisc' 'libsamplerate' 'libmad'
'ffmpeg>=0.5' 'taglib>=1.4' 'libmpcdec>=1.2.5' 'libdvdread>=4.1.3'
'cdrdao' 'cdrkit' 'shared-mime-info' 'libxft' 'musicbrainz' 'docbook-xsl')
makedepends=('cmake' 'pkgconfig' 'automoc4' )
'cdrdao' 'cdrkit' 'shared-mime-info' 'libxft' 'libmusicbrainz3' 'docbook-xsl')
makedepends=('cmake' 'pkgconfig' 'automoc4' 'dvd+rw-tools')
pkgdesc="Feature-rich and easy to handle CD burning application"
arch=("i686" "x86_64")
license=('GPL')
install=$pkgname.install
source=(http://downloads.sourceforge.net/sourceforge/k3b/${pkgname}-${pkgver}.tar.bz2)
url="http://k3b.sourceforge.net/"
optdepends=('dvd+rw-tools: for dvd burning support'
'vcdimager: for vcd burning support'
'transcode: for advanced mpeg conversion support'
'emovix: for bootable multimedia cd/dvd support')
categories=('multimedia')
options=(!libtool)
md5sums=('c86113af31a2032e57fd2f302b5f637a')
options=('!libtool')
source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
"k3b-2.0.2-ffmpeg.patch"
"k3b-2.0.2-libav9.patch"
"k3b-2.0.2-libavformat54.patch")
sha256sums=('af176f29c1d2339c4648d461476227cb07bcd0c75056f2a4006f253e3ef5b7cd'
'741b069ba4ffab7cef2cd5c3908030ee26e546478bacae20fa29b1ad0f8f207a'
'c2dd0aec1dedf2b1cc8ef1633ad74495e8d555a77b1088f7e48f692bcd42c6ae'
'26f32012a3ee8017435decdd8d5d5ec1fabfd479e0c3e5f08eecb2bc013c9dde')
prepare() {
cd ${pkgname}-${pkgver}
patch -p1 -i "${srcdir}/k3b-2.0.2-ffmpeg.patch"
patch -p1 -i "${srcdir}/k3b-2.0.2-libav9.patch"
patch -p1 -i "${srcdir}/k3b-2.0.2-libavformat54.patch"
}
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
cd "${srcdir}"
mkdir build
mkdir -p build
cd build
cmake ../${pkgname}-${pkgver} \
-DCMAKE_INSTALL_PREFIX=/usr \
......@@ -41,7 +46,6 @@ build() {
}
package() {
cd ${srcdir}/build
make DESTDIR=${pkgdir} install
cd build
make DESTDIR="${pkgdir}" install
}
Index: src/option/k3bpluginoptiontab.cpp
===================================================================
--- src/option/k3bpluginoptiontab.cpp (revision 1168967)
+++ src/option/k3bpluginoptiontab.cpp (working copy)
@@ -43,12 +43,28 @@
layout->addWidget( label );
layout->addWidget( pluginSelector );
+ // find all categories
+ QHash<QString, QString> categoryNames;
+
foreach( K3b::Plugin* plugin, k3bcore->pluginManager()->plugins() ) {
- kDebug() << "Adding plugin" << plugin->pluginInfo().name();
- pluginSelector->addPlugins( QList<KPluginInfo>() << plugin->pluginInfo(),
+ categoryNames[ plugin->category() ] = plugin->categoryName();
+ }
+
+ // add all plugins in each category
+ foreach( const QString &category, categoryNames.keys() ) {
+ QList<KPluginInfo> plugins;
+
+ foreach( K3b::Plugin* plugin, k3bcore->pluginManager()->plugins() ) {
+ if ( plugin->category() == category ) {
+ plugins << plugin->pluginInfo();
+ kDebug() << "Adding plugin" << plugin->pluginInfo().name();
+ }
+ }
+ pluginSelector->addPlugins( plugins,
KPluginSelector::ReadConfigFile,
- plugin->categoryName(),
- plugin->category() );
+ categoryNames[ category ],
+ category
+ );
}
}
commit 61ca30beb978f68e72257408777c6433f33129bd
Author: Michal Malek <michalm@jabster.pl>
Date: Sun Aug 28 20:18:53 2011 +0200
Fixed compilation with new FFMPEG
BUG: 274817
FIXED-IN: 2.0.3
diff --git a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
index 0ad59fc..0c5f366 100644
--- a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+++ b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
@@ -109,7 +109,13 @@ bool K3bFFMpegFile::open()
#else
::AVCodecContext* codecContext = d->formatContext->streams[0]->codec;
#endif
- if( codecContext->codec_type != CODEC_TYPE_AUDIO ) {
+ if( codecContext->codec_type !=
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
+ AVMEDIA_TYPE_AUDIO)
+#else
+ CODEC_TYPE_AUDIO)
+#endif
+ {
kDebug() << "(K3bFFMpegFile) not a simple audio stream: " << m_filename;
return false;
}
@@ -225,8 +231,11 @@ QString K3bFFMpegFile::typeComment() const
QString K3bFFMpegFile::title() const
{
// FIXME: is this UTF8 or something??
- if( d->formatContext->title[0] != '\0' )
- return QString::fromLocal8Bit( d->formatContext->title );
+ AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "TITLE", NULL, 0 );
+ if( ade == NULL )
+ return QString();
+ if( ade->value != '\0' )
+ return QString::fromLocal8Bit( ade->value );
else
return QString();
}
@@ -235,8 +244,11 @@ QString K3bFFMpegFile::title() const
QString K3bFFMpegFile::author() const
{
// FIXME: is this UTF8 or something??
- if( d->formatContext->author[0] != '\0' )
- return QString::fromLocal8Bit( d->formatContext->author );
+ AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "ARTIST", NULL, 0 );
+ if( ade == NULL )
+ return QString();
+ if( ade->value != '\0' )
+ return QString::fromLocal8Bit( ade->value );
else
return QString();
}
@@ -245,8 +257,11 @@ QString K3bFFMpegFile::author() const
QString K3bFFMpegFile::comment() const
{
// FIXME: is this UTF8 or something??
- if( d->formatContext->comment[0] != '\0' )
- return QString::fromLocal8Bit( d->formatContext->comment );
+ AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "COMMENT", NULL, 0 );
+ if( ade == NULL )
+ return QString();
+ if( ade->value != '\0' )
+ return QString::fromLocal8Bit( ade->value );
else
return QString();
}
@@ -309,8 +324,13 @@ int K3bFFMpegFile::fillOutputBuffer()
#if LIBAVCODEC_VERSION_MAJOR < 52
int len = ::avcodec_decode_audio(
#else
+ #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
+ int len = ::avcodec_decode_audio3(
+ #else
int len = ::avcodec_decode_audio2(
+ #endif
#endif
+
#ifdef FFMPEG_BUILD_PRE_4629
&d->formatContext->streams[0]->codec,
#else
@@ -318,7 +338,11 @@ int K3bFFMpegFile::fillOutputBuffer()
#endif
(short*)d->alignedOutputBuffer,
&d->outputBufferSize,
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
+ &d->packet );
+#else
d->packetData, d->packetSize );
+#endif
if( d->packetSize <= 0 || len < 0 )
::av_free_packet( &d->packet );
Index: k3b-2.0.2/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
===================================================================
--- k3b-2.0.2.orig/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp 2013-04-22 17:46:13.523959500 +0200
+++ k3b-2.0.2/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp 2013-04-22 18:40:49.890007513 +0200
@@ -95,7 +95,7 @@ bool K3bFFMpegFile::open()
}
// analyze the streams
- ::av_find_stream_info( d->formatContext );
+ ::avformat_find_stream_info( d->formatContext, 0 );
// we only handle files containing one audio stream
if( d->formatContext->nb_streams != 1 ) {
@@ -129,7 +129,7 @@ bool K3bFFMpegFile::open()
// open the codec on our context
kDebug() << "(K3bFFMpegFile) found codec for " << m_filename;
- if( ::avcodec_open( codecContext, d->codec ) < 0 ) {
+ if( ::avcodec_open2( codecContext, d->codec, 0 ) < 0 ) {
kDebug() << "(K3bFFMpegDecoderFactory) could not open codec.";
return false;
}
--- k3b-2.0.2/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp.orig 2013-07-12 23:05:37.371157123 -0400
+++ k3b-2.0.2/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp 2013-07-12 23:12:01.649948739 -0400
@@ -55,7 +55,7 @@
K3b::Msf length;
// for decoding. ffmpeg requires 16-byte alignment.
- char outputBuffer[AVCODEC_MAX_AUDIO_FRAME_SIZE + 15];
+ char outputBuffer[192000 + 15];
char* alignedOutputBuffer;
char* outputBufferPos;
int outputBufferSize;
@@ -319,7 +319,7 @@
}
d->outputBufferPos = d->alignedOutputBuffer;
- d->outputBufferSize = AVCODEC_MAX_AUDIO_FRAME_SIZE;
+ d->outputBufferSize = 192000;
#if LIBAVCODEC_VERSION_MAJOR < 52
int len = ::avcodec_decode_audio(
Index: k3b-2.0.2/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
===================================================================
--- k3b-2.0.2.orig/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+++ k3b-2.0.2/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
@@ -88,7 +88,7 @@ bool K3bFFMpegFile::open()
close();
// open the file
- int err = ::av_open_input_file( &d->formatContext, m_filename.toLocal8Bit(), 0, 0, 0 );
+ int err = ::avformat_open_input( &d->formatContext, m_filename.toLocal8Bit(), 0, NULL);
if( err < 0 ) {
kDebug() << "(K3bFFMpegFile) unable to open " << m_filename << " with error " << err;
return false;
@@ -143,7 +143,7 @@ bool K3bFFMpegFile::open()
}
// dump some debugging info
- ::dump_format( d->formatContext, 0, m_filename.toLocal8Bit(), 0 );
+ ::av_dump_format( d->formatContext, 0, m_filename.toLocal8Bit(), 0 );
return true;
}
post_install() {
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
update-mime-database usr/share/mime &> /dev/null
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
update-mime-database usr/share/mime &> /dev/null
}
post_upgrade() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment