[FFmpeg-cvslog] r19763 - trunk/libavcodec/wmaprodec.c
Laurent Aimar
fenrir
Sun Sep 6 23:48:10 CEST 2009
Hi,
On Sun, Sep 06, 2009, Michael Niedermayer wrote:
> > The code works correctly with ffmpeg, ffplay and MPlayer. The question is if
> > what I'm doing is allowed to be done or not.
> > The code is based on the assumption that decode_packet is called with the same
> > packet as long as the packet is not fully decoded (the sum of all returned
> > bytes from decode_packet is equal to the original packet size). This includes
> > the precondition that no data is appended to it. Otherwise it would never be
> > possible to decide where a new packet starts. So I think this assumption is
> > save.
>
> > When this is really the same packet e.g. also the data pointer does not change
> > it is possible to reuse the bitstream reader for multiple decode_packet
> > invocations.
> > Otherwise, the bitstream reader has to be reinitialized every time decode
> > packet is called. This also means that it has to jump to the correct bit
> > position as the start of the frames is not byte aligned what increases the
> > complexity of the code.
>
> i think theres nothing in the API that gurantees that the actual pointer is
> identical, though i cant really see a reason why it would change, xcept maybe
> someone using lav* through JNI from java that can do very slow and freaky
> things with arrays
If such behaviour is kept, I would be great if it could be documented.
For example, in VLC, it might change as we do a realloc to ensure that
FF_INPUT_BUFFER_PADDING_SIZE is present at the end (at each iteration).
(We could avoid the realloc if it is needed)
--
fenrir
More information about the ffmpeg-cvslog
mailing list