I've been looking at the JPEG images in JpegSnoop and hex view. It appears that 
there are 4 extra bytes between the luminance and chrominance quantization 
tables. I've looked at the code for JPEGVideoRTPSource::processSpecialHeader(), 
and I don't yet see why the extra bytes would occur.

I'll keep looking.



Tim Gee<mailto:tim....@aldiscorp.com> | Senior R&D Engineer
Aldis<http://www.aldiscorp.com/> | 10545 Hardin Valley Rd. | Knoxville TN | 
37932
o: 865-978-6535 | f: 865-249-6608




________________________________
From: live-devel-boun...@ns.live555.com <live-devel-boun...@ns.live555.com> on 
behalf of Tim Gee <tim....@aldiscorp.com>
Sent: Sunday, July 28, 2013 3:59 PM
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] testRTSPClient and MJPEG decoding

I added the line for increasing the receive buffer, but it didn't make the 
output images any better. Thanks for the suggestion. Anything else I should try 
or investigate?

Below is the continueAfterSETUP() after the addition of the new line.


void continueAfterSETUP(RTSPClient* rtspClient, int resultCode, char* 
resultString) {
do {
    UsageEnvironment& env = rtspClient->envir(); // alias
    StreamClientState& scs = ((ourRTSPClient*)rtspClient)->scs; // alias
    scs.subsession->sink = DummySink::createNew(env, *scs.subsession, 
rtspClient->url());
    env << *rtspClient << "Created a data sink for the \"" << *scs.subsession 
<< "\" subsession\n";
    scs.subsession->miscPtr = rtspClient;
    increaseReceiveBufferTo(env, 
scs.subsession->rtpSource()->RTPgs()->socketNum(), 2000000);
    FramedSource *src = scs.subsession->readSource();

    scs.subsession->sink->startPlaying(*src, subsessionAfterPlaying, 
scs.subsession);
    if (scs.subsession->rtcpInstance() != NULL) {
        scs.subsession->rtcpInstance()->setByeHandler(subsessionByeHandler, 
scs.subsession);
    }
} while (0);
delete[] resultString;
setupNextSubsession(rtspClient);
}




Tim Gee<mailto:tim....@aldiscorp.com> | Senior R&D Engineer
Aldis<http://www.aldiscorp.com/> | 10545 Hardin Valley Rd. | Knoxville TN | 
37932
o: 865-978-6535 | f: 865-249-6608




________________________________
From: live-devel-boun...@ns.live555.com <live-devel-boun...@ns.live555.com> on 
behalf of Ross Finlayson <finlay...@live555.com>
Sent: Sunday, July 28, 2013 12:30 PM
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] testRTSPClient and MJPEG decoding

I'm able to view the RTSP stream in VLC

OK.  One thing that VLC is doing that "testRTSPClient" is not is setting an 
extremely large receive buffer (in the operating system) for the RTP socket.  
This may be necessary for you, because you're trying to receive a stream that 
uses such a ridiculously inefficient codec (i.e., JPEG).

So, try the following:
Add
#include <GroupsockHelper.hh>
to your application, and add the line
increaseReceiveBufferTo(env, scs.subsession->rtpSource()->RTPgs()->socketNum(), 
2000000);
to your "continueAfterSETUP()" function.

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

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

Reply via email to