rhythmbox xine amd64

Ding-Yi Chen dingyichentw at yahoo.com
Sun Oct 23 11:33:03 PDT 2005


 >  > Has anyone successfully compiled rhythmbox on an amd64 using the xine
 >  > backend? This used to work, maybe sometime before gnome 10. I've 
rebuilt
 >  > xine, libxine and faad2 successfully.  Running 5-Stable from May 
18th,
 > > all ports up to date as of today. Xine works normally. Rhythmbox
 > > compiles successfully without the xine option.  Is there a way to use
 > > the gstreamer backend for m4a files?
 >
 > Reinstall multimedia/mpeg4ip-libmp4v2 and retry and everything *should*
 > work.

 > Michael

I've sucessfully compiled the rhythmbox on my centrino, but the source 
code of mpeg4ip-libmp4v2 should be modified.
Rebuild the mpeg4ip-libmp4v2 will not work, for the function 
'MP4GetTrackAudioType' has simply disappeared,
 because the author/maintainer thinks the function name 
'MP4GetTrackEsdsObjectTypeId' is more appropriate.
See the API_CHANGES file for this 
(/usr/ports/multimedia/mpeg4ip-libmp4v2/work/mpeg4ip-1.3/lib/mp4v2/API_CHANGES).

To see whether you need to change the source, you should:
1. cd /usr/ports/multimedia/mpeg4ip-libmp4v2
2. make
3. nm work/mpeg4ip-1.3/lib/mp4v2/.libs/libmp4v2.so | grep 
MP4GetTrackAudioType

If nothing returned, then you need to modify the source code, namely the 
mp4.cpp.
4. cd work/mpeg4ip-1.3/lib/mp4v2/
5. edit the mp4.cpp and find 'MP4GetTrackAudioType'
    You may see some thing like this:

// Replacement to MP4GetTrackVideoType and MP4GetTrackAudioType
// Basically does the same thing but with a more self-explanatory name
extern "C" u_int8_t MP4GetTrackEsdsObjectTypeId(
     MP4FileHandle hFile, MP4TrackId trackId)
{
.....
}


6. In front of this function, add following lines:

extern "C" u_int8_t MP4GetTrackVideoType(MP4FileHandle hFile, MP4TrackId 
trackId){
    return MP4GetTrackEsdsObjectTypeId(hFile,trackId);
}

extern "C" u_int8_t MP4GetTrackAudioType(MP4FileHandle hFile, MP4TrackId 
trackId){
    return MP4GetTrackEsdsObjectTypeId(hFile,trackId);
}

7. Save and exit the editing.
8. make clean; make
9. If there is no problem, then go to 
/usr/ports/multimedia/mpeg4ip-libmp4v2, continue the "make install 
clean". :-)
10. Now you can build rhythmbox.

Regards,

Ding-Yi Chen





More information about the freebsd-gnome mailing list