Question

I'm trying to play a mp4 video in an app I'm developing however whenever I run the app in the emulator and on certain devices I get this error:

ERROR/MemoryHeapBase(34): error opening /dev/pmem_adsp: No such file or directory

I have no idea what this means and when I googled it all these responses came up that had to do with custom building the OS and things like this that I am not trying to do, nor want to do at all. I just want to play an mp4 video in my app, any suggestions?? By the way it works fine on the Nexus one.

Here is the code:

try {
        AssetFileDescriptor fileDesc = getVideoFileDescriptor();
        if (fileDesc != null) {
            player.setDataSource(fileDesc.getFileDescriptor(), fileDesc.getStartOffset(), fileDesc.getLength());

            fileDesc.close();

            player.prepare();

            player.setDisplay( holder );
            player.setOnCompletionListener( this );
            player.start();
        }

    }
    catch (Exception e) {
        Log.e( Constants.TAG, "Unable to play intro movie", e );
    }
Was it helpful?

Solution

AFACT it's looking for a filesystem mapping for a driver to the device's physical memory (/dev/pmem_) which controls the advanced digital signal processor (adsp). I would imagine that one of the codecs you've used is being passed to this hardware component for decoding, but it doesn't exist within the filesystem as the manufacturer didn't write a driver for it.

My advice is to find the smallest possible MP4 file which reproduces this problem and report it on the AOSP bug tracker, along with the sample file make sure to name the devices which have this problem. Also report it to the manufacturer.

If there's some option to use a software decoder instead, then this will most likely provide a viable workaround.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top