[Ffmpeg-devel] PATCH Blackfin UNALIGNED_STORES_ARE_BAD in bitstream.h

François Revol revol
Wed Apr 18 11:23:34 CEST 2007


> > > IMO we should turn this the other way around:
> > > 
> > > #if !defined(ARCH_X86) && !defined(...)
> > > 
> > > Then the code will ALWAYS work, and just be suboptimal on archs 
> > > we
> > > haven't identified yet, rather than crashing on unknown archs.
> > 
> > i strongly object to this, noone would ever add any architecture 
> > besides x86
> > to it, how should anyone even know of this line?
> 
> It can be documented in a porting file or something. But I strongly
> object to having blatently nonportable code in the default build. If 
> I
> were trying to compile ffmpeg on a strange system and not a competent
> coder/debugger, I would have no idea why it crashed and probably just
> assume it was nonportable crapware rather than learning how to
> investigate and "fix" the problem.

Indeed, but ppl on BeOS will currently assume nonportable crapware 
because it will fail to build on PRI* macros... just because someone 
assumes "portable" to mean porting the OS to ffmpeg instead of the 
other way around. but that's another story.

> 1. Enable the nonportable code by default but have a
> --disable-nonportable-assumptions option to configure, or an
> ARCH_GENERIC define included in the above list that configure would
> define when the arch is unknown to inhibit all such optimizations.

Why an option a newbie wouldn't know about ?
You're just shuffling the problem around.

> 2. Just have configure print a message directing users to a porting
> document with references to this line and other similar lines when an
> unknown arch is detected.

#if !defined(..)
...
#endif
#ifdef ARCH_GENERIC
#warning "FIXME: Unknown arch, assuming strict alignment. This could be 
subobtimal!!!"
#endif

> > if it crashes and the person sends a bugrport its trivial to add 
> > the arch
> > if its just slower than what it could be nothing will happen it 
> > will always
> > stay slow
> 
> This assumes the code is maintained and the user is using the latest
> version. The problem is what happens 10 years from now if ffmpeg is

That's assuming gcc will be around in 10 years ;)

> > if configure would print a big warning like
> > WARINING: configure doesnt know your architecture and so has 
> > disabled all
> > optimizations, please try the following switches: ... and report 
> > bechmarks
> > to ffmpeg-dev so we can automate the optimization selection
> 
> Yes, this would be great.

Either this or the warning, yes.
Or both so ppl who didn't write it would find where to update stuff :)

Fran?ois.




More information about the ffmpeg-devel mailing list