Greetings all.

First post, so I'll only waste a little bandwidth saying "AWESOME LIBRARY!" and 
move to my issue.

I'm trying to incorporate the MPEG1or2VideoRTPSource into my application.  My 
application needs to poke a web service to start the RTP stream, so RTSP isn't 
appropriate. I just want to listen to the UDP port and capture the stream as it 
comes in.  I can do this in Java by just opening up a DatagramSocket, decoding 
the RTP packets as they stream in, but I'd like to use this library and other 
features of it.

I create the BasicUsageEnvironment and TaskScheduler as:

  TaskScheduler *bts = BasicTaskScheduler::createNew();
  BasicUsageEnvironment *bue = BasicUsageEnvironment::createNew(*bts);
Then I create a Groupsock to listen on my expected UDP port:

   const Port rtpPort(8898);
   struct in_addr inAddress;
   inAddress.s_addr = our_inet_addr("0.0.0.0");

   Groupsock gs(*bue, inAddress, rtpPort, 1);
And thirdly I create the FileSink and start the playing:

   sink = FileSink::createNew(*bue, "stdout");
   source = MPEG1or2VideoRTPSource::createNew(*bue, &gs);
   sink->startPlaying(*rtp_stream->source, mySessionEndCallback, NULL);
Finally - Start the eventLoop:

   bts->doEventLoop();
At this point my application exits with this error:

  BasicTaskScheduler::SingleStep(): select() fails: Bad file descriptor

I'm sure I'm not the first to hit this issue, but I've yet to find a reason.  
If I create a NEW TaskScheduler that isn't bound to the BasicUsageEnvironment 
and then call "doEventLoop()" -- the process continues, but packets never 
stream.  Am I missing something thickheaded?

tia, and keep up the good work!

Ken

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to