You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
3.0 KiB
85 lines
3.0 KiB
1 year ago
|
From 81b2bf43c688e081454b6382db8c7cd917232446 Mon Sep 17 00:00:00 2001
|
||
|
From: Nicolas Chauvet <kwizart@gmail.com>
|
||
|
Date: Thu, 12 Oct 2023 16:42:21 +0200
|
||
|
Subject: [PATCH] Revert "taglib: wav: fix RIFF INFO tags parsing"
|
||
|
|
||
|
This reverts commit 85868dfb0319dced501a78dfd2ee6432d6be90f3.
|
||
|
---
|
||
|
modules/meta_engine/taglib.cpp | 38 ++++++----------------------------
|
||
|
1 file changed, 6 insertions(+), 32 deletions(-)
|
||
|
|
||
|
diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
|
||
|
index 84b401c795a9..d65607b98dc0 100644
|
||
|
--- a/modules/meta_engine/taglib.cpp
|
||
|
+++ b/modules/meta_engine/taglib.cpp
|
||
|
@@ -845,28 +845,6 @@ static void ReadMetaFromMP4( MP4::Tag* tag, demux_meta_t *p_demux_meta, vlc_meta
|
||
|
}
|
||
|
}
|
||
|
|
||
|
-static int ReadWAVMeta( const RIFF::WAV::File *wav, demux_meta_t *demux_meta )
|
||
|
-{
|
||
|
- if( !wav->hasID3v2Tag() && !wav->hasInfoTag() )
|
||
|
- return VLC_EGENERIC;
|
||
|
-
|
||
|
- demux_meta->p_meta = vlc_meta_New();
|
||
|
- if( !demux_meta->p_meta )
|
||
|
- return VLC_ENOMEM;
|
||
|
-
|
||
|
- TAB_INIT( demux_meta->i_attachments, demux_meta->attachments );
|
||
|
-
|
||
|
- if( wav->hasInfoTag() )
|
||
|
- ReadMetaFromBasicTag( wav->InfoTag(), demux_meta->p_meta );
|
||
|
- if( wav->hasID3v2Tag() )
|
||
|
- {
|
||
|
- // Re-read basic tags from id3 to prioritize it against INFO tags.
|
||
|
- ReadMetaFromBasicTag( wav->ID3v2Tag(), demux_meta->p_meta );
|
||
|
- ReadMetaFromId3v2( wav->ID3v2Tag(), demux_meta, demux_meta->p_meta );
|
||
|
- }
|
||
|
- return VLC_SUCCESS;
|
||
|
-}
|
||
|
-
|
||
|
/**
|
||
|
* Get the tags from the file using TagLib
|
||
|
* @param p_this: the demux object
|
||
|
@@ -942,14 +920,6 @@ static int ReadMeta( vlc_object_t* p_this)
|
||
|
|
||
|
if( f.isNull() )
|
||
|
return VLC_EGENERIC;
|
||
|
-
|
||
|
- // XXX: Workaround a quirk in TagLib that doesn't merge id3 tags and RIFF
|
||
|
- // INFO tags in `Wav::File::tag()`'s return value.
|
||
|
- // This forces us to parse WAV separately for now.
|
||
|
- const auto* riff_wav = dynamic_cast<RIFF::WAV::File*>(f.file());
|
||
|
- if (riff_wav != nullptr)
|
||
|
- return ReadWAVMeta(riff_wav, p_demux_meta);
|
||
|
-
|
||
|
if( !f.tag() || f.tag()->isEmpty() )
|
||
|
return VLC_EGENERIC;
|
||
|
|
||
|
@@ -957,6 +927,7 @@ static int ReadMeta( vlc_object_t* p_this)
|
||
|
if( !p_meta )
|
||
|
return VLC_ENOMEM;
|
||
|
|
||
|
+
|
||
|
// Read the tags from the file
|
||
|
ReadMetaFromBasicTag(f.tag(), p_meta);
|
||
|
|
||
|
@@ -1011,9 +982,12 @@ static int ReadMeta( vlc_object_t* p_this)
|
||
|
ReadMetaFromXiph( ogg_opus->tag(), p_demux_meta, p_meta );
|
||
|
#endif
|
||
|
}
|
||
|
- else if( RIFF::AIFF::File* riff_aiff = dynamic_cast<RIFF::AIFF::File*>(f.file()) )
|
||
|
+ else if( dynamic_cast<RIFF::File*>(f.file()) )
|
||
|
{
|
||
|
- ReadMetaFromId3v2( riff_aiff->tag(), p_demux_meta, p_meta );
|
||
|
+ if( RIFF::AIFF::File* riff_aiff = dynamic_cast<RIFF::AIFF::File*>(f.file()) )
|
||
|
+ ReadMetaFromId3v2( riff_aiff->tag(), p_demux_meta, p_meta );
|
||
|
+ else if( RIFF::WAV::File* riff_wav = dynamic_cast<RIFF::WAV::File*>(f.file()) )
|
||
|
+ ReadMetaFromId3v2( riff_wav->tag(), p_demux_meta, p_meta );
|
||
|
}
|
||
|
else if( TrueAudio::File* trueaudio = dynamic_cast<TrueAudio::File*>(f.file()) )
|
||
|
{
|
||
|
--
|
||
|
2.41.0
|
||
|
|