[MPlayer-users] Windows binary proprietary codec

Fernandon Bautista fernandobautista017 at gmail.com
Mon Sep 21 13:02:13 CEST 2015


Reimar,

I tried just by copy-paste of the RegCloseKey function. These are my files:

*etc/codecs.conf:*
audiocodec g729b
  info "Our provider g729b"
  status working
  format 0x0135
  driver acm
  dll "g729b.acm"

*loader/win32.c:*
static const struct exports exp_advapi32[]={
    FF(InitializeSecurityDescriptor, -1)
...
static WIN_BOOL
WINAPI expInitializeSecurityDescriptor(long security, int word)
{
    WIN_BOOL result=InitializeSecurityDescriptor(security, word);
    dbgprintf("InitializeSecurityDescriptor");
    return result;
}

*loader/registry.c:*
WIN_BOOL __stdcall InitializeSecurityDescriptor(long security, int word)
{
    return 0;
}

*loader/registry.h *
WIN_BOOL __stdcall InitializeSecurityDescriptor(long security, int word);


And this is what I am getting:

-bash-4.1$ mplayer -v colo.wav -ao pcm:file=colooutput.wav
MPlayer SVN-r37401-snapshot-4.4.7 (C) 2000-2015 MPlayer Team

Playing colo.wav.
get_path('sub/') -> '.mplayer/sub/'
[file] File size is 1124258 bytes
STREAM: [file] colo.wav
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
libavformat version 56.25.101 (internal)
Configuration: --enable-gpl --enable-postproc
LAVF_check: WAV / WAVE (Waveform Audio)
Checking for YUV4MPEG2
ASF_check: not ASF guid!
Checking for REAL
Checking for SMJPEG
Searching demuxer type for filename colo.wav ext: .wav
Trying demuxer 17 based on filename extension
==> Found audio stream: 0
======= WAVE Format =======
Format Tag: 309 (0x135)
Channels: 2
Samplerate: 8000
avg byte/sec: 2181
Block align: 11
bits/sample: 0
cbSize: 0
==========================================================================
demux_audio: audio data 0x3A - 0x1127A2
Audio only file format detected.
Load subtitles in .
get_path('sub/') -> '.mplayer/sub/'
==========================================================================
Opening audio decoder: [acm] Win32/ACM decoders
Win32 (ACM) AUDIO Codec init =======
Input format:
======= WAVE Format =======
Format Tag: 309 (0x135)
Channels: 2
Samplerate: 8000
avg byte/sec: 2181
Block align: 11
bits/sample: 0
cbSize: 0
==========================================================================
Output format:
======= WAVE Format =======
Format Tag: 1 (0x1)
Channels: 2
Samplerate: 8000
avg byte/sec: 32000
Block align: 4
bits/sample: 16
cbSize: 0
==========================================================================

==========================================================================
Opening audio decoder: [acm] Win32/ACM decoders
Loading codec DLL: 'g729b_st.acm'
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/KERNEL32.dll
Win32 LoadLibrary failed to load: /usr/local/lib/codecs/ADVAPI32.dll
Loaded DLL driver g729b_st.acm at 10000000
ACM_Decoder: Unappropriate audio format
Could not load/initialize Win32/ACM audio codec (missing DLL file?).
ADecoder preinit failed :(
ADecoder init failed :(
Cannot find codec for audio format 0x135.
Audio: no sound
Video: no video


Exiting... (End of file)

In there any way of getting more information? I have tried using gdb but I
get this:
Program exited normally.
Missing separate debuginfos, use: debuginfo-install
glibc-2.12-1.149.el6_6.9.i686 zlib-1.2.3-29.el6.i686

I will install those packages and try again. In the meantime, if you could
suggest something, I would really appreciate.

Thanks.

On Mon, Aug 10, 2015 at 11:47 AM, Fernandon Bautista <
fernandobautista017 at gmail.com> wrote:

> Thanks for your answer! I will try to go for the second approach and if it
> does not work, then I will ask you for this local version of mplayer for
> running on wine.
>
> On Sat, Aug 8, 2015 at 7:02 PM, Reimar Döffinger <Reimar.Doeffinger at gmx.de
> > wrote:
>
>> On Fri, Aug 07, 2015 at 12:25:48PM +0200, Fernandon Bautista wrote:
>> > 2) Compile 32 bit mplayer:
>>
>> I have a local hack I never finished that uses only
>> a 32 bit stub, in case that 32 bit MPlayer is an annoyance.
>> That stub can also be compiled as a Windows program to
>> be run via wine (actually that's the only way currently,
>> I haven't fixed it to support our loader).
>> It needs significant cleanup though, but if you might
>> consider going to that level of effort I can send it out.
>>
>> > Called unk_InitializeSecurityDescriptor
>> >
>> > I understand that there is not implementation of the
>> > InitializeSecurityDescriptor function. I took a look to the code and I
>> > understood that you grabbed some Wine code to emulate/fake system calls
>> .
>>
>> We actually don't emulate any system calls to my knowledge, only library
>> calls.
>>
>> > want to fix these and I was wondering if there is any doc or guidelines
>> > for  doing it.
>>
>> Not really.
>> Your starting point would be loader/win32.c
>> For this function, exp_advapi32 array.
>> Then mostly try a copy-paste of an existing function like RegCloseKey
>> (just search for all occurrences of that string), most importantly
>> adjust the function signature to match the real thing
>>
>> https://msdn.microsoft.com/en-us/library/windows/desktop/aa378863%28v=vs.85%29.aspx
>> and find out the least effort way to "implement" it that
>> makes the codec happy.
>> In that case I'd start by just returning 0 (i.e. error), and
>> hope they used the "just keep going when things go wrong"
>> strategy of error handling.
>> Alternatively and even simpler, hope they designed the codec
>> to work on win9x and use the UNDEFF macro instead.
>> Instead of providing a fake emulation, that one says "no,
>> that function does not exist", which would be like on
>> win9x.
>> _______________________________________________
>> MPlayer-users mailing list
>> MPlayer-users at mplayerhq.hu
>> https://lists.mplayerhq.hu/mailman/listinfo/mplayer-users
>
>
>


More information about the MPlayer-users mailing list