[MPlayer-users] Windows binary proprietary codec

Fernandon Bautista fernandobautista017 at gmail.com
Wed Sep 30 18:52:55 CEST 2015


Hi all again,

I am still trying to understand were the problem is. Along with this email
I have attached the output of the execution with -msglevel all=9. On the
other hand, by running gdb, I found out that the function acmStreamOpen
fails(which is called from from the function preinint  that is defined on
libmpcodecs/ad_acm.c). Obviously there is not debug info on the codec so I
know that the codec calls to my InitializeSecurityDescriptor implementation
but that is all. Finally, I am thinking on using Wine
InitializeSecurityDescriptor implementation (this is what I found:
https://github.com/wine-mirror/wine/blob/dcc6868057605296a7dacd89211e0673396abe45/dlls/advapi32/security.c)
but it forces me to add more functions and by reading the functionality, I
am not sure that this is the problem.

I will really appreciate if you can give any new hint/suggestion.

Thanks in advance.

On Mon, Sep 21, 2015 at 1:02 PM, Fernandon Bautista <
fernandobautista017 at gmail.com> wrote:

> 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