[vlmc-devel] [PATCH] Fix guessing as a wrong type of media when its onMetaDataComputed is not yet called
Hugo Beauzée-Luyssen
hugo at beauzee.fr
Tue Apr 12 15:00:53 CEST 2016
On 04/11/2016 05:17 AM, Yikai Lu wrote:
> If loading in MainWorkflow is too fast to compute media's metadata, it's highly likely that the workflow will misjudge the type of ClipWorkflow.
> ---
> src/Library/MediaContainer.cpp | 4 +++-
> src/Media/Clip.cpp | 2 +-
> src/Media/Media.cpp | 5 ++++-
> 3 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/src/Library/MediaContainer.cpp b/src/Library/MediaContainer.cpp
> index a0b3364..ec6b5a5 100644
> --- a/src/Library/MediaContainer.cpp
> +++ b/src/Library/MediaContainer.cpp
> @@ -195,7 +195,9 @@ MediaContainer::count() const
> Media*
> MediaContainer::createMediaFromVariant( const QVariant& var )
> {
> - Media* m = addMedia( QFileInfo( var.toString() ) );
> + auto map = var.toMap();
> + Media* m = addMedia( QFileInfo( map["path"].toString() ) );
> + m->setFileType( (Media::FileType) map["type"].toInt() );
> return m;
> }
>
> diff --git a/src/Media/Clip.cpp b/src/Media/Clip.cpp
> index 4f29f8e..b0ad42e 100644
> --- a/src/Media/Clip.cpp
> +++ b/src/Media/Clip.cpp
> @@ -241,7 +241,7 @@ Clip::toVariant() const
> { "notes", m_notes }
> };
> if ( isRootClip() )
> - h.insert( "media", m_media->toVariant() );
> + h.insert( "media", m_media->fileInfo()->absoluteFilePath() );
> else
> {
> h.insert( "parent", m_parent->uuid().toString() );
> diff --git a/src/Media/Media.cpp b/src/Media/Media.cpp
> index 9f708f1..cdbbd31 100644
> --- a/src/Media/Media.cpp
> +++ b/src/Media/Media.cpp
> @@ -151,7 +151,10 @@ Media::onMetaDataComputed()
> QVariant
> Media::toVariant() const
> {
> - return QVariant( m_fileInfo->absoluteFilePath() );
> + return QVariant( QVariantHash {
> + { "path", m_fileInfo->absoluteFilePath() },
> + { "type", (int) m_fileType }
> + } );
> }
>
> void
>
If the correct type is guaranteed to be known (which is the case with
the new media library), do you need this extra complexity?
More information about the Vlmc-devel
mailing list