[lfs-patches] r2435 - in trunk: . k3b

bdubbs at linuxfromscratch.org bdubbs at linuxfromscratch.org
Fri May 4 10:36:55 PDT 2012


Author: bdubbs
Date: 2012-05-04 11:36:50 -0600 (Fri, 04 May 2012)
New Revision: 2435

Added:
   trunk/k3b/
   trunk/k3b/k3b-2.0.2-ffmpeg_fix-1.patch
Log:
Add k3b-ffmpeg patch

Added: trunk/k3b/k3b-2.0.2-ffmpeg_fix-1.patch
===================================================================
--- trunk/k3b/k3b-2.0.2-ffmpeg_fix-1.patch	                        (rev 0)
+++ trunk/k3b/k3b-2.0.2-ffmpeg_fix-1.patch	2012-05-04 17:36:50 UTC (rev 2435)
@@ -0,0 +1,104 @@
+Submitted By:            Bruce Dubbs <bdubbs at linuxfromscratch.org>
+Date:                    2012-05-04
+Initial Package Version: 1.0.9
+Upstream Status:         In version control
+Origin:                  https://projects.kde.org/projects/extragear/multimedia/k3b/repository/revisions/2f845b34badb614882b7e38ac38b00041ac2832d/diff/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
+Description:             Fixes k3b for newer ffmpeg releases
+
+
+commit 2f845b34badb614882b7e38ac38b00041ac2832d
+Author: Michal Malek <michalm at 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 );




More information about the patches mailing list