[Live-devel] feedback from receiver
Kerim ISIK
kisik at bimel.com.tr
Mon May 9 02:04:14 PDT 2005
Dear Ross,
I don't want to disturb you much but I have a problem again. I will be
greatful if you look at it below and advice me.
I have scheduled a task in order to observe the statistics periodicaly
(with your help). That is working.
For testing purpose, every 10 seconds I have closed the media source
(microphone) and opened again with different characteristics. in every
change play() is called.
First 10 seconds:
pcmSource = AudioInputDevice::createNew(*env,0,16,2,44100,20)
Second 10 seconds:
pcmSource =AudioInputDevice::createNew(*env,0,16,1,44100,20)
After that:
pcmSource = AudioInputDevice::createNew(*env,0,8,1,8000,20)
I have moved the following line into the main(),just before play() called,
so that every new stream have same multicast ip address.
destinationAddress.s_addr = chooseRandomIPv4SSMAddress(*env)
I have also changed the afterPlaying() like before in order to allow
continuous streaming.
void afterPlaying(void* /*clientData*/) {
Medium::close(sessionState.source);
exit(0);
}
When I run the program and observe the packets with Ethereal everything
looks OK. First 10 second payload type is 10,after that 11, and 96 . When I
want to listen the stream with VLC, I can only listen that 10 seconds period
when I started in (I can listen every period separately ). When the codec
(or payload type) changes, VLC does not stop but nothing can be hear.
in VLC I listen the stream by opening rtsp://212.175.96.29:7070/testStream .
Can RTSP be the problem for this case? If I did not use the RTSP, could I
listen the stream without being effected from payload type changes? ( I can
not open the stream via 'UDP/RTP Multicast' on VLC. Is there any change
required in my code? )
Is it required to write a special receiver application to listen this type
of changing media.(without stopping it and playing again manually?). Maybe
it can be done changing theVLC source code.
which one should I focus: receiver side or sending side?
Thanks for your precious support.
Kerim ISIK
----- Original Message -----
From: "Ross Finlayson" <finlayson at live.com>
To: "LIVE.COM Streaming Media - development & use" <live-devel at ns.live.com>
Sent: Monday, May 02, 2005 5:02 PM
Subject: Re: [Live-devel] feedback from receiver
>
>>I am streaming audio with testWavAudioStreamer and receiving it with VLC
>>Media Player. If the receiving side is receiving the audio with much
>>loss, I want to stop the stream and start a new one with lower quality (I
>>assume it will decrease the loss rate). In testmp3Streamer.cpp , I had
>>done this decision in afterplaying() function using transmissionStats.
>>Using WindowsAuidoInputDevice as audio source , the afterplaying()
>>function in testWavAudioStreamer is never been called.
>
> That's because - in thie case - your input source never ends/closes. The
> 'after playing' function is called when the input source closes.
>
>> Is there any way to call it according to the RTCP RR reports received.
>> Maybe I should change the noteIncomingRR() function in RTPSink.cpp but I
>> could not manage it. (I think the decision of changing the codec
>> parameters must be done before calling the stopPlaying function )
>>I will be so glad if you advise me how could I do it.
>
> I suggest scheduling a task (using
> "env->taskScheduler().scheduleDelayedTask()") that periodically (e.g.,
> every second or so) checks the "RTPTransmissionStats" from your "RTPSink"
> object.
>
> E.g., see the code for "scheduleNextQOSMeasurement()" in "playCommon.cpp",
> which does something similar (except with *reception* statistics).
>
>
> Ross Finlayson
> LIVE.COM
> <http://www.live.com/>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live.com
> http://lists.live.com/mailman/listinfo/live-devel
>
>
More information about the live-devel
mailing list