<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Dear Ross Finlayson,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I want to report an memory leak bug in the MPEGProgramStreamParser.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Sorry, I don’t provide poc this time because I can not reproduce it in single request.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">But in a long time running, the memory would always exceed 3GB and the memory leak is detected by Address Sanitizer and Valgrind.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This is the call stack generated by Address Sanitizer.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==1569==ERROR: LeakSanitizer: detected memory leaks<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">Direct leak of 2020 byte(s) in 1 object(s) allocated from:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #0 0x4c751d in operator new[](unsigned long) (/home/ubuntu/experiments/live555-libfuzzer/testProgs/testOnDemandRTSPServer+0x4c751d)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #1 0x55b60d in MPEGProgramStreamParser::parsePESPacket() /home/ubuntu/experiments/live555-libfuzzer/liveMedia/MPEG1or2Demux.cpp:746:28<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #2 0x557add in MPEGProgramStreamParser::parse() /home/ubuntu/experiments/live555-libfuzzer/liveMedia/MPEG1or2Demux.cpp:369:24<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #3 0x557add in MPEG1or2Demux::continueReadProcessing() /home/ubuntu/experiments/live555-libfuzzer/liveMedia/MPEG1or2Demux.cpp:236:50<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #4 0x55c976 in MPEG1or2DemuxedElementaryStream::doGetNextFrame() /home/ubuntu/experiments/live555-libfuzzer/liveMedia/MPEG1or2DemuxedElementaryStream.cpp:45:19<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #5 0x613fb3 in StreamParser::ensureValidBytes1(unsigned int) /home/ubuntu/experiments/live555-libfuzzer/liveMedia/StreamParser.cpp:156:17<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #6 0x572f83 in StreamParser::ensureValidBytes(unsigned int) /home/ubuntu/experiments/live555-libfuzzer/liveMedia/./StreamParser.hh:125:5<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #7 0x572f83 in StreamParser::testBytes(unsigned char*, unsigned int) /home/ubuntu/experiments/live555-libfuzzer/liveMedia/./StreamParser.hh:95:5<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #8 0x572f83 in StreamParser::getBytes(unsigned char*, unsigned int) /home/ubuntu/experiments/live555-libfuzzer/liveMedia/./StreamParser.hh:90:5<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #9 0x572f83 in MPEG1or2AudioStreamParser::parse(unsigned int&) /home/ubuntu/experiments/live555-libfuzzer/liveMedia/MPEG1or2AudioStreamFramer.cpp:200:5<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #10 0x571fbf in MPEG1or2AudioStreamFramer::continueReadProcessing() /home/ubuntu/experiments/live555-libfuzzer/liveMedia/MPEG1or2AudioStreamFramer.cpp:134:41<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #11 0x571fbf in MPEG1or2AudioStreamFramer::doGetNextFrame() /home/ubuntu/experiments/live555-libfuzzer/liveMedia/MPEG1or2AudioStreamFramer.cpp:94:3<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #12 0x5d1c14 in MultiFramedRTPSink::packFrame() /home/ubuntu/experiments/live555-libfuzzer/liveMedia/MultiFramedRTPSink.cpp:223:14<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #13 0x64fc12 in AlarmHandler::handleTimeout() /home/ubuntu/experiments/live555-libfuzzer/BasicUsageEnvironment/BasicTaskScheduler0.cpp:34:5<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #14 0x6463ac in BasicTaskScheduler::SingleStep(unsigned int) /home/ubuntu/experiments/live555-libfuzzer/BasicUsageEnvironment/BasicTaskScheduler.cpp:212:15<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">    #15 0x64e5fa in BasicTaskScheduler0::doEventLoop(char volatile*) /home/ubuntu/experiments/live555-libfuzzer/BasicUsageEnvironment/BasicTaskScheduler0.cpp:80:5<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">SUMMARY: AddressSanitizer: 2020 byte(s) leaked in 1 allocation(s).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">INFO: a leak has been found in the initial corpus.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This is call stacks generated by Valgrind:<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334== HEAP SUMMARY:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==     in use at exit: 208,316,602 bytes in 26,254 blocks<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==   total heap usage: 331,478,081 allocs, 331,451,827 frees, 332,736,466,349 bytes allocated<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334== Thread 1:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334== 8,100 bytes in 4 blocks are definitely lost in loss record 602 of 712<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x46821D: MPEGProgramStreamParser::parsePESPacket() (MPEG1or2Demux.cpp:746)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x466A59: parse (MPEG1or2Demux.cpp:369)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x466A59: MPEG1or2Demux::continueReadProcessing() (MPEG1or2Demux.cpp:236)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x468A77: MPEG1or2DemuxedElementaryStream::doGetNextFrame() (MPEG1or2DemuxedElementaryStream.cpp:45)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4B4455: StreamParser::ensureValidBytes1(unsigned int) (StreamParser.cpp:156)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x469D62: ensureValidBytes (StreamParser.hh:125)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x469D62: test4Bytes (StreamParser.hh:54)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x469D62: MPEG1or2VideoStreamParser::parseVideoSequenceHeader(unsigned char) (MPEG1or2VideoStreamFramer.cpp:250)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x469BC3: MPEG1or2VideoStreamParser::parse() (MPEG1or2VideoStreamFramer.cpp:160)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x469363: continueReadProcessing (MPEGVideoStreamFramer.cpp:161)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x469363: MPEGVideoStreamFramer::doGetNextFrame() (MPEGVideoStreamFramer.cpp:144)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x49799B: MultiFramedRTPSink::packFrame() (MultiFramedRTPSink.cpp:223)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x497731: buildAndSendPacket (MultiFramedRTPSink.cpp:199)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x497731: MultiFramedRTPSink::continuePlaying() (MultiFramedRTPSink.cpp:159)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4A03EC: StreamState::startPlaying(Destinations*, unsigned int, void (*)(void*), void*, void (*)(void*, unsigned char), void*) (OnDemandServerMediaSubsession.cpp:561)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4A0040: OnDemandServerMediaSubsession::startStream(unsigned int, void*, void (*)(void*), void*, unsigned short&, unsigned int&, void (*)(void*, unsigned
 char), void*) (OnDemandServerMediaSubsession.cpp:215)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334== 10,125 bytes in 5 blocks are definitely lost in loss record 609 of 712<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x46821D: MPEGProgramStreamParser::parsePESPacket() (MPEG1or2Demux.cpp:746)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x466A59: parse (MPEG1or2Demux.cpp:369)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x466A59: MPEG1or2Demux::continueReadProcessing() (MPEG1or2Demux.cpp:236)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x468A77: MPEG1or2DemuxedElementaryStream::doGetNextFrame() (MPEG1or2DemuxedElementaryStream.cpp:45)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4B4455: StreamParser::ensureValidBytes1(unsigned int) (StreamParser.cpp:156)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x46AEF1: ensureValidBytes (StreamParser.hh:125)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x46AEF1: test4Bytes (StreamParser.hh:54)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x46AEF1: get4Bytes (StreamParser.hh:47)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x46AEF1: MPEGVideoStreamParser::saveToNextCode(unsigned int&) (MPEGVideoStreamParser.hh:81)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x46A8D8: MPEG1or2VideoStreamParser::parseSlice() (MPEG1or2VideoStreamFramer.cpp:430)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x469C58: MPEG1or2VideoStreamParser::parse() (MPEG1or2VideoStreamFramer.cpp:175)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x469363: continueReadProcessing (MPEGVideoStreamFramer.cpp:161)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x469363: MPEGVideoStreamFramer::doGetNextFrame() (MPEGVideoStreamFramer.cpp:144)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x49799B: MultiFramedRTPSink::packFrame() (MultiFramedRTPSink.cpp:223)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x498043: MultiFramedRTPSink::afterGettingFrame1(unsigned int, unsigned int, timeval, unsigned int) (MultiFramedRTPSink.cpp:350)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4CDC09: AlarmHandler::handleTimeout() (BasicTaskScheduler0.cpp:34)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334== 30,345 bytes in 15 blocks are definitely lost in loss record 640 of 712<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x46821D: MPEGProgramStreamParser::parsePESPacket() (MPEG1or2Demux.cpp:746)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x466A59: parse (MPEG1or2Demux.cpp:369)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x466A59: MPEG1or2Demux::continueReadProcessing() (MPEG1or2Demux.cpp:236)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x468A77: MPEG1or2DemuxedElementaryStream::doGetNextFrame() (MPEG1or2DemuxedElementaryStream.cpp:45)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4B4455: StreamParser::ensureValidBytes1(unsigned int) (StreamParser.cpp:156)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4708E4: ensureValidBytes (StreamParser.hh:125)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4708E4: testBytes (StreamParser.hh:95)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4708E4: getBytes (StreamParser.hh:90)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4708E4: MPEG1or2AudioStreamParser::parse(unsigned int&) (MPEG1or2AudioStreamFramer.cpp:200)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4702A6: continueReadProcessing (MPEG1or2AudioStreamFramer.cpp:134)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4702A6: MPEG1or2AudioStreamFramer::doGetNextFrame() (MPEG1or2AudioStreamFramer.cpp:94)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x49799B: MultiFramedRTPSink::packFrame() (MultiFramedRTPSink.cpp:223)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4CDC09: AlarmHandler::handleTimeout() (BasicTaskScheduler0.cpp:34)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4C9B6F: BasicTaskScheduler::SingleStep(unsigned int) (BasicTaskScheduler.cpp:212)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4CD2BC: BasicTaskScheduler0::doEventLoop(char volatile*) (BasicTaskScheduler0.cpp:80)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x480424: readAndSaveAFrame (AC3AudioStreamFramer.cpp:314)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x480424: AC3AudioStreamFramer::samplingRate() (AC3AudioStreamFramer.cpp:112)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334== 42,474 bytes in 21 blocks are definitely lost in loss record 654 of 712<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x46821D: MPEGProgramStreamParser::parsePESPacket() (MPEG1or2Demux.cpp:746)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x466A59: parse (MPEG1or2Demux.cpp:369)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x466A59: MPEG1or2Demux::continueReadProcessing() (MPEG1or2Demux.cpp:236)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x468A77: MPEG1or2DemuxedElementaryStream::doGetNextFrame() (MPEG1or2DemuxedElementaryStream.cpp:45)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4B4455: StreamParser::ensureValidBytes1(unsigned int) (StreamParser.cpp:156)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4708E4: ensureValidBytes (StreamParser.hh:125)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4708E4: testBytes (StreamParser.hh:95)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4708E4: getBytes (StreamParser.hh:90)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4708E4: MPEG1or2AudioStreamParser::parse(unsigned int&) (MPEG1or2AudioStreamFramer.cpp:200)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4702A6: continueReadProcessing (MPEG1or2AudioStreamFramer.cpp:134)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x4702A6: MPEG1or2AudioStreamFramer::doGetNextFrame() (MPEG1or2AudioStreamFramer.cpp:94)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">==13334==    by 0x49799B: MultiFramedRTPSink::packFrame() (MultiFramedRTPSink.cpp:223)<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Best regards,<o:p></o:p></p>
<p class="MsoNormal">Jinsheng Ba<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>