Commit 96deda44 authored by Laurent Aimar's avatar Laurent Aimar

Fixed ogg meta data parsing.

It fixes #5374.
parent 8116eb93
...@@ -58,6 +58,15 @@ static inline void vorbis_ParseComment( vlc_meta_t **pp_meta, const uint8_t *p_d ...@@ -58,6 +58,15 @@ static inline void vorbis_ParseComment( vlc_meta_t **pp_meta, const uint8_t *p_d
if( !p_meta ) if( !p_meta )
return; 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-- ) for( ; i_comment > 0; i_comment-- )
{ {
char *psz; char *psz;
...@@ -78,7 +87,7 @@ static inline void vorbis_ParseComment( vlc_meta_t **pp_meta, const uint8_t *p_d ...@@ -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)) ) \ if( !strncasecmp(psz, txt, strlen(txt)) ) \
{ \ { \
const char *oldval = vlc_meta_Get( p_meta, vlc_meta_ ## var ); \ const char *oldval = vlc_meta_Get( p_meta, vlc_meta_ ## var ); \
if( oldval ) \ if( oldval && has##var) \
{ \ { \
char * newval; \ char * newval; \
if( asprintf( &newval, "%s,%s", oldval, &psz[strlen(txt)] ) == -1 ) \ 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 ...@@ -88,6 +97,7 @@ static inline void vorbis_ParseComment( vlc_meta_t **pp_meta, const uint8_t *p_d
} \ } \
else \ else \
vlc_meta_Set( p_meta, vlc_meta_ ## var, &psz[strlen(txt)] ); \ vlc_meta_Set( p_meta, vlc_meta_ ## var, &psz[strlen(txt)] ); \
has##var = true; \
} }
IF_EXTRACT("TITLE=", Title ) IF_EXTRACT("TITLE=", Title )
else IF_EXTRACT("ALBUM=", Album ) else IF_EXTRACT("ALBUM=", Album )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment