Sophie

Sophie

distrib > Mageia > 6 > armv7hl > media > core-updates-src > by-pkgid > 0b5d24ea0c543ddb9f2a81fbc7664751 > files > 3

k3b-2.10.0-9.1.mga6.src.rpm

From 1777236203f21eed7a9baade632472094c8081d3 Mon Sep 17 00:00:00 2001
From: Pino Toscano <pino@kde.org>
Date: Sat, 4 Feb 2017 10:48:45 +0100
Subject: [PATCH] ffmpeg: fix/simplify metadata conversion to string

Comparing a pointer with an integer value is (correctly) an error with
GCC 7.
---
 plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp | 21 +++------------------
 1 file changed, 3 insertions(+), 18 deletions(-)
 
diff --git a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp
index a4fc784..22928b2 100644
--- a/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp	2016-12-13 23:11:23.000000000 +0100
+++ b/plugins/decoder/ffmpeg/k3bffmpegwrapper.cpp	2017-02-12 12:16:02.525341894 +0100
@@ -258,12 +258,7 @@
 {
     // FIXME: is this UTF8 or something??
     AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "TITLE", NULL, 0 );
-    if( ade == NULL )
-        return QString();
-    if (strlen(ade->value))
-        return QString::fromLocal8Bit( ade->value );
-    else
-        return QString();
+    return ade && ade->value[0] != '\0' ? QString::fromLocal8Bit( ade->value ) : QString();
 }
 
 
@@ -271,12 +266,7 @@
 {
     // FIXME: is this UTF8 or something??
     AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "ARTIST", NULL, 0 );
-    if( ade == NULL )
-        return QString();
-    if (strlen(ade->value))
-        return QString::fromLocal8Bit( ade->value );
-    else
-        return QString();
+    return ade && ade->value[0] != '\0' ? QString::fromLocal8Bit( ade->value ) : QString();
 }
 
 
@@ -284,12 +274,7 @@
 {
     // FIXME: is this UTF8 or something??
     AVDictionaryEntry *ade = av_dict_get( d->formatContext->metadata, "COMMENT", NULL, 0 );
-    if( ade == NULL )
-        return QString();
-    if (strlen(ade->value))
-        return QString::fromLocal8Bit( ade->value );
-    else
-        return QString();
+    return ade && ade->value[0] != '\0' ? QString::fromLocal8Bit( ade->value ) : QString();
 }
 
 
@@ -377,7 +362,11 @@
 #endif
 
         if( d->packetSize <= 0 || len < 0 )
+#if LIBAVCODEC_VERSION_MAJOR >= 56
+            ::av_packet_unref( &d->packet );
+#else
             ::av_free_packet( &d->packet );
+#endif
         if( len < 0 ) {
             qDebug() << "(K3bFFMpegFile) decoding failed for " << m_filename;
             return -1;