[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Linphone-developers] Using MSConf - conference

From: damico
Subject: Re: [Linphone-developers] Using MSConf - conference
Date: Tue, 22 Jun 2010 13:06:00 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20100423 Thunderbird/3.0.4

Il 22/06/2010 10:39, Raust Tamatea ha scritto:
damico a écrit :
Il 21/06/2010 11:32, Raust Tamatea ha scritto:
damico a écrit :
Il 18/06/2010 12:07, Raust Tamatea ha scritto:
Raust Tamatea a écrit :
I'm using mediastreamer2 to receive / send RTP data.
I would like to use the filter MSConf for multiple audio stream. By following instruction, a simple communication between a phone and PC is working. Now I've created a conference but when I don't have any more sound. I've done something like this :

ms_filter_link (stream->rtprecv, 0, stream->decoder, 0);
ms_filter_link (stream->decoder, 0, stream->dtmfgen, 0);
ms_filter_link (stream->dtmfgen, 0, room, 0);
ms_filter_link (room, 0, stream->soundwrite, 0);

ms_ticker_attach (m_ticker, pRtp->m_rtprecv);


MSFilter * room = ms_filter_new (MS_CONF_ID);

With this I can't hear any sound. If I don't use room and directly go to soundwrite, it's okay. Could you help me ? I can't find any example with audio conferencing.


Linphone-developers mailing list

Thanks for your answers.

There is something I don't understand with msconf and ms_ticker_attach.
I create a conference like this :
ms_filter_link (rtprecv, 0, decoder, 0); ms_filter_link (decoder, 0, dtmfgen, 0); ms_filter_link (dtmfgen, 0, m_room, 1); ms_filter_link (m_room, 1, encoder, 0); ms_filter_link (encoder, 0, rtpsend, 0);

Then I link rtprecv with the ticker :
ms_ticker_attach (m_ticker, rtprecv);

Next I want to link my soundcard :
ms_filter_link (soundread, 0, m_room, 0);
ms_filter_link (m_room, 0, soundwrite, 0);

And when I call " ms_ticker_attach (m_ticker, soundread); " then my problem is that my execution_list contain 3 filters. First attach there is only rtprecv. Second attach, there is rtprecv, soundread and again rtprecv. Is it normal ? Do I have to detach each filter before adding a new one so it will add all the filters ? If I don't do this, then mediastreamer crash because if I detach the first recv the second one is still present but I've already destroyed it in my code.

Any idea ? Perhaps I'm doing something wrong.


Linphone-developers mailing list
You can not link a filter to a graph while is running: please link all your filters in the graph and then call ms_ticker_attach() just a for a filter (for instance soundread)



Linphone-developers mailing list

With your help I can use a conference as I wish. My last problem (I hope it's the last one) is that I need to send one output of the conference to the input of another conference with 2 differents tickers. I don't know if it's possible but nothing in the code tells me that I can't do this. I've tried to play with the pin odd or even but it didn't help me. I've tried to link directly the output of conf1 to the input of conf2 and run 2 tickers but I can't have any sound. For example, I've done this :

ms_filter_link (player, 0, conf1, 1); - 1 file player in conf1 (input) ms_filter_link (conf1, 1, conf2, 1); - link conf1 (output) to conf2 (input)
ms_filter_link (soundread, 0, conf2, 0);      - 1 mic in conf2 (input)
ms_filter_link (conf2, 0, soundwrite, 0); - 1 speaker in conf2 (output)

ms_ticker_attach (ticker1, player);
ms_ticker_attach (ticker2, soundread);

I've tried using a Tee filter to link the 2 conferences but again no sound.
I hope you can help me.

Sorry, but you can't do that with standard msfilters.


Linphone-developers mailing list

Okay, thanks for this information.
But is it possible to share multiple rtp packet from a session to differents conferences ? If I use MS_TEE, I don't understand how to use it with tickers.
For example :

ms_filter_attach(ticker1,rtprecv); // Process RTP Packet and decode DTMF

ms_filter_attach(ticker2,tee,0);    // Process Tee output pin 0 to conf 1

ms_filter_attach(ticker3,tee,0);    // Process Tee output pin 1 to conf 2

When doing this I just have a crash in mediastreamer2 because the rtprecv filter does not have a ticker. I might be doing something wrong. If it's not a good way to do what I want, is there any solution to share a RTP incoming packet between 2, 3 or more conferences ? Any examples ? I will try to see why my program is crashing.

Thanks for your help again.

No more than one ticker for a connected graph: that is the basic rule. You must write a module that contain a sink and source and buffering the data in the sink for providing it to the source. By these modules you can build graphs that not sharing tickers but can share data.

Just a question: why you need more than one tickers? You can use the same ticker for all conferences.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]