<br><font size=2 face="sans-serif">hello,</font>
<br>
<br><font size=2 face="sans-serif">thanks for your great responce, I have
change my route like this : destination : 255.255.0.0 &nbsp; mask : 255.255.255.0
gateway : 192.168.0.254, my workstation IP is 192.168.0.2.</font>
<br>
<br><font size=2 face="sans-serif">but I have a other probleme, i try to
read the file trasnmit with testMPEG1or2VideoStreamer with vlc , in udp
with the port 1234.</font>
<br>
<br><font size=2 face="sans-serif">I just want use the RTP protocole, and
don't have a serveur RSTP, so I erased the part of code I think is useless
for simple RTP streming, but I must be wrong, because VLC cannot read this
rtp stream, the error :&quot; main private error : cannot prefill buffer&quot;
is in VLC.</font>
<br>
<br><font size=2 face="sans-serif">can you say me if the modified code
is correct ???</font>
<br>
<br><font size=2 face="sans-serif">I am not sure that </font><font size=2 color=blue face="Arial">&nbsp;Groupsock
rtcpGroupsock(*env, destinationAddress, rtcpPort, ttl) </font><font size=2 face="Arial">is
usefull...</font>
<br>
<br><font size=2 face="sans-serif">there is the code modified : </font>
<br><font size=2 color=blue face="Arial">/**********</font>
<br><font size=2 color=blue face="Arial">This library is free software;
you can redistribute it and/or modify it under</font>
<br><font size=2 color=blue face="Arial">the terms of the GNU Lesser General
Public License as published by the</font>
<br><font size=2 color=blue face="Arial">Free Software Foundation; either
version 2.1 of the License, or (at your</font>
<br><font size=2 color=blue face="Arial">option) any later version. (See
&lt;http://www.gnu.org/copyleft/lesser.html&gt;.)</font>
<br>
<br><font size=2 color=blue face="Arial">This library is distributed in
the hope that it will be useful, but WITHOUT</font>
<br><font size=2 color=blue face="Arial">ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS</font>
<br><font size=2 color=blue face="Arial">FOR A PARTICULAR PURPOSE. &nbsp;See
the GNU Lesser General Public License for</font>
<br><font size=2 color=blue face="Arial">more details.</font>
<br>
<br><font size=2 color=blue face="Arial">You should have received a copy
of the GNU Lesser General Public License</font>
<br><font size=2 color=blue face="Arial">along with this library; if not,
write to the Free Software Foundation, Inc.,</font>
<br><font size=2 color=blue face="Arial">59 Temple Place, Suite 330, Boston,
MA &nbsp;02111-1307 &nbsp;USA</font>
<br><font size=2 color=blue face="Arial">**********/</font>
<br><font size=2 color=blue face="Arial">// Copyright (c) 1996-2007, Live
Networks, Inc. &nbsp;All rights reserved</font>
<br><font size=2 color=blue face="Arial">// A test program that reads a
MPEG-1 or 2 Video Elementary Stream file,</font>
<br><font size=2 color=blue face="Arial">// and streams it using RTP</font>
<br><font size=2 color=blue face="Arial">// main program</font>
<br>
<br><font size=2 color=blue face="Arial">#include &quot;liveMedia.hh&quot;</font>
<br><font size=2 color=blue face="Arial">#include &quot;BasicUsageEnvironment.hh&quot;</font>
<br><font size=2 color=blue face="Arial">#include &quot;GroupsockHelper.hh&quot;</font>
<br>
<br><font size=2 color=blue face="Arial">// Uncomment the following if
the input file is a MPEG Program Stream</font>
<br><font size=2 color=blue face="Arial">// rather than a MPEG Video Elementary
Stream</font>
<br><font size=2 color=blue face="Arial">#define SOURCE_IS_PROGRAM_STREAM
1</font>
<br>
<br><font size=2 color=blue face="Arial">// To stream using &quot;source-specific
multicast&quot; (SSM), uncomment the following:</font>
<br><font size=2 color=blue face="Arial">//#define USE_SSM 1</font>
<br><font size=2 color=blue face="Arial">#ifdef USE_SSM</font>
<br><font size=2 color=blue face="Arial">Boolean const isSSM = True;</font>
<br><font size=2 color=blue face="Arial">#else</font>
<br><font size=2 color=blue face="Arial">Boolean const isSSM = False;</font>
<br><font size=2 color=blue face="Arial">#endif</font>
<br>
<br>
<br><font size=2 color=blue face="Arial">// To set up an internal RTSP
server, uncomment the following:</font>
<br><font size=2 color=blue face="Arial">//#define IMPLEMENT_RTSP_SERVER
1</font>
<br><font size=2 color=blue face="Arial">// (Note that this RTSP server
works for multicast only)</font>
<br>
<br><font size=2 color=blue face="Arial">// To stream *only* MPEG &quot;I&quot;
frames (e.g., to reduce network bandwidth),</font>
<br><font size=2 color=blue face="Arial">// change the following &quot;False&quot;
to &quot;True&quot;:</font>
<br><font size=2 color=blue face="Arial">Boolean iFramesOnly = True;</font>
<br>
<br><font size=2 color=blue face="Arial">UsageEnvironment* env;</font>
<br><font size=2 color=blue face="Arial">char const* inputFileName = &quot;test.mpg&quot;;</font>
<br><font size=2 color=blue face="Arial">//char const* inputFileName =
&quot;/dev/video&quot;;</font>
<br><font size=2 color=blue face="Arial">#ifdef SOURCE_IS_PROGRAM_STREAM</font>
<br><font size=2 color=blue face="Arial">MPEG1or2Demux* mpegDemux;</font>
<br><font size=2 color=blue face="Arial">#endif</font>
<br><font size=2 color=blue face="Arial">MediaSource* videoSource;</font>
<br><font size=2 color=blue face="Arial">RTPSink* videoSink;</font>
<br>
<br><font size=2 color=blue face="Arial">void play(); // forward</font>
<br>
<br><font size=2 color=blue face="Arial">int main(int argc, char** argv)
{</font>
<br>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=2 color=blue face="Arial">&nbsp; // Begin by setting up
our usage environment:</font>
<br><font size=2 color=blue face="Arial">&nbsp; TaskScheduler* scheduler
= BasicTaskScheduler::createNew();</font>
<br><font size=2 color=blue face="Arial">&nbsp; env = BasicUsageEnvironment::createNew(*scheduler);</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; // Create 'groupsocks'
for RTP and RTCP:</font>
<br><font size=2 color=blue face="Arial">&nbsp; char* destinationAddressStr</font>
<br><font size=2 color=blue face="Arial">#ifdef USE_SSM</font>
<br><font size=2 color=blue face="Arial">&nbsp; &nbsp; = &quot;192.168.0.1&quot;;</font>
<br><font size=2 color=blue face="Arial">#else</font>
<br><font size=2 color=blue face="Arial">&nbsp; &nbsp; = &quot;192.168.0.1&quot;;</font>
<br><font size=2 color=blue face="Arial">&nbsp; // Note: This is a multicast
address. &nbsp;If you wish to stream using</font>
<br><font size=2 color=blue face="Arial">&nbsp; // unicast instead, then
replace this string with the unicast address</font>
<br><font size=2 color=blue face="Arial">&nbsp; // of the (single) destination.
&nbsp;(You may also need to make a similar</font>
<br><font size=2 color=blue face="Arial">&nbsp; // change to the receiver
program.)</font>
<br><font size=2 color=blue face="Arial">#endif</font>
<br><font size=2 color=blue face="Arial">&nbsp; const unsigned short rtpPortNum
= 1234;</font>
<br><font size=2 color=blue face="Arial">&nbsp;// const unsigned short
rtpPortNum = 8888;</font>
<br><font size=2 color=blue face="Arial">&nbsp; const unsigned short rtcpPortNum
= rtpPortNum+1;</font>
<br><font size=2 color=blue face="Arial">&nbsp; const unsigned char ttl
= 1; // low, in case routers don't admin scope</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; struct in_addr destinationAddress;</font>
<br><font size=2 color=blue face="Arial">&nbsp;destinationAddress.s_addr
= our_inet_addr(destinationAddressStr);</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; const Port rtpPort(rtpPortNum);</font>
<br><font size=2 color=blue face="Arial">&nbsp; const Port rtcpPort(rtcpPortNum);</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; Groupsock rtpGroupsock(*env,
destinationAddress, rtpPort, ttl);</font>
<br><font size=2 color=blue face="Arial">&nbsp; Groupsock rtcpGroupsock(*env,
destinationAddress, rtcpPort, ttl);</font>
<br>
<br><font size=2 color=blue face="Arial">#ifdef USE_SSM</font>
<br><font size=2 color=blue face="Arial">&nbsp; rtpGroupsock.multicastSendOnly();</font>
<br><font size=2 color=blue face="Arial">&nbsp; rtcpGroupsock.multicastSendOnly();</font>
<br><font size=2 color=blue face="Arial">#endif</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; // Create a 'MPEG Video
RTP' sink from the RTP 'groupsock':</font>
<br><font size=2 color=blue face="Arial">&nbsp; videoSink = MPEG1or2VideoRTPSink::createNew(*env,
&amp;rtpGroupsock);</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; // Create (and start) a
'RTCP instance' for this RTP sink:</font>
<br><font size=2 color=blue face="Arial">&nbsp; const unsigned estimatedSessionBandwidth
= 4500; // in kbps; for RTCP b/w share</font>
<br><font size=2 color=blue face="Arial">&nbsp; const unsigned maxCNAMElen
= 100;</font>
<br><font size=2 color=blue face="Arial">&nbsp; unsigned char CNAME[maxCNAMElen+1];</font>
<br><font size=2 color=blue face="Arial">&nbsp; gethostname((char*)CNAME,
maxCNAMElen);</font>
<br><font size=2 color=blue face="Arial">&nbsp; CNAME[maxCNAMElen] = '\0';
// just in case</font>
<br><font size=2 color=blue face="Arial">/*#ifdef IMPLEMENT_RTSP_SERVER</font>
<br><font size=2 color=blue face="Arial">&nbsp; RTCPInstance* rtcp =</font>
<br><font size=2 color=blue face="Arial">#endif</font>
<br><font size=2 color=blue face="Arial">*/</font>
<br><font size=2 color=blue face="Arial">&nbsp; &nbsp; RTCPInstance::createNew(*env,
&amp;rtcpGroupsock,</font>
<br><font size=2 color=blue face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; estimatedSessionBandwidth, CNAME,</font>
<br><font size=2 color=blue face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; videoSink, NULL /* we're a server */, isSSM);</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; // Finally, start the streaming:</font>
<br><font size=2 color=blue face="Arial">&nbsp; *env &lt;&lt; &quot;Beginning
streaming...\n&quot;;</font>
<br><font size=2 color=blue face="Arial">&nbsp; play();</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; env-&gt;taskScheduler().doEventLoop();
// does not return</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; return 0; // only to prevent
compiler warning</font>
<br><font size=2 color=blue face="Arial">}</font>
<br>
<br><font size=2 color=blue face="Arial">void afterPlaying(void* /*clientData*/)
{</font>
<br><font size=2 color=blue face="Arial">&nbsp; *env &lt;&lt; &quot;...done
reading from file\n&quot;;</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; Medium::close(videoSource);</font>
<br><font size=2 color=blue face="Arial">#ifdef SOURCE_IS_PROGRAM_STREAM</font>
<br><font size=2 color=blue face="Arial">&nbsp; Medium::close(mpegDemux);</font>
<br><font size=2 color=blue face="Arial">#endif</font>
<br><font size=2 color=blue face="Arial">&nbsp; // Note that this also
closes the input file that this source read from.</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; play();</font>
<br><font size=2 color=blue face="Arial">}</font>
<br>
<br><font size=2 color=blue face="Arial">void play() {</font>
<br><font size=2 color=blue face="Arial">&nbsp; // Open the input file
as a 'byte-stream file source':</font>
<br><font size=2 color=blue face="Arial">&nbsp; ByteStreamFileSource* fileSource</font>
<br><font size=2 color=blue face="Arial">&nbsp; &nbsp; = ByteStreamFileSource::createNew(*env,
inputFileName);</font>
<br><font size=2 color=blue face="Arial">&nbsp; if (fileSource == NULL)
{</font>
<br><font size=2 color=blue face="Arial">&nbsp; &nbsp; *env &lt;&lt; &quot;Unable
to open file \&quot;&quot; &lt;&lt; inputFileName</font>
<br><font size=2 color=blue face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;&lt;
&quot;\&quot; as a byte-stream file source\n&quot;;</font>
<br><font size=2 color=blue face="Arial">&nbsp; &nbsp; exit(1);</font>
<br><font size=2 color=blue face="Arial">&nbsp; }</font>
<br><font size=2 color=blue face="Arial">&nbsp; </font>
<br><font size=2 color=blue face="Arial">&nbsp; FramedSource* videoES;</font>
<br><font size=2 color=blue face="Arial">#ifdef SOURCE_IS_PROGRAM_STREAM</font>
<br><font size=2 color=blue face="Arial">&nbsp; // We must demultiplex
a Video Elementary Stream from the input source:</font>
<br><font size=2 color=blue face="Arial">&nbsp; mpegDemux = MPEG1or2Demux::createNew(*env,
fileSource);</font>
<br><font size=2 color=blue face="Arial">&nbsp; videoES = mpegDemux-&gt;newVideoStream();</font>
<br><font size=2 color=blue face="Arial">#else</font>
<br><font size=2 color=blue face="Arial">&nbsp; // The input source is
assumed to already be a Video Elementary Stream:</font>
<br><font size=2 color=blue face="Arial">&nbsp; videoES = fileSource;</font>
<br><font size=2 color=blue face="Arial">#endif</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; // Create a framer for
the Video Elementary Stream:</font>
<br><font size=2 color=blue face="Arial">&nbsp; videoSource</font>
<br><font size=2 color=blue face="Arial">&nbsp; &nbsp; = MPEG1or2VideoStreamFramer::createNew(*env,
videoES, iFramesOnly);</font>
<br>
<br><font size=2 color=blue face="Arial">&nbsp; // Finally, start playing:</font>
<br><font size=2 color=blue face="Arial">&nbsp; *env &lt;&lt; &quot;Beginning
to read from file...\n&quot;;</font>
<br><font size=2 color=blue face="Arial">&nbsp; videoSink-&gt;startPlaying(*videoSource,
afterPlaying, videoSink);</font>
<br><font size=2 color=blue face="Arial">}</font>
<br>
<br>
<br><font size=2 face="sans-serif">thanks for you attention.</font>
<br>
<br><font size=2 face="sans-serif">________________________<br>
 &nbsp; &nbsp; Julien Savarese &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
 &nbsp; &nbsp; Apprenti ingénieur. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;<br>
 &nbsp; &nbsp; Division SIS/DPM/RMS/MIE.<br>
---------------------------------------------<br>
</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Ross Finlayson &lt;finlayson@live555.com&gt;</b>
</font>
<br><font size=1 face="sans-serif">Envoyé par : live-devel-bounces@ns.live555.com</font>
<p><font size=1 face="sans-serif">07/05/2008 17:40</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Veuillez répondre à<br>
LIVE555 Streaming Media - development &amp; use &nbsp; &nbsp; &nbsp; &nbsp;&lt;live-devel@ns.live555.com&gt;</font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">A</font></div>
<td><font size=1 face="sans-serif">LIVE555 Streaming Media - development
&amp; use &lt;live-devel@ns.live555.com&gt;</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Objet</font></div>
<td><font size=1 face="sans-serif">Re: [Live-devel] (no subject)</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2>Unable to determine our source address: This computer
has an invalid IP address: 0x0<br>
Beginning streaming...<br>
Beginning to read from file...<br>
**********************************************************************************<br>
<br>
I don't understand, because my IP adresse &nbsp;is correct, but i'm using
the same computer to stream and receive,</font>
<br>
<br><font size=3>Nonetheless, something is wrong with the networking configuration
of your system, because neither of the methods we use to determine the
computer's IP address - (1) multicast loopback and (2) gethostname()+gethostbyname()
- is working.</font>
<br>
<br><font size=3>The most common reason for this error is that IP multicast
is not configured correctly on your system. &nbsp;Make sure that you have
a route installed for 224/8.</font>
<br><font size=3><tt>-- <br>
</tt></font>
<br><font size=3><br>
Ross Finlayson<br>
Live Networks, Inc.<br>
http://www.live555.com/</font><font size=2><tt>_______________________________________________<br>
live-devel mailing list<br>
live-devel@lists.live555.com<br>
http://lists.live555.com/mailman/listinfo/live-devel<br>
</tt></font>
<br>Pensez a l'environnement : avez-vous besoin d'imprimer ce message
Think Environment : Do you need to print message ?

Ce courrier électronique, et éventuellement ses pièces jointes, peuvent contenir des informations confidentielles et/ou  personnelles et a été envoyé uniquement à l'usage de la personne ou de l'entité  citée ci-dessus. Si vous receviez ce courrier électronique par erreur, merci de bien vouloir en avertir l'expéditeur immédiatement par la réponse en retour à ce courrier  et effacer l'original et détruire toute copie enregistrée dans un ordinateur, ou imprimée ou encore sauvegardée sur un disque . Toute  revue, retransmission ou toute autre forme d'utilisation de ce courrier électronique par toute autre personne que le destinataire prévue est strictement interdite.

L'internet ne permettant pas d'assurer l'intégrité de ce message, l'expéditeur décline toute responsabilité au cas où il aurait été intercepté ou modifié par quiconque.

This e-mail and possibly any attachment may contain confidential and/or privileged information and is intended only for the use of the individual or entity named above.  If you have received it in error, please advise the sender immediately by reply e-mail and delete  and destroy all copies including all copies stored in the recipient's computer, printed or saved to disk. . Any review , retransmission, or further use of this e-mail by by persons or entities other than the intended recipient is strictly  prohibited.  Because of the nature of the Internet the sender is not in a position to ensure the integrity of this message, therefore the sender disclaims any liability whatsoever, in the event of this message having been intercepted and/or altered.