Hi On Thu, Jan 25, 2007 at 07:02:40PM +0100, Baptiste Coudurier wrote: > Michael Niedermayer wrote: > > Hi > > > > On Sun, Jan 14, 2007 at 10:44:34PM +0100, Baptiste Coudurier wrote: > >> Michael Niedermayer wrote: > >>> Hi > >>> > >>> On Sun, Jan 14, 2007 at 01:51:29PM +0100, Baptiste Coudurier wrote: > >>>> Hi > >>>> > >>>> Michael Niedermayer wrote: > >>>>> Hi > >>>>> > >>>>> On Sun, Jan 14, 2007 at 01:39:27AM +0100, Baptiste Coudurier wrote: > >>>>>> Hi > >>>>>> > >>>>>> Here is a patch to support waveformatextensible header. > >>>>>> Only four first byte of GUID are needed, and they seem to match twocc. > >>>>> [...] > >>>>> > >>>>> cosmetics must be in seperate patches > >>>>> > >>>> Ok. Here it is. > >>> [...] > >>> > >>>> - codec->codec_id = wav_codec_get_id(id, codec->bits_per_sample); > >>>> - > >>>> if (size > 16) { /* We're obviously dealing with WAVEFORMATEX */ > >>>> - codec->extradata_size = get_le16(pb); > >>>> + int cbSize = get_le16(pb); > >>>> + if (id == 0xfffe) { > >>>> + codec->bits_per_sample = get_le16(pb); > >>>> + get_le32(pb); /* dwChannelMask */ > >>>> + id = get_le32(pb); /* 4 first bytes of GUID */ > >>>> + cbSize = 10; /* skip remaining bytes */ > >>> why? why not read them in extradata? > >>> > >> What would you do with 12 last bytes of GUID in extradata ? > > > > nothing but maybe i want the 13th and later bytes > > > > Like that ? > > -- > Baptiste COUDURIER GnuPG Key Id: 0x5C1ABAAA > SMARTJOG S.A. http://www.smartjog.com > Key fingerprint 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA > Phone: +33 1 49966312 > Index: libavformat/riff.c > =================================================================== > --- libavformat/riff.c (revision 7707) > +++ libavformat/riff.c (working copy) > @@ -422,22 +422,32 @@ > codec->bits_per_sample = 8; > }else > codec->bits_per_sample = get_le16(pb); > - codec->codec_id = wav_codec_get_id(id, codec->bits_per_sample); > - > if (size > 16) { /* We're obviously dealing with WAVEFORMATEX */ > - codec->extradata_size = get_le16(pb); > - if (codec->extradata_size > 0) { > - if (codec->extradata_size > size - 18) > - codec->extradata_size = size - 18; > + int cbSize = get_le16(pb); /* cbSize */ > + size -= 18; is the >16 / -18 intended? shouldnt that be >=18 ? > + if (cbSize > size) > + cbSize = size; cbSize= FFMIN(cbSize, size); > + if (cbSize >= 22 && id == 0xfffe) { /* WAVEFORMATEXTENSIBLE */ > + codec->bits_per_sample = get_le16(pb); > + get_le32(pb); /* dwChannelMask */ > + id = get_le32(pb); /* 4 first bytes of GUID */ > + url_fskip(pb, 12); /* skip end of GUID */ > + cbSize -= 22; > + size -= 22; > + } > + if (cbSize > 0) { > + codec->extradata_size = cbSize; > codec->extradata = av_mallocz(codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); > get_buffer(pb, codec->extradata, codec->extradata_size); > + size -= cbSize; > } else > codec->extradata_size = 0; codec->extradata_size= cbSize; before the if() should work too except these the patch looks ok [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Breaking DRM is a little like attempting to break through a door even though the window is wide open and the only thing in the house is a bunch of things you dont want and which you would get tomorrow for free anyway -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070125/1bc67d71/attachment.pgp>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4