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;