<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi all,<br>
<br>
Question#1<br>
&nbsp;&nbsp;&nbsp; I was referring to previous discussions in the live media archives
for MJPEG Streaming through RTP using live. see <a
 href="http://lists.live555.com/pipermail/live-devel/2005-January/001908.html">here</a>
and
<a
 href="http://lists.live555.com/pipermail/live-devel/2003-November/000037.html">here</a>.Got
the streamer up and running in real time (getting width and height from
JPEG header; Qfactor from MJPEG encoder). I am using VLC as RTP client
for receiving and playing back the streams. User-Agent: VLC media
player (LIVE555 Streaming Media v2007.02.20). The issue is: <b>VLC
player crashes </b>often with error messages like these<br>
<b>[00000304] main decoder error: decoder is leaking pictures,
resetting the heap<br>
main error: decoder is leaking pictures, resetting the heap<br>
live555 debug: tk-&gt;rtpSource-&gt;hasBeenSynchronizedUsingRTCP()<br>
</b>Has anyone faced similar problems with MJPEG streaming over RTP?
How to solve this problem?<br>
<br>
Few notes on my implementation<br>
- I have a created a class SPIJPEGVideoSource inheriting from abstract
class JPEGVideoSource <br>
- defined type, qfactor, width and height. (getting width and height
from JPEG header; Qfactor from MJPEG encoder)<br>
- Defined another class JPEGMediaSubsession : public
OnDemandServerMediaSubsession with following function definitions<br>
FramedSource* JPEGMediaSubsession::createNewStreamSource(unsigned
clientSessionId, unsigned&amp; estBitrate){<br>
&nbsp;&nbsp;&nbsp; FramedSource* framedSource = SPIJPEGVideoSource::createNew(envir(),
clientSessionId, p_context);<br>
&nbsp;&nbsp;&nbsp; return framedSource;}<br>
RTPSink* JPEGMediaSubsession::createNewRTPSink(Groupsock* rtpGroupsock,
unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource){<br>
&nbsp;&nbsp;&nbsp; return JPEGVideoRTPSink::createNew(envir(), rtpGroupsock);}<br>
- In main jpeg streamer thread, I am creating objects of the following
class in sequence: BasicTaskScheduler, BasicUsageEnvironment,
RTSPServer, ServerMediaSession, JPEGMediaSubsession and adding
JPEGMediaSubsession as subsession in server media session.and finally,
lm-&gt;env-&gt;taskScheduler().doEventLoop();<br>
<br>
Question#2<br>
What is the difference in functionality of
OnDemandServerMediaSubsession and PassiveServerMediaSubsession? I am
using the doxygen documentation of livemedia to understand the classes,
its members and their relationships. Can you point me to any other
documentation on basic functionality of different classes in livemedia?<br>
<br>
<b></b>
<pre class="moz-signature" cols="72">-- 
Satheesh Ram
Off. +91.80.41630270x25
Mob. +91.9945211181</pre>
</body>
</html>