typedef struct stream_t stream_t;
typedef struct stream_sys_t stream_sys_t;
typedef struct demux_t demux_t;
-typedef struct demux_meta_t demux_meta_t;
typedef struct demux_sys_t demux_sys_t;
typedef struct es_out_t es_out_t;
typedef struct es_out_id_t es_out_id_t;
****************************************************************************/
static int ParseTags( vlc_object_t *p_this )
{
- demux_t *p_demux = (demux_t *)p_this;
- demux_meta_t *p_demux_meta = (demux_meta_t*)p_demux->p_private;
+ demux_meta_t *p_demux_meta = (demux_meta_t *)p_this;
+ demux_t *p_demux = (demux_t *)p_demux_meta->p_demux;
bool b_seekable;
int64_t i_init;
- msg_Dbg( p_demux, "checking for ID3v1/2 and APEv1/2 tags" );
+ msg_Dbg( p_demux_meta, "checking for ID3v1/2 and APEv1/2 tags" );
stream_Control( p_demux->s, STREAM_CAN_FASTSEEK, &b_seekable );
if( !b_seekable )
return VLC_EGENERIC;
if( !strncmp( psz_mime, "PNG", 3 ) ||
!strncmp( psz_name, "\xC2\x89PNG", 5 ) )
{
- msg_Warn( p_demux, "Invalid picture embedded by broken iTunes version" );
+ msg_Warn( p_demux_meta, "Invalid picture embedded by broken iTunes version" );
free( psz_description );
continue;
}
const char *p_data = picture.data();
const unsigned i_data = picture.size();
- msg_Dbg( p_demux, "Found embedded art: %s (%s) is %u bytes",
+ msg_Dbg( p_demux_meta, "Found embedded art: %s (%s) is %u bytes",
psz_name, psz_mime, i_data );
p_attachment = vlc_input_attachment_New( psz_name, psz_mime,
// We get only the first covert art
if( mime_list.size() > 1 || art_list.size() > 1 )
- msg_Warn( p_demux, "Found %i embedded arts, so using only the first one",
+ msg_Warn( p_demux_meta, "Found %i embedded arts, so using only the first one",
art_list.size() );
else if( mime_list.size() == 0 || art_list.size() == 0 )
return;
uint8_t *p_data;
int i_data = vlc_b64_decode_binary( &p_data, art_list[0].toCString(true) );
- msg_Dbg( p_demux, "Found embedded art: %s (%s) is %i bytes",
+ msg_Dbg( p_demux_meta, "Found embedded art: %s (%s) is %i bytes",
psz_name, psz_mime, i_data );
TAB_INIT( p_demux_meta->i_attachments, p_demux_meta->attachments );
*/
static int ReadMeta( vlc_object_t* p_this)
{
- demux_t* p_demux = (demux_t*)p_this;
- demux_meta_t* p_demux_meta = (demux_meta_t*)p_demux->p_private;
+ demux_meta_t* p_demux_meta = (demux_meta_t *)p_this;
+ demux_t* p_demux = p_demux_meta->p_demux;
vlc_meta_t* p_meta;
FileRef f;
if( !b_bool )
return;
- demux_meta_t *p_demux_meta = p_demux->p_private = calloc( 1, sizeof(*p_demux_meta) );
+ demux_meta_t *p_demux_meta =
+ vlc_custom_create( p_demux, sizeof( *p_demux_meta ),
+ VLC_OBJECT_GENERIC, "demux meta" );
if( !p_demux_meta )
return;
+ p_demux_meta->p_demux = p_demux;
- module_t *p_id3 = module_need( p_demux, "meta reader", NULL, false );
+ module_t *p_id3 = module_need( p_demux_meta, "meta reader", NULL, false );
if( p_id3 )
{
if( p_demux_meta->p_meta )
}
module_unneed( p_demux, p_id3 );
}
- free( p_demux_meta );
+ vlc_object_release( p_demux_meta );
}