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

Michael Niedermayer michaelni
Thu Jan 15 20:22:04 CET 2009

On Thu, Jan 15, 2009 at 06:53:45PM +0100, Alexandre FERRIEUX - FT/RD/SIRP/ASF/SOFTL wrote:
> Michael Niedermayer wrote:
> >>
> >>>> However, I'm still struggling to understand why the command:
> >>>> doesn't even create "out.263" nor prints any of the hex dumps...
> >>> a few printf()/av_log() should tell you where it gets stuck an why
> >>
> >> See my answer to Luca: we never get past av_find_stream_info, never 
> >> calling my code. Please answer there.
> > 
> > the thing is ffplay/ffmpeg file.h263 has to get past it if it plays the file,
> > what is different?
> > A few printf/av_log in av_find_stream_info() should show what is different ...
> Indeed, thanks !
> Further investigation (printing the incremented counter of frames in 
> av_find_stream_info()) shows that it takes a fairly large number of 
> frames to decide, unless an EOF occurs I guess. But in RTP/UDP there's 
> no EOF of course, and I was repeatedly streaming the same short 
> sequence, so when the seqnum/timestamps had a discontinuity, maybe the 
> guessing work was reset...
> Anyway, streaming a longer sequence works.
> A few ancillary questions:
> 1) This means all those frames are accumulated in memory, right ?


> 2) What extra info could I have provided (eithr in the SDP or in 
> command-line options) so that this guessing work be avoided ?

        for(i=0;i<ic->nb_streams;i++) {
            st = ic->streams[i];
            if (!has_codec_parameters(st->codec))
            /* variable fps and no guess at the real fps */
            if(   tb_unreliable(st->codec)
               && duration_count[i]<20 && st->codec->codec_type == CODEC_TYPE_VIDEO)
            if(st->parser && st->parser->parser->split && !st->codec->extradata)
            if(st->first_dts == AV_NOPTS_VALUE)
        if (i == ic->nb_streams) {
            /* NOTE: if the format has no header, then we need to read
               some packets to get most of the streams, so we cannot
               stop here */
            if (!(ic->ctx_flags & AVFMTCTX_NOHEADER)) {
                /* if we found the info for all the codecs, we can stop */
                ret = count;
                break;      <------------------------------------

it should leave av_find_stream_info() at the marked point
add a few printf/av_log() to find out why this is not reached

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Thouse who are best at talking, realize last or never when they are wrong.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090115/ab9aef87/attachment.pgp>

More information about the ffmpeg-devel mailing list