Project Home
Project Home
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Couldn't Load audio_writer DLL: (7 Items)
   
Couldn't Load audio_writer DLL  
Hello Team,

I have an QNX IFS image and the bare minimum io-media-generic related binaries to be loaded on a particular hardware.  
Currently trying to bring up only audio playback using io-media-generic. The image is flashed to a NOR memory.

When I try to load all the media related filters, i get an error for "audio_writer Couldn't load the DLL"

I checked the dev entry for the same. /dev/snd/pcmPreferredP is available.

Can anybody suggest why the audio_writer is failing in spite of the device entry available.

Thanks for the help.

Regards,
lakshmi
Re: Couldn't Load audio_writer DLL  
I wonder if maybe audio_writer is having some trouble finding a shared 
library that is required.  You can try starting io-media with the 
environment variable DL_DEBUG set.  ie, from the shell:
   DL_DEBUG=1 io-media-generic

Here's the list of shared libraries that it should require:
$ ntoarm-readelf -d 
./lib/mmedia/filters/writers/audio_writer/nto/arm/dll.le/audio_writer.so

Dynamic section at offset 0x6020 contains 23 entries:
   Tag        Type                         Name/Value
  0x00000001 (NEEDED)                     Shared library: [libasound.so.2]
  0x00000001 (NEEDED)                     Shared library: [libmmfilter.so.1]
  0x00000001 (NEEDED)                     Shared library: [libaoi.so.1]
  0x00000001 (NEEDED)                     Shared library: [libmmedia.so.1]
  0x00000001 (NEEDED)                     Shared library: [libc.so.3]
  0x0000000e (SONAME)                     Library soname: [audio_writer.so]


-- 
Ryan J. Allen
QNX Software Systems
Re: Couldn't Load audio_writer DLL  
Hello Ryan,

Sorry for the late response. I share my hardware setup with other team members. I could try this only today and hence 
the delay.

I checked the presence of the libraries, all were present. Environment variable MM_INIT was also set. But I continue to 
get this error.

Regards,
Lakshmi
Re: Couldn't Load audio_writer DLL  
Hi Lakshmi,

Here are a few simple things I recommend trying when it seems that a filter can't be loaded or doesn't work:

* Run pidin mem.  It will tell you whether the filter DLL is successfully loaded or not.  Make sure that the keepdlls 
option in your configuration file is set to "all" -- otherwise it may be normal for some filters to be absent from the 
output of pidin mem even if io-media has no trouble loading them:

  keepdlls = "all"

* Find or add a "keepdll" element in the config file that mentions the filter.  Make sure that the filter is not listed 
as optional -- this way if io-media fails to load it at startup, it will complain and exit:

  keepdll {
      name = "audio_writer"
  }

* Run io-media with stderr pointing to somewhere readable like a file or a terminal.  Some error messages go to stderr 
even if you don't use the -S option.  This includes the dynamic linker's complaints about missing symbols or libraries.

* If it turns out that the DLL indeed fails to load, try exporting an environmant variable named DL_DEBUG before you run
 io-media.  This will produce detailed information about all the shared objects that it's trying to load, and about any 
failures.  This information also goes to stderr.

  DL_DEBUG=1 io-media-generic ...

* If it turns out that the filter does load but seems to reject inputs that you beileve it should accept, run io-media 
with two -D options.  That will make it send more detailed debug information to the system log (or to stderr, if you 
also use the -S option).

In the particular case of audio_writer, it's possible that it fails to load because you don't have the requred version 
of libasound.  There is a patch that contains an updated libasound, and any recent audio_writer will not work without 
that patch unless you have QNX 6.5.

I hope this helps -- if not, you know where to find me.  :)
Re: Couldn't Load audio_writer DLL  
Hello Wojtek,

Sorry for the late response again. I have done all the things mentioned by you. Still it is not working on my NOR 
flashed system. 

I tried one last thing. The io-media-generic.conf file is present in the /etc file.

The whole filesystem is present in the NOR memory, all the files are readonly.

I mounted a tmpfs filesystem on /fs
Copied the /etc/io-media-generic.conf file to /fs/tmpfs

launched io-media-generic with -c /fs/tmpfs/io-media-generic.conf.

Everything worked fantastic. i was able to perform the playback.

But can somebody explain why this file need to be present in the rw filesystem.
Is it trying to write anything?

This is just a workarround, we cannot release the configuration scripts to be present in /fs/tmpfs.

Thanks a lot for the reply to both Ryan and Wojtek once again.

Regards,
lakshmi
Re: Couldn't Load audio_writer DLL  
That's strange.  Io-media just uses fopen(...,"r") and fgets().

Did you just "cp" the file from /etc to /fs/tmpfs on the target, or did you do something more complicated?  Does "diff" 
confirm that the two files are identical?

To confirm that io-media actually reads the file in /etc, can you put some incorrect stuff in there, such as a line with
 an identifier but no '=' character after it, and see if io-media complains about it?

Re: Couldn't Load audio_writer DLL  
Yes, i just copied the file from /etc to /fs/tmpfs. It was strange for me too, hence I did do diff between both the 
files. They are identical.

I shall try the next option you mentioned and let you know tomorrow.

thanks
lakshmi