For you x86 hackers out there, a hex search in your avformat binary for '80 38 46' or '80 3A 46' is highly likely to locate the relevant object code. The source code
"if (d[0] == 'F' && d[1] == 'L' && d[2] == 'V' && d[3] < 5 ..."
will typically give you something like
Code:
cmpb 046,(reg)
jnz FAIL
cmpb 04C,1(reg)
jnz FAIL
cmpb 056,2(reg)
jnz FAIL
cmpb 4,3(reg)
I changed my files (gen1 AppleTV and Xbox) to the equivalent of
"if ( (d[0] == 'F' || d[0] == 'G' || d[0] == 'H') && d[3] < 5 ..."
(12 byte patch) though other approaches are equally possible
Code:
cmpb 046,(reg)
jz OK
cmpb 047,(reg)
jz OK
cmpb 048,(reg)
jz OK
jnz FAIL
OK: cmpb 4,3(reg)
This approach will work for any x86 (Linux, OSX, Windows, Xbox) binary without needing a build environment, and can be quickly changed or reapplied as needed. Happy hacking!!
PS - patched file from my XBMC 10.1 Gen1 Apple TV - UAYOR!! Goes in:
/Applications/XBMC.app/Contents/Resources/XBMC/system/players/dvdplayer