[lfs-patches] r2547 - trunk/k3b

krejzi at linuxfromscratch.org krejzi at linuxfromscratch.org
Fri Oct 26 02:56:48 PDT 2012


Author: krejzi
Date: 2012-10-26 03:56:43 -0600 (Fri, 26 Oct 2012)
New Revision: 2547

Added:
   trunk/k3b/k3b-2.0.2-ffmpeg_fix-2.patch
Log:
Add new k3b patch.

Added: trunk/k3b/k3b-2.0.2-ffmpeg_fix-2.patch
===================================================================
--- trunk/k3b/k3b-2.0.2-ffmpeg_fix-2.patch	                        (rev 0)
+++ trunk/k3b/k3b-2.0.2-ffmpeg_fix-2.patch	2012-10-26 09:56:43 UTC (rev 2547)
@@ -0,0 +1,110 @@
+Submitted By:            Armin K. <krejzi at email dot com>
+Date:                    2012-10-26
+Initial Package Version: 2.0.2
+Upstream Status:         Fixed upstream.
+Origin:                  Archlinux.
+Description:             Fixes building with newer versions of FFmpeg.
+
+--- k3b.orig/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp	2011-01-15 21:47:29.000000000 +0100
++++ k3b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp	2012-10-26 11:53:54.396490345 +0200
+@@ -88,7 +88,7 @@
+     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;
+@@ -109,7 +109,13 @@
+ #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;
+     }
+@@ -137,7 +143,7 @@
+     }
+ 
+     // 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;
+ }
+@@ -225,8 +231,11 @@
+ 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::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::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 @@
+ #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 @@
+ #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 );




More information about the patches mailing list