- p_peek += 2; /* 00 00 */
- p_peek += 4; /* .ra4 or .ra5 */
- p_peek += 4; /* ?? */
- p_peek += 2; /* version (4 or 5) */
- i_header_size = GetDWBE( p_peek ); p_peek += 4; /* header size */
- i_flavor = GetWBE( p_peek ); p_peek += 2; /* codec flavor */
- i_coded_frame_size = GetDWBE( p_peek ); p_peek += 4;
- p_peek += 4; /* ?? */
- p_peek += 4; /* ?? */
- p_peek += 4; /* ?? */
- i_subpacket_h = GetWBE( p_peek ); p_peek += 2;
- i_frame_size = GetWBE( p_peek ); p_peek += 2;
- i_subpacket_size = GetWBE( p_peek ); p_peek += 2;
- p_peek += 2; /* ?? */
-
- if( i_version == 5 ) p_peek += 6; /* 0, srate, 0 */
-
- fmt.audio.i_rate = GetWBE( p_peek ); p_peek += 2;
- p_peek += 2; /* ?? */
- fmt.audio.i_bitspersample = GetWBE( p_peek ); p_peek += 2;
- fmt.audio.i_channels = GetWBE( p_peek ); p_peek += 2;
- fmt.audio.i_blockalign = i_frame_size;
-
- if( i_version == 5 )
- {
- p_peek += 4; /* genr */
+ i_header_size = GetWBE( p_peek ); p_peek += 2; /* Size from now */
+ p_peek += 10; /* Unknown */
+
+ p_peek += 4; /* Data Size */
+
+ /* Title */
+ i_len = *p_peek ; p_peek++;
+ if( i_len > 0 )
+ {
+ psz = malloc( i_len + 1 );
+ memcpy( psz, p_peek, i_len );
+ psz[i_len] = '\0';
+
+ msg_Dbg( p_demux, " - title=`%s'", psz );
+ EnsureUTF8( psz );
+ asprintf( &p_sys->psz_title, psz );
+ free( psz );
+ }
+ p_peek += i_len;
+
+ /* Authors */
+ i_len = *p_peek ; p_peek++;
+ if( i_len > 0 )
+ {
+ psz = malloc( i_len + 1 );
+ memcpy( psz, p_peek, i_len );
+ psz[i_len] = '\0';
+
+ msg_Dbg( p_demux, " - artist=`%s'", psz );
+ EnsureUTF8( psz );
+ asprintf( &p_sys->psz_artist, psz );
+ free( psz );
+ }
+ p_peek += i_len;
+
+ /* Copyright */
+ i_len = *p_peek ; p_peek++;
+ if( i_len > 0 )
+ {
+ psz = malloc( i_len + 1 );
+ memcpy( psz, p_peek, i_len );
+ psz[i_len] = '\0';
+
+ msg_Dbg( p_demux, " - Copyright=`%s'", psz );
+ EnsureUTF8( psz );
+ asprintf( &p_sys->psz_copyright, psz );
+ free( psz );
+ }
+ p_peek += i_len;
+
+ /* Comment */
+ i_len = *p_peek ; p_peek++;
+ if( i_len > 0 )
+ {
+ psz = malloc( i_len + 1 );
+ memcpy( psz, p_peek, i_len );
+ psz[i_len] = '\0';
+
+ msg_Dbg( p_demux, " - Comment=`%s'", psz );
+ EnsureUTF8( psz );
+ asprintf( &p_sys->psz_description, psz );
+ free( psz );
+ }
+ /* This might be unusefull */
+ p_peek += i_len;
+
+ p_peek ++; /* Unknown */
+ p_peek ++; /* FourCC length = 4 */