[FFmpeg-devel] [RFC] WC3 decoder without AVPaletteControl
Michael Niedermayer
michaelni
Sat Nov 20 22:06:19 CET 2010
On Sat, Nov 20, 2010 at 06:38:56PM +0100, Reimar D?ffinger wrote:
> On Sat, Nov 20, 2010 at 05:14:25PM +0100, Michael Niedermayer wrote:
> > > @@ -48,7 +49,7 @@
> > > int av_new_packet(AVPacket *pkt, int size)
> > > {
> > > uint8_t *data= NULL;
> > > - if((unsigned)size < (unsigned)size + FF_INPUT_BUFFER_PADDING_SIZE)
> > > + if((unsigned)size <= INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE)
> > > data = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
> > > if (data){
> > > memset(data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
> >
> > i think av_malloc alraedy protects us against this, that said if you prefer
> > then this change is surely ok as a seperate commit
>
> I didn't like the idea of relying on it, also because
> av_malloc at least currently uses a hardcoded "16" (which I suspect is for the
> "memalign hack" version) and not FF_INPUT_BUFFER_PADDING_SIZE.
>
> > > int av_dup_packet(AVPacket *pkt)
> > > {
> > > if (((pkt->destruct == av_destruct_packet_nofree) || (pkt->destruct == NULL)) && pkt->data) {
> >
> > that should also be seperate from xan/wc* ideally
>
> Yes, I will of course commit the separately, first the extra av_new_packet check,
> then the grow_packet, then the append function and last the wc3 change was the plan.
>
> > > Index: libavformat/avformat.h
> > > ===================================================================
> > > --- libavformat/avformat.h (revision 25774)
> > > +++ libavformat/avformat.h (working copy)
> > > @@ -245,6 +245,17 @@
> > > int av_get_packet(ByteIOContext *s, AVPacket *pkt, int size);
> > >
> > >
> > > +/**
> > > + * Reads data and appends it to the current content of the AVPacket.
> > > + * If pkt->size is 0 it behaves like av_get_packet.
> >
> > This should mention that its inefficient and better to allocate a correctly
> > sized packet
>
> Done.
> More comments?
no further comments from me
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Democracy is the form of government in which you can choose your dictator
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20101120/c714e6ab/attachment.pgp>
More information about the ffmpeg-devel
mailing list