[FFmpeg-devel] Realmedia patch

Ronald S. Bultje rsbultje
Fri Aug 22 14:14:32 CEST 2008

Hi Luca,

On Fri, Aug 22, 2008 at 3:27 AM, Luca Abeni <lucabe72 at email.it> wrote:
> Ronald S. Bultje wrote:
> [...]
>>> (BTW, I partly missed the previous threads about realmedia...
>>> Can you please forward me the relevant emails, or send me
>>> links to the ml archives, and point me to a "more split"
>>> patchqueue?)
>> That doesn't really exist, I'm very old-fashioned and don't use
>> anything like git or so. I just use quilt, which is basically an
>> elegant diff-script.
> quilt is ok; I sometimes use it too... Just point me to a quilt
> patchqueue (I assume you posted a split patchqueue in the past,
> and something from it has been committed. So, just let me know
> where I can find the updated patches).

All separate patches have been committed already, basically what I
have left is two patches, my rtsp-realmedia.patch and a
rtsp-streamselection.patch. The division between these two is fuzzy so
I posted them merged. they're attached separately to this email, with
some debug info that I'll remove later (no need to review these).

>> - the SDP header contains the RM header
> That's ok... Is it a "standard" RM header (that can be found also in
> "regular" RM files), or a modified version?
> Can it be copied in the codec's extradata?

Modified, and only a partial header. The OpaqueData contains the MDPR
part of the RM header, in the following encoding (size:data):

         * Layout of the MLTI chunk:
         * 4:MLTI
         * 2:<number of streams>
         * Then for each stream ([number_of_streams] times):
         *     2:<mdpr index>
         * 2:<number of mdpr chunks>
         * Then for each mdpr chunk ([number_of_mdpr_chunks] times):
         *     4:<size>
         *     [size]:<data>
         * we skip MDPR chunks until we reach the one of the stream
         * we're interested in, and forward that ([size]+[data]) to
         * the RM demuxer to parse the stream-specific header data.

(from rtp_rm.c:rdt_parse_packet()). The other fields from the RM
header are in the SDP itself (things such as number of streams,

>> with which I can give codec
>> information per stream-rule (not just bitrate, but CodecID,
>> stereo/mono, etc. - it could even help if new codecs arise and we
>> don't support all of them, we could skip those based on this
>> information, while we may accidently select those if we select just
>> based on bitrates)
> Sorry, but here I am a little bit confused... I assume the RM header
> is somehow encoded in the "OpaqueData" field, right? Does this field
> contain a single RM header, or multiple RM headers (one per stream-rule)?
> In the first case, wouldn't it be possible to just copy the header in
> some buffer, and let the RM demuxer handle it later?

So it's multiple, partial RM headers.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: rtsp-realmedia.patch
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080822/4e7f79ae/attachment.asc>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: rtsp-streamselection.patch
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080822/4e7f79ae/attachment.txt>

More information about the ffmpeg-devel mailing list