[FFmpeg-devel] RTP mark bit not passed to parse_packet

Alexandre FERRIEUX - FT/RD/SIRP/ASF/SOFTL alexandre.ferrieux
Thu Jan 15 14:35:55 CET 2009


Ronald S. Bultje wrote:
> Hi Alexandre,
> 
> On Thu, Jan 15, 2009 at 8:15 AM, Alexandre FERRIEUX -
> FT/RD/SIRP/ASF/SOFTL <alexandre.ferrieux at orange-ftgroup.com> wrote:
>> Ronald S. Bultje wrote:
>>> On Thu, Jan 15, 2009 at 4:13 AM, Alexandre FERRIEUX -
>>> FT/RD/SIRP/ASF/SOFTL <alexandre.ferrieux at orange-ftgroup.com> wrote:
>>>> In the process of writing an RTP depayloader for H263 (RFC2429, simple
>>>> follow-on packet mode), I see that the current API doesn't pass the RTP
>>>> Mark bit (buf[1]&0x80) to the payload handler callback.
>>> I have a local patch that saves the M-bit as 0x100 in the flags field
>>> (flags |= (buf[1] & 80) << 1) in the flags field, which is passed on
>>> to the parse_packet() functions. See my recent X-QT patch, which
>>> includes it (IIRC). We could consider making >=0x100 (e.g. 0xFF00) an
>>> official "format-specific" flag mask (in avformat.h), and then using
>>> 0x100 as RTP_FLAG_M_BIT (in rtp_internal.h).
>> Yes, I'd love to see this committed :)
>>
>> FWIW, instead of
>>        flags |= (buf[1] & 0x80) << 1
>> I'd prefer the more readable variant:
>>        if (buf[1] & 0x80) flags |= RTP_FLAG_M_BIT;
> 
> Sure, no problem. Luca, agree? Michael, is a "format-specific" or
> "private" flag mask of >= 0x100 or 0x10000 OK in avformat.h?
> 

Notice that a possible alternative is to add a 'mbit' field in the 
RTPDemuxContext structure which is now public, see comment in 
rtp_internal.h:


	// moved out of rtp.c, because the h264 decoder needs to know 	about 
this structure..
	struct RTPDemuxContext {
		...

Your choice, guys :-)


-Alex




More information about the ffmpeg-devel mailing list