[Ffmpeg-devel] [PATCH] MS-GSM support: draft for review

Michel Bardiaux mbardiaux
Tue Nov 7 13:55:35 CET 2006


Michael Niedermayer wrote:
> Hi
> 
> On Tue, Nov 07, 2006 at 11:33:53AM +0100, Michel Bardiaux wrote:
> [...]
>>>>> ) are packed together into one
>>>>> 65 byte packet instead of each padded to a multiple of 8 (=33 byte)
>>>>> this is nasty, MS programmers should be shot for this
>>>> The alternative, 4 bits of padding per frame, isnt clean either.
>>> every codec pads to bytes with very few exceptions, 
>> Which exceptions?
> 
> i thought h.261 allowed it but iam not sure
> 
> 
>>> also there are rules
>>> on what a AVPacket is, you cant just put 2 packets in it, thats violating
>>> the API, an AVPacket by definition is 1 packet
>>>
>>>
>>>>> the solution is IMHO a AVParser which splits these packet pairs before 
>>>>> the
>>>>> gsm decoder
>>>> This is not the way I see collaboration to an open-source project. When 
>>>> someone has something that works (in a domain where things didnt work or 
>>>> were not implemented before), you may reject code that is *grossly* 
>>>> wrong or bloated or slow; not because you find the style not one-liney 
>>>> enough, or complicated enough, or obfuscated enough.
>>> a patch which violates several rules of our policy is rejected no matter
>>> what great things it implements
>>>
>>>
>>>> Then *you* are free to submit something better.
>>>>
>>>> With 30 years of experience under my belt, I would not tolerate that 
>>>> attitude from my head of department, and I dont think I have to accept 
>>>> it from you.
>>> you dont have to, thats the beauty of free software, just fork
>> That's not realistic and you know it.
> 
> why not?

Because I have neither the time nor the manpower even to maintain a set 
of unofficial patches over successive versions.

> 
> 
> [...]
>>> second 
>>>  it breaks the rule of 1 packet per AVPacket, all codecs be it mpeg1
>>>  mpeg2, mpeg4, mp3, h264, h263, ac3, ... get split to packets msgsm if it
>>>  is supported will be too (and yes there is some old code which doesnt
>>>  split things into packets but that is wrong and should be fixed)
>>> third
>>>  your implementation does not allow -acodec copy between msgsm<->gsm
>> That's circular reasoning: if the codecs are deemed different enough 
>> then its normal that copy does not work.
> 
> copy should always work if possible (its lossless vs lossy issue)
> 
> 
>> Now, I've completed my dev on basis of my initial patch, including the 
>> changes to the WAV header, producing a WAV file that works in WinAmp. 
>> Now that I have that as reference implementation, I'll have a go at the 
>> parser-based approach, but I'll need some help. ITIYM things like pnm_parse?
> 
> yes, though, pnm_parse() is a little more complex then what should be needed
> i mean pnm_parse() parses some header to determine frame size, while here
> the the size is constant

It looked like the simplest parser I could find. Or did I miss a better 
example?

> pnm_parse() and many other parsers due to the need of header parsing also
> need to deal with overread (the problem that they need a few bytes of the
> start of one frames before they know that it is the start of one) that
> is also unneeded for gsm due to the constant size
> 

Is there somewhere an explanation of the parser API?


-- 
Michel Bardiaux
R&D Director
T +32 [0] 2 790 29 41
F +32 [0] 2 790 29 02
E mailto:mbardiaux at mediaxim.be

Mediaxim NV/SA
Vorstlaan 191 Boulevard du Souverain
Brussel 1160 Bruxelles
http://www.mediaxim.com/




More information about the ffmpeg-devel mailing list