<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Robert,<div><br></div><div>Thanks for the note.</div><div><br></div><div>I found a couple of things confusing, however:</div><div><br></div><div><blockquote type="cite">Then I checked if it was a specific problem with my source filter by running<br>the DynamicRTSPServer and request a RTSP session with VLC for an empty file<br>(zero byte) 'media.h264' file. I got the same crash in the server with the<br>H264VideoFileSource as I had with my source filter.<br></blockquote><br></div><div>By this I presume you meant that you ran the (unmodified) "LIVE555 Media Server" with a zero-length file named "media.264" (note, *not* "media.h264"; the server doesn't handle ".h264" filename suffixes), and then tried to access it using VLC.  (Note: It is better to use "testRTSPClient" or "openRTSP" as clients to test your server, because they - unlike VLC - show the RTSP protocol exchange.)</div><div><br></div><div>However, when I did this, I didn't get any crash.</div><div><br></div><div>Can you reproduce this problem using the unmodified "LIVE555 Media Server" (with unmodified LIVE555 library code)?  (I am far more interested in problems that people can reproduce using unmodified code.)</div><div><br></div><div><br></div><div>Also, at least one part of your explanation is wrong.  You said - in a couple of places - that "fDummyRTPSink" is a pointer to your own 'source filter' object that you freed.  That's incorrect.  "fDummyRTPSink" is a pointer to a "H264VideoRTPSink" object, *not* to a "FramedSource" subclass.</div><div><br></div><div>However, your own explanation hinted at a possible cause of your problem.  You say that your 'source filter' object - if it runs out of data - calls "handleClosure()" to indicate this to the downstream objects.  That's OK, and good.  However, when you do this, you MUST NOT also delete the 'source filter' object (by calling "Medium::close()" on it).  This object automatically gets deleted later, by higher-level code (specifically "OnDemandServerMediaSubsession.cpp", line 70).  So, you MUST NOT ever delete that object yourself.</div><br><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>