Commit 26f68e7f authored by Felix Paul Kühne's avatar Felix Paul Kühne

* meta fixes

parent 71de7a93
...@@ -83,14 +83,17 @@ struct demux_sys_t ...@@ -83,14 +83,17 @@ struct demux_sys_t
int i_our_duration; int i_our_duration;
int i_mux_rate; int i_mux_rate;
char* psz_title;
char* psz_artist;
char* psz_copyright;
char* psz_description;
int i_track; int i_track;
real_track_t **track; real_track_t **track;
uint8_t buffer[65536]; uint8_t buffer[65536];
int64_t i_pcr; int64_t i_pcr;
vlc_meta_t *p_meta;
}; };
static int Demux( demux_t *p_demux ); static int Demux( demux_t *p_demux );
...@@ -660,8 +663,18 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) ...@@ -660,8 +663,18 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
case DEMUX_GET_META: case DEMUX_GET_META:
{ {
vlc_meta_t **pp_meta = (vlc_meta_t**)va_arg( args, vlc_meta_t** ); vlc_meta_t *p_meta = (vlc_meta_t*)va_arg( args, vlc_meta_t* );
*pp_meta = p_sys->p_meta;
/* the core will crash if we provide NULL strings, so check
* every string first */
if( p_sys->psz_title )
vlc_meta_SetTitle( p_meta, p_sys->psz_title );
if( p_sys->psz_artist )
vlc_meta_SetArtist( p_meta, p_sys->psz_artist );
if( p_sys->psz_copyright )
vlc_meta_SetCopyright( p_meta, p_sys->psz_copyright );
if( p_sys->psz_description )
vlc_meta_SetDescription( p_meta, p_sys->psz_description );
return VLC_SUCCESS; return VLC_SUCCESS;
} }
...@@ -685,8 +698,6 @@ static int HeaderRead( demux_t *p_demux ) ...@@ -685,8 +698,6 @@ static int HeaderRead( demux_t *p_demux )
uint32_t i_size; uint32_t i_size;
int64_t i_skip; int64_t i_skip;
int i_version; int i_version;
p_sys->p_meta = vlc_meta_New();
for( ;; ) for( ;; )
{ {
...@@ -762,7 +773,7 @@ static int HeaderRead( demux_t *p_demux ) ...@@ -762,7 +773,7 @@ static int HeaderRead( demux_t *p_demux )
msg_Dbg( p_demux, " - title=`%s'", psz ); msg_Dbg( p_demux, " - title=`%s'", psz );
EnsureUTF8( psz ); EnsureUTF8( psz );
vlc_meta_SetTitle( p_sys->p_meta, psz ); asprintf( &p_sys->psz_title, psz );
free( psz ); free( psz );
i_skip -= i_len; i_skip -= i_len;
} }
...@@ -777,7 +788,7 @@ static int HeaderRead( demux_t *p_demux ) ...@@ -777,7 +788,7 @@ static int HeaderRead( demux_t *p_demux )
msg_Dbg( p_demux, " - author=`%s'", psz ); msg_Dbg( p_demux, " - author=`%s'", psz );
EnsureUTF8( psz ); EnsureUTF8( psz );
vlc_meta_SetArtist( p_sys->p_meta, psz ); asprintf( &p_sys->psz_artist, psz );
free( psz ); free( psz );
i_skip -= i_len; i_skip -= i_len;
} }
...@@ -792,7 +803,7 @@ static int HeaderRead( demux_t *p_demux ) ...@@ -792,7 +803,7 @@ static int HeaderRead( demux_t *p_demux )
msg_Dbg( p_demux, " - copyright=`%s'", psz ); msg_Dbg( p_demux, " - copyright=`%s'", psz );
EnsureUTF8( psz ); EnsureUTF8( psz );
vlc_meta_SetCopyright( p_sys->p_meta, psz ); asprintf( &p_sys->psz_copyright, psz );
free( psz ); free( psz );
i_skip -= i_len; i_skip -= i_len;
} }
...@@ -807,7 +818,7 @@ static int HeaderRead( demux_t *p_demux ) ...@@ -807,7 +818,7 @@ static int HeaderRead( demux_t *p_demux )
msg_Dbg( p_demux, " - comment=`%s'", psz ); msg_Dbg( p_demux, " - comment=`%s'", psz );
EnsureUTF8( psz ); EnsureUTF8( psz );
vlc_meta_SetDescription( p_sys->p_meta, psz ); asprintf( &p_sys->psz_description, psz );
free( psz ); free( psz );
i_skip -= i_len; i_skip -= i_len;
} }
......
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