D5417: add an extractor using qtmultimedia

David Faure noreply at phabricator.kde.org
Mon Jun 12 07:24:20 UTC 2017


dfaure requested changes to this revision.
dfaure added a comment.
This revision now requires changes to proceed.


  If this extractor is worse than the taglib one, shouldn't the cmake run issue a warning about that? Or does it already do so because "taglib not found"?

INLINE COMMENTS

> qtmultimediaextractortest.cpp:2
> +/*
> +<<<<<<< HEAD
> + * TagLibExtractor tests.

you probably don't want to commit a merge conflict...

> qtmultimediaextractortest.cpp:8
> + *
> + * Copyright (C) 2015  Juan Palacios <jpalaciosdev at gmail.com>
> + *

+ your own copyright?

> qtmultimediaextractortest.cpp:39
> +{
> +    return QLatin1String(INDEXER_TESTS_SAMPLE_FILES_PATH) + QDir::separator() + fileName;
> +}

What if the path contains non-latin characters?
This should use QFile::decodeName instead.

> qtmultimediaextractor.cpp:2
> +/*
> +    <one line to give the library's name and an idea of what it does.>
> +    Copyright (C) 2012  Vishesh Handa <me at vhanda.in>

todo

> qtmultimediaextractor.cpp:78
> +        if (available && mMetadataExtractor->isMetaDataAvailable()) {
> +            album = mMetadataExtractor->metaData(QMediaMetaData::AlbumTitle);
> +            title = mMetadataExtractor->metaData(QMediaMetaData::Title);

The mutex needs to be locked for all these writes.

> qtmultimediaextractor.cpp:210
> +
> +    auto extractionResult = mSynchronizeCondition.wait(&mSynchronizeMutex, 400);
> +

If setMediaSource calls wakeAll before this thread gets here, we will wait forever (QWaitCondition = if you're not sleeping, you miss the wakeup call).

Use a QSemaphore instead of a QWaitCondition to fix this problem.

> qtmultimediaextractor.cpp:213
> +    if (!extractionResult) {
> +        mSynchronizeMutex.unlock();
> +        return;

Use QMutexLocker instead of manual lock/unlock, to make sure no unlock is forgotten.

> qtmultimediaextractor.h:2
> +/*
> +    <one line to give the library's name and an idea of what it does.>
> +    Copyright (C) 2012  Vishesh Handa <me at vhanda.in>

todo ;)

REPOSITORY
  R286 KFileMetaData

REVISION DETAIL
  https://phabricator.kde.org/D5417

To: mgallien, #frameworks, dfaure
Cc: dfaure, #frameworks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20170612/e0cc7480/attachment-0001.html>


More information about the Kde-frameworks-devel mailing list