linphone-developers
[Top][All Lists]
Advanced

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

Re: [Linphone-developers] Using MSConf - conference


From: Raust Tamatea
Subject: Re: [Linphone-developers] Using MSConf - conference
Date: Tue, 22 Jun 2010 14:40:26 +0200
User-agent: Thunderbird 2.0.0.22 (Windows/20090605)

damico a écrit :
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 :
Hello,
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);

with

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.

Regards.

_______________________________________________
Linphone-developers mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/linphone-developers


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.

Regards.

_______________________________________________
Linphone-developers mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/linphone-developers
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)

Regards

--Michele

_______________________________________________
Linphone-developers mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/linphone-developers



Hello,
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.

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


Regards
--Michele

_______________________________________________
Linphone-developers mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/linphone-developers


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_link(rtprecv,0,decoder,0);
ms_filter_link(decoder,0,dtmfgen,0);
ms_filter_link(dtmfgen,0,tee,0);
ms_filter_attach(ticker1,rtprecv); // Process RTP Packet and decode DTMF

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

ms_filter_link(tee,1,conf2,0);
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.
Regards.


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.

--Michele



_______________________________________________
Linphone-developers mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/linphone-developers


What I'm trying to do is :
- Each new connexion create a new conference. With this conference, I can receive rtp, send rtp, play file, record to a file, speak with mic and listen with speaker. - When needed, I can unlink the rtp stream from any connexions and put it in a general conference room with other rtp stream. Audio is mixed, then I take an output from the general conference room et put it in the input conference for the connexion to stream the result.

So I was hoping to create a ticker for each conferences and just link and unlink rtp stream where I wanted. But as you told me, I can't just take the output from general conference room and link it with conference connexion.
Perhaps what I'm trying to do is impossible ?




reply via email to

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