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

Ronald S. Bultje rsbultje
Thu Jan 15 15:09:22 CET 2009


Hi,

On Thu, Jan 15, 2009 at 8:59 AM, Luca Abeni <lucabe72 at email.it> wrote:
> Ok, I checked rdt.c, and the relevant line seems to be:
> flags = (flags & PKT_FLAG_KEY) ? 2 : 0;
> so, why not using an "RTP_FLAG_KEY" (equal to 2) instead of PKT_FLAG_KEY
> (changing it to 2 before using the flags variable)?

Oh, just for clarification, the relevant line is in fact in
ff_rdt_parse_packet(), just below this:

    rv = ff_rdt_parse_header(buf, len, &set_id, &seq_no, &stream_id,
&is_keyframe, &timestamp);
[..]
    if (is_keyframe &&
[..]
        flags |= PKT_FLAG_KEY;
[..]
    rv = s->parse_packet(s->dynamic_protocol_context,
                         s->streams[s->prev_stream_id],
                         pkt, &timestamp, buf, len, flags);

rdt_parse_packet() is then the ProtocolHandler.parse_packet(), similar
to MPEG4 etc. rdt_parse_packet() changes these flags from "API format"
(currently similar to AVPacket.flags, where keyframe = 0x1) to
"RM-specific values" (0x2 is keyframe) before calling the relevant
ff_rm_*() functions.

Let me know if that's unclear.

Ronald




More information about the ffmpeg-devel mailing list