[Live-devel] Fwd: Request for change to access modifiers

Chris Paucar chris.paucar at roc-connect.com
Wed Apr 24 08:46:25 PDT 2019


Hi,

I'm happy to see the site is back up and running. I had a few questions
during the downtime but given enough time with the LIVE555 source code I
was able to figure it out :) So this was a good opportunity to familiarize
myself with the classes and APIs.

In doing so I found a few class members that I would like to request
changes to, as mentioned in the FAQ
<http://www.live555.com/liveMedia/faq.html#cannot-subclass>.

I implemented a solution that buffers A/V data from certain codec
subclasses of the MultiFramedRTPSource class with the purpose of being
written to a file sink that will continue with the live stream as the
source for the remainder of the file. My solution also uses custom
MediaSession and MediaSubsession classes as mentioned in the example files.

Request for protected access:
MultiFramedRTPSource::doGetNextFrame() *
MPEG4GenericRTPSource::MPEG4GenericRTPSource() **
MPEG4GenericRTPSource::processSpecialHeader() ***
SimpleRTPSource::processSpecialHeader() ***

* Once the buffer has been sent to the file sink, this function is called
to continue the live RTP source to the file sink.
** This constructor is needed to inherit from this codec class.
*** Some cameras embed the SPS/PPS NAL units in the same stream as the
video data and so the final file output would write the SPS/PPS metadata as
an H264 frame, leading to a stuttering effect during playback. I overrode
this function in my class template, specialized for the H264 class, to
filter out certain metadata NAL units and for the rest of the codec classes
I just use this as a pass through function (see below). I could avoid this
if you would prefer to keep these private.

template<class T> Boolean BufferedRTPSource<T>::processSpecialHeader(
        BufferedPacket* packet, unsigned& resultSpecialHeaderSize)
{
    return T::processSpecialHeader(packet, resultSpecialHeaderSize);
}

Thanks,
Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20190424/50ce8065/attachment.htm>


More information about the live-devel mailing list