Thanks to Alban, Geoff, and Rüdiger for looking at my problem. I still
don't understand why, but installing the mp3val package and recompiling
solved the problem - I can now import mp3 files!

Just to test if mp3val was actually the critical piece here, I removed
mp3val using dpkg, and did a make clean && make && sudo make install to see
if mp3 imports would no longer work. It still works, I can still import mp3
files. So, I'm not sure what fixed it, but I can't complain.

Thanks again for your help.
Nate "DJ Homebody" Hartmann


On Tue, Oct 15, 2013 at 7:20 PM, Geoff Barkman <[email protected]>wrote:

> Sometimes mp3 related by installing the package ubuntu-restricted-extras .
> This might help you. Many thanks
> Geoff barkman
>
> sent by geoff on his android phone
> On Oct 16, 2013 10:41 AM, "Nate Hartmann" <[email protected]>
> wrote:
>
>> Thanks for looking at my problem Alban. I checked out those three
>> options, but am still hitting the same brick wall.
>>
>> Let me show you what I have, and maybe you can help me understand what
>> piece I'm missing.
>>
>> I have all three of those dev libraries installed:
>> $ dpkg -s libmad0-dev
>> Package: libmad0-dev
>> Status: install ok installed
>> Priority: optional
>> Section: libdevel
>> Installed-Size: 188
>> Maintainer: Ubuntu Developers <[email protected]>
>> Architecture: i386
>> Source: libmad
>> Version: 0.15.1b-7ubuntu1
>> $ dpkg -s libtwolame-dev
>> Package: libtwolame-dev
>> Status: install ok installed
>> Priority: optional
>> Section: libdevel
>> Installed-Size: 463
>> Maintainer: Ubuntu Developers <[email protected]>
>> Architecture: i386
>> Source: twolame
>> Version: 0.3.13-1build1
>> Replaces: libtwolame0-dev
>> Depends: libtwolame0 (= 0.3.13-1build1), libc6-dev, pkg-config
>> $ dpkg -s libmp3lame-dev
>> Package: libmp3lame-dev
>> Status: install ok installed
>> Priority: optional
>> Section: libdevel
>> Installed-Size: 490
>> Maintainer: Ubuntu Developers <[email protected]>
>> Architecture: i386
>> Source: lame
>> Version: 3.99.3+repack1-1
>> Depends: libmp3lame0 (= 3.99.3+repack1-1)
>>
>>
>> Apparently my Ubuntu installation already had symbolic links named with
>> .so which point to the version-specific shared library file (e.g.
>> libmad.so.0.2.1)
>> $ file /usr/lib/libmad.so* /usr/lib/libtwolame.so*
>> /usr/lib/i386-linux-gnu/libmad.so* /usr/lib/i386-linux-gnu/libmp3lame.so*
>> /usr/lib/libmad.so:                          symbolic link to
>> `/usr/lib/i386-linux-gnu/libmad.so'
>> /usr/lib/libmad.so.0:                        symbolic link to
>> `/usr/lib/i386-linux-gnu/libmad.so'
>> /usr/lib/libtwolame.so:                      symbolic link to
>> `libtwolame.so.0.0.0'
>> /usr/lib/libtwolame.so.0:                    symbolic link to
>> `libtwolame.so.0.0.0'
>> /usr/lib/libtwolame.so.0.0.0:                ELF 32-bit LSB shared
>> object, Intel 80386, version 1 (SYSV), dynamically linked,
>> BuildID[sha1]=0x5a1b8b2e2ac8c079be35bd8c81073d2c589cd036, stripped
>> /usr/lib/i386-linux-gnu/libmad.so:           symbolic link to
>> `libmad.so.0.2.1'
>> /usr/lib/i386-linux-gnu/libmad.so.0:         symbolic link to
>> `libmad.so.0.2.1'
>> /usr/lib/i386-linux-gnu/libmad.so.0.2.1:     ELF 32-bit LSB shared
>> object, Intel 80386, version 1 (SYSV), dynamically linked,
>> BuildID[sha1]=0xd6f31fd3bf3caff864965ed52a425c1f5454251f, stripped
>> /usr/lib/i386-linux-gnu/libmp3lame.so:       symbolic link to
>> `libmp3lame.so.0.0.0'
>> /usr/lib/i386-linux-gnu/libmp3lame.so.0:     symbolic link to
>> `libmp3lame.so.0.0.0'
>> /usr/lib/i386-linux-gnu/libmp3lame.so.0.0.0: ELF 32-bit LSB shared
>> object, Intel 80386, version 1 (SYSV), dynamically linked,
>> BuildID[sha1]=0x7b3ac3b48da49661b14fc4ab89524a3a51510c96, stripped
>>
>> caed reports in the system log that it has the MAD decoding capabilities
>> during startup
>> $ grep -A2 -B2 -i caed.*mad /var/log/syslog |sed -e 's/.*u-11//'
>>  ripcd: started
>>  caed: Found TwoLAME encoder library, MPEG L2 encoding supported
>>  caed: Found MAD decoder library, MPEG L2 decoding supported
>>  caed: Unable to set realtime scheduling: No such process
>>  caed: cae started
>>
>> Since that message is logged from within MainObject::LoadMad, I can tell
>> that libmad.so was successfully loaded during caed's startup.
>>
>> It was a little bit trickier, but I was able to verify that the CGI
>> program does successfully load libmad. I found this out by getting a fresh
>> apache2 environment, then attaching strace[1] to every child process and
>> then performing an rdimport of an mp3 file. I can see from the strace's
>> output that it loads libmad:
>>
>> 31590 open("/usr/lib/i386-linux-gnu/libmad.so", O_RDONLY|O_CLOEXEC) = 5
>> 31590 read(5,
>> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\20\0\0004\0\0\0"...,
>> 512) = 512
>> 31590 fstat64(5, {st_mode=S_IFREG|0644, st_size=91448, ...}) = 0
>> 31590 mmap2(NULL, 94292, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,
>> 5, 0) = 0x1821000
>> 31590 mmap2(0x1837000, 8192, PROT_READ|PROT_WRITE,
>> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x15) = 0x1837000
>> 31590 close(5)
>>
>> I must still be missing something, but I can't tell what. Is there any
>> other place where I have to make Rivendell aware that it has mp3 decoding
>> capabilities?
>>
>> Thanks again for your help and insight,
>> Nate "DJ Homebody" Hartmann
>>
>> [1]  For anyone trying to reproduce that test, here's the full command:
>> sudo service apache2 restart ; sudo rm -v /tmp/apache2.strace.* ; for pid
>> in `pidof apache2` ; do sudo strace -f -p$pid -o/tmp/apache2.strace.$pid &
>>  done ; sleep 3; rdimport --log-mode TEST /tmp/your-test-file.mp3 ; sudo
>> killall strace ; grep libmad /tmp/*strace*
>>
>>
>> On Tue, Oct 15, 2013 at 5:38 PM, Nate Hartmann <[email protected]>wrote:
>>
>>> Thanks for looking at my problem Alban. I checked out those three
>>> options, but am still hitting the same brick wall.
>>>
>>> Let me show you what I have, and maybe you can help me understand what
>>> piece I'm missing.
>>>
>>> I have all three of those dev libraries installed:
>>> $ dpkg -s libmad0-dev
>>> Package: libmad0-dev
>>> Status: install ok installed
>>> Priority: optional
>>> Section: libdevel
>>> Installed-Size: 188
>>> Maintainer: Ubuntu Developers <[email protected]>
>>> Architecture: i386
>>> Source: libmad
>>> Version: 0.15.1b-7ubuntu1
>>> $ dpkg -s libtwolame-dev
>>> Package: libtwolame-dev
>>> Status: install ok installed
>>> Priority: optional
>>> Section: libdevel
>>> Installed-Size: 463
>>> Maintainer: Ubuntu Developers <[email protected]>
>>> Architecture: i386
>>> Source: twolame
>>> Version: 0.3.13-1build1
>>> Replaces: libtwolame0-dev
>>> Depends: libtwolame0 (= 0.3.13-1build1), libc6-dev, pkg-config
>>> $ dpkg -s libmp3lame-dev
>>> Package: libmp3lame-dev
>>> Status: install ok installed
>>> Priority: optional
>>> Section: libdevel
>>> Installed-Size: 490
>>> Maintainer: Ubuntu Developers <[email protected]>
>>> Architecture: i386
>>> Source: lame
>>> Version: 3.99.3+repack1-1
>>> Depends: libmp3lame0 (= 3.99.3+repack1-1)
>>>
>>>
>>> Apparently my Ubuntu installation already had symbolic links named with
>>> .so which point to the version-specific shared library file (e.g.
>>> libmad.so.0.2.1)
>>> $ file /usr/lib/libmad.so* /usr/lib/libtwolame.so*
>>> /usr/lib/i386-linux-gnu/libmad.so* /usr/lib/i386-linux-gnu/libmp3lame.so*
>>> /usr/lib/libmad.so:                          symbolic link to
>>> `/usr/lib/i386-linux-gnu/libmad.so'
>>> /usr/lib/libmad.so.0:                        symbolic link to
>>> `/usr/lib/i386-linux-gnu/libmad.so'
>>> /usr/lib/libtwolame.so:                      symbolic link to
>>> `libtwolame.so.0.0.0'
>>> /usr/lib/libtwolame.so.0:                    symbolic link to
>>> `libtwolame.so.0.0.0'
>>> /usr/lib/libtwolame.so.0.0.0:                ELF 32-bit LSB shared
>>> object, Intel 80386, version 1 (SYSV), dynamically linked,
>>> BuildID[sha1]=0x5a1b8b2e2ac8c079be35bd8c81073d2c589cd036, stripped
>>> /usr/lib/i386-linux-gnu/libmad.so:           symbolic link to
>>> `libmad.so.0.2.1'
>>> /usr/lib/i386-linux-gnu/libmad.so.0:         symbolic link to
>>> `libmad.so.0.2.1'
>>> /usr/lib/i386-linux-gnu/libmad.so.0.2.1:     ELF 32-bit LSB shared
>>> object, Intel 80386, version 1 (SYSV), dynamically linked,
>>> BuildID[sha1]=0xd6f31fd3bf3caff864965ed52a425c1f5454251f, stripped
>>> /usr/lib/i386-linux-gnu/libmp3lame.so:       symbolic link to
>>> `libmp3lame.so.0.0.0'
>>> /usr/lib/i386-linux-gnu/libmp3lame.so.0:     symbolic link to
>>> `libmp3lame.so.0.0.0'
>>> /usr/lib/i386-linux-gnu/libmp3lame.so.0.0.0: ELF 32-bit LSB shared
>>> object, Intel 80386, version 1 (SYSV), dynamically linked,
>>> BuildID[sha1]=0x7b3ac3b48da49661b14fc4ab89524a3a51510c96, stripped
>>>
>>> caed reports in the system log that it has the MAD decoding capabilities
>>> during startup
>>> $ grep -A2 -B2 -i caed.*mad /var/log/syslog |sed -e 's/.*u-11//'
>>>  ripcd: started
>>>   caed: Found TwoLAME encoder library, MPEG L2 encoding supported
>>>  caed: Found MAD decoder library, MPEG L2 decoding supported
>>>  caed: Unable to set realtime scheduling: No such process
>>>  caed: cae started
>>>
>>> Since that message is logged from within MainObject::LoadMad, I can tell
>>> that libmad.so was successfully loaded during caed's startup.
>>>
>>> It was a little bit trickier, but I was able to verify that the CGI
>>> program does successfully load libmad. I found this out by getting a fresh
>>> apache2 environment, then attaching strace[1] to every child process and
>>> then performing an rdimport of an mp3 file. I can see from the strace's
>>> output that it loads libmad:
>>>
>>> 31590 open("/usr/lib/i386-linux-gnu/libmad.so", O_RDONLY|O_CLOEXEC) = 5
>>> 31590 read(5,
>>> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\20\0\0004\0\0\0"...,
>>> 512) = 512
>>> 31590 fstat64(5, {st_mode=S_IFREG|0644, st_size=91448, ...}) = 0
>>> 31590 mmap2(NULL, 94292, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,
>>> 5, 0) = 0x1821000
>>> 31590 mmap2(0x1837000, 8192, PROT_READ|PROT_WRITE,
>>> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x15) = 0x1837000
>>> 31590 close(5)
>>>
>>> I must still be missing something, but I can't tell what. Is there any
>>> other place where I have to make Rivendell aware that it has mp3 decoding
>>> capabilities?
>>>
>>> Thanks again for your help and insight,
>>> Nate "DJ Homebody" Hartmann
>>>
>>> [1]  For anyone trying to reproduce that test, here's the full command:
>>> sudo service apache2 restart ; sudo rm -v /tmp/apache2.strace.* ; for
>>> pid in `pidof apache2` ; do sudo strace -f -p$pid
>>> -o/tmp/apache2.strace.$pid &  done ; sleep 3; rdimport --log-mode TEST
>>> /tmp/your-test-file.mp3 ; sudo killall strace ; grep libmad /tmp/*strace*
>>>
>>>
>>>
>>> On Mon, Oct 14, 2013 at 9:25 PM, Alban Peignier <[email protected]>wrote:
>>>
>>>> Hi Nate,
>>>>
>>>> Rivendell uses dlopen to find libmad.so, libmp3lame.so and
>>>> libtwolame.so.
>>>>
>>>> On Debian/Ubuntu systems, these libraries are available as libmad.so.0,
>>>> libmp3lame.so.0 and libtwolame.so.0.
>>>>
>>>> You can either :
>>>>
>>>> * create manual links
>>>> * install the associated libXYZ-dev packages (with provided link)
>>>> * apply the same patch as the debian packaging does [0]
>>>>
>>>> Or more simply use the debian/ubuntu packages :)
>>>>
>>>> 0.
>>>>
>>>> http://projects.tryphon.eu/projects/rivendell2-debian/repository/revisions/master/entry/debian/patches/0005-Add-version-for-dlopened-libraries.patch
>>>>
>>>> Regards,
>>>> --
>>>> Alban Peignier - [email protected]
>>>>
>>>> Tryphon : Radio, Web et Logiciels Libres
>>>> http://www.tryphon.eu
>>>>
>>>
>>>
>>
>> _______________________________________________
>> Rivendell-dev mailing list
>> [email protected]
>> http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev
>>
>>
_______________________________________________
Rivendell-dev mailing list
[email protected]
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev

Reply via email to