[vls-devel] Re: Multicasting multiple streams on nova-t
Jean-Paul Saman
saman at natlab.research.philips.com
Wed Apr 23 09:26:00 CEST 2003
Richard Hindley wrote:
> http://www.via.ecp.fr/via/ml/vls/200212/msg00035.html and follow-ups
> suggest a patch for a problem with the nova-t card. It should be
> possible to multicast multiple programs simultaneously from the same mux
> - but only one works at a time.
>
> Unless I'm doing something wrong, it looks like an "official" patch for
> this didn't make it into 0.5.0, because this problem still seems to
> exist. The patches suggested in the archives are against CSV at that
> time, so they're not directly usable. Maybe someone can help? It would
> certainly be useful to incorporate this into a future release.
>
> My plan is to build a server which offers a selection of DVB stations
> across the LAN via multicast. VideoLan with nova-t looks like the best
> way to go at present. I'm thinking maybe two servers each which two
> nova-t cards to cover 4 muxes.
>
> Richard
According to this code inside src/module/dvbinput/dvbinput.cpp:
void C_DvbInput::OnStartStreaming(C_Broadcast* pBroadcast)
{
.....
// Lock the demux usage
m_cDemuxUsageM.Lock();
//If we have not already started the demux, do so and wait for the
first PAT
if (m_iDemuxUsageCount == 0)
{
// Set the frontend up
dvb->SetTP(dvb->chans[iIndex].tpid, dvb->chans[iIndex].satid);
dvb->set_front();
sleep(3);
//Launch the demux
m_pConverter->Create();
// Add a filter for PAT
SelectPid(&m_cPatDecoder, 0x0000, TS_TYPE_NULL);
// Wait for the first PAT
m_cEndInit.Wait();
m_cEndInit.Release();
m_iGotTpid = dvb->chans[iIndex].tpid; // Remember the transponder
}
else
{
//Check that if we have already got one broadcast going this
//new one is on the same mux (transponder)
if(m_iGotTpid != dvb->chans[iIndex].tpid)
{
Log(m_hLog, LOG_ERROR, C_String("Attempting to start reception
from" \
" different transponder.Existing Transponder is") +m_iGotTpid +
" New transponder is" + dvb->chans[iIndex].tpid);
m_cDemuxUsageM.UnLock();
return;
}
}
// Update Demux Counter and unlock
m_iDemuxUsageCount++;
m_cDemuxUsageM.UnLock();
.....
It should work, because it tracks the Usage counts on the DVBinput
module. Which should be equivalent to checking if the first PAT is
found. I suggest you debug this piece of code to find what the problem is.
--
Kind greetings,
Jean-Paul Saman
Software Architect
e-mail (work): saman at natlab.research.philips.com
phone (work): 040 27 42674
------------------------------------------------------------
Ordina TA,
Science Park Eindhoven 5602, Postbus 293, 5600 AG Eindhoven
e-mail : jean-paul.saman at ordina.nl
phone : 040 2601200
fax : 040 2601199
--
This is the vls-devel mailing-list, see http://www.videolan.org/streaming/
To unsubscribe, please read http://developers.videolan.org/lists.html
If you are in trouble, please contact <postmaster at videolan.org>
More information about the vls-devel
mailing list