vlc | branch: master | Laurent Aimar <[email protected]> | Fri Oct 7 21:15:26 2011 +0200| [96deda44de28358268775d0c03fceb32423c6cb2] | committer: Laurent Aimar
Fixed ogg meta data parsing. It fixes #5374. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=96deda44de28358268775d0c03fceb32423c6cb2 --- modules/demux/vorbis.h | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) diff --git a/modules/demux/vorbis.h b/modules/demux/vorbis.h index 21fbb35..b3d42a3 100644 --- a/modules/demux/vorbis.h +++ b/modules/demux/vorbis.h @@ -58,6 +58,15 @@ static inline void vorbis_ParseComment( vlc_meta_t **pp_meta, const uint8_t *p_d if( !p_meta ) return; + bool hasTitle = false; + bool hasAlbum = false; + bool hasTrackNumber = false; + bool hasArtist = false; + bool hasCopyright = false; + bool hasDescription = false; + bool hasGenre = false; + bool hasDate = false; + for( ; i_comment > 0; i_comment-- ) { char *psz; @@ -78,7 +87,7 @@ static inline void vorbis_ParseComment( vlc_meta_t **pp_meta, const uint8_t *p_d if( !strncasecmp(psz, txt, strlen(txt)) ) \ { \ const char *oldval = vlc_meta_Get( p_meta, vlc_meta_ ## var ); \ - if( oldval ) \ + if( oldval && has##var) \ { \ char * newval; \ if( asprintf( &newval, "%s,%s", oldval, &psz[strlen(txt)] ) == -1 ) \ @@ -88,6 +97,7 @@ static inline void vorbis_ParseComment( vlc_meta_t **pp_meta, const uint8_t *p_d } \ else \ vlc_meta_Set( p_meta, vlc_meta_ ## var, &psz[strlen(txt)] ); \ + has##var = true; \ } IF_EXTRACT("TITLE=", Title ) else IF_EXTRACT("ALBUM=", Album ) _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
