hey! this component is great.
Bad thing that xbox360 is not standard compliant for the upnp stuff.
If you are interesed, there's a modification to a streaming software for ubuntu, ushare, made by some guy 'NeToU' that added the feature streaming to xbox360. (It's written in C, but I guess the core of the problem in the upnp stuff is how to pass the stream to the xbox, so looking in the source code for references to the "xbox360 streaming enabled" flag, we've got this ocurrences:
(the license first)
/*
* Originally developped for the GeeXboX project.
* Copyright (C) 2005-2007 Benjamin Zores <ben@geexbox.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
First one, cds.c (line 860)
/* Don't confuse the 360 container IDs with uShares content directory container IDs */
if(ut->xbox360)
{
entry = upnp_get_entry (ut, 0);
}
else
{
entry = upnp_get_entry (ut, id);
if (!entry && (id < ut->starting_id))
entry = upnp_get_entry (ut, ut->starting_id);
}
Second one, metadata.c (line 199)
if (ut->xbox360)
{
if (ut->root_entry)
entry->id = ut->starting_id + ut->nr_entries++;
else
entry->id = 0; /* Creating the root node so don't use the usual IDs */
}
else
entry->id = ut->starting_id + ut->nr_entries++;
Of course ushare's code is totally different to your implementation of upnp, but maybe there's a solution in the source code.
The source code is available at the developer's blog