Commit ec6c8366 authored by Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen

upnp: Do not add the same element more than once

parent 3447e875
......@@ -767,34 +767,28 @@ bool MediaServer::fetchContents()
/* Try to extract all resources in DIDL */
IXML_NodeList* p_resource_list = ixmlDocument_getElementsByTagName( (IXML_Document*) itemElement, "res" );
if ( p_resource_list )
if ( p_resource_list && ixmlNodeList_length( p_resource_list ) > 0 )
{
int i_length = ixmlNodeList_length( p_resource_list );
for ( int i = 0; i < i_length; i++ )
mtime_t i_duration = -1;
int i_hours, i_minutes, i_seconds;
IXML_Element* p_resource = ( IXML_Element* ) ixmlNodeList_item( p_resource_list, 0 );
const char* psz_resource_url = xml_getChildElementValue( p_resource, "res" );
if( !psz_resource_url )
continue;
const char* psz_duration = ixmlElement_getAttribute( p_resource, "duration" );
if ( psz_duration )
{
mtime_t i_duration = -1;
int i_hours, i_minutes, i_seconds;
IXML_Element* p_resource = ( IXML_Element* ) ixmlNodeList_item( p_resource_list, i );
const char* psz_resource_url = xml_getChildElementValue( p_resource, "res" );
if( !psz_resource_url )
continue;
const char* psz_duration = ixmlElement_getAttribute( p_resource, "duration" );
if ( psz_duration )
{
if( sscanf( psz_duration, "%d:%02d:%02d",
&i_hours, &i_minutes, &i_seconds ) )
i_duration = INT64_C(1000000) * ( i_hours*3600 +
i_minutes*60 +
i_seconds );
}
addItem( title, objectID, psz_subtitles, i_duration, psz_resource_url );
if( sscanf( psz_duration, "%d:%02d:%02d",
&i_hours, &i_minutes, &i_seconds ) )
i_duration = INT64_C(1000000) * ( i_hours*3600 +
i_minutes*60 +
i_seconds );
}
ixmlNodeList_free( p_resource_list );
addItem( title, objectID, psz_subtitles, i_duration, psz_resource_url );
}
else
continue;
ixmlNodeList_free( p_resource_list );
}
ixmlNodeList_free( itemNodeList );
}
......
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