[FFmpeg-devel] [PATCH] rmdec.c: merge old/new packet reading code
Wed Mar 11 13:58:00 CET 2009
On Wed, Mar 11, 2009 at 08:27:10AM -0400, Ronald S. Bultje wrote:
> On Wed, Mar 11, 2009 at 1:46 AM, Kostya <kostya.shishkov at gmail.com> wrote:
> > Somehow this becomes more and more complicated.
> > Can we use some simpler solution - like when packet flags & 2 and there was
> > no remaining_len before it (i.e. we are not inside partial packet)
> > nor after it (i.e. we were not reading start of partial packet, but maybe
> > this condition can be omitted) then add this packet to index.
> > Passing two additional arguments for getting data to index does not seem right.
> I don't like it either, but the old condition was clearly wrong,
> particularly for audio, since seq&0x7F==1 was true by default (seq
> starts at 1 and only involved video, so was never changed for audio)
> an flags&2 is true for the _last_ audio packet, not the first.
> Therefore, it added index entries for last audio packets. At the very
> least, that needs changing, and then I figured it was easier to just
> separate video and audio altogether, since they are really handled
> completely differently. Anyway, that was not your question. :-).
> Yes, I'd like it easier also, but don't know how yet. We could add
> 1argument to ff_rm_parse_packet() like int *please_write_index_entry
> or *is_first_slice, since the know exactly when we are at the first
> packet of a packet and whether that is a keyframe (flags&2). Then the
> condition would just be 1-2 pieces, if (is_first_slice && old_flags &
> 2) or if (please_write_index_entry).
Hey, it sets *flags = 2 which is the thing you need.
More information about the ffmpeg-devel