[MPlayer-dev-eng] Re: PATCH [0/12] CoreAVC support (Take 3)

Alan Nisota alannisota at gmail.com
Wed Feb 28 04:14:42 CET 2007

Alex Beregszaszi wrote:
> Hi,
>> As a reminder, these patches add support for the CoreAVC directshow 
>> filter, which supports AVC1, as well as h264 with MBAFF and PAFF.
> What the hell is CoreAVC and why is it so problematic to support it?
CoreAVC is a very efficient AVC1/H264 Directshow codec.  It is non-free 
(and does some registration related checks which require new 
functionality), and comes compressed (probably to help avoid reverse 
engineering) which presents a few more challenges.  It is multi-threaded 
(which gives it a huge performance boost on multi-cpu systems) but this 
also requires new capabilities in mplayer.  In the end, it is the only 
way for many of us to watch Hi-Def h.264 material on reasonably priced 
hardware in linux.

>> 002dstfmt.patch: Ignore an error on connecting the output pin on filter 
> Maybe good, but remove the unneded cosmetics.
Not sure what cosmetics you mean.  The only 'cosmetics' are a 2 line 
comment explaining WTF is going on.

>> 006cpu.patch: adds support for multiple CPUs.  It enables Semaphores and
> Separate this logically into SMP support and mutex fix.
See below

>> 008newfunc.patch: adds several support for several new functions to
> Split this into more parts, UNDEF, new functions, etc.
See below

>> 009threaddisp.patch: an optional patch that shows the threadid in win32
> Are you sure this doesnt breaks anything?
I don't have any other codecs that are threaded, but obviously it works 
fine with CoreAVC which is heavily threaded.

>> 010stub.patch: This adds a return value to win32 stubbed apps.  These 
> Huh? This could cause crashes in case of caller doesnt saves eax.
Windows API does not allow eax to be preserved in a function call. 
Besides, this is the same code that was in mplayer for years before the 
magic stub was rewritten to be less hacky

>> 012regedit.patch: Adds a new file 'modify_reg.c' that can be used to add
> I like this tool but must be cleaned up.

Well, I'm done.  I've gotten absolutely nowhere with trying to get any 
of this stuff into mplayer, and I'm not going to split the 12 patches I 
already have into even more until I see some evidence that the devs 
actually care.  For the users of my patch (and there seem to be quite a 
few given the amount of email I get on this stuff) it would be better as 
a monolithic patch.  I only split it in the 1st place in the hopes of 
making it more palatable to the mplayer devs.

This patch set has no hacks for CoreAVC (well, I guess you could 
consider the MPEG2HEADER stuff a hack, but it also adds new 
functionality usable by other codecs), and is basically just fixing bugs 
and adding a bunch of new capabilities to mplayer.  I'll be happy to do 
whatever cleanup is required if things start moving towards inclusion, 
but it is more than good enough as is for myself and the users who care, 
so I'm not wasting any more breath on trying to make the devs happy 
until then.

I'll post updates here if changes are needed for future versions of 
CoreAVC (or if by some miracle some of my patches actually start moving 
into mplayer), but otherwise, I'll go away now and stop bothering you guys.


More information about the MPlayer-dev-eng mailing list