Bug 2336

Summary: The latest live555 causes linking to fail in mplayer compilation
Product: Fedora Reporter: stan <cuex_groppud0>
Component: live555Assignee: Nicolas Chauvet <kwizart>
Status: RESOLVED INVALID    
Severity: normal CC: cuex_groppud0
Priority: P5    
Version: 17   
Hardware: All   
OS: GNU/Linux   
namespace:

Description stan 2012-05-21 17:27:46 CEST
I compile mplayer on F17 from the subversion repository for mplayer.  After the update to the latest version of live555 from rpmfusion, the linking step fails with the following errors.

libmpdemux/demux_rtp.o: In function `demux_close_rtp':                
demux_rtp.cpp:(.text+0xbf): undefined reference to `RTSPClient::teardo
libmpdemux/demux_rtp.o: In function `demux_open_rtp':                 
demux_rtp.cpp:(.text+0x758): undefined reference to `RTSPClient::setuphar, unsigned char, unsigned char)'                                   
demux_rtp.cpp:(.text+0x7f3): undefined reference to `RTSPClient::playMloat)'                                                                
demux_rtp.cpp:(.text+0xa64): undefined reference to `RTSPClient::creatsigned short)'                                                        
demux_rtp.cpp:(.text+0xaab): undefined reference to `RTSPClient::descrar const*, unsigned char, int)'                                       
demux_rtp.cpp:(.text+0xbc9): undefined reference to `RTSPClient::descr char, int)'                                                          
collect2: error: ld returned 1 exit status                            
make: *** [mplayer] Error 1

When I asked on the mplayer mailing list, someone told me that this was likely due to the live555 library being compiled without a switch set.  Here is the actual response.

> Likely Live555 wasn't compiled with  
> -DRTSPCLIENT_SYNCHRONOUS_INTERFACE=1. I normally edit 
> 'livemedia/Makefile' and add  -DRTSPCLIENT_SYNCHRONOUS_INTERFACE=1 to 
> COMPILE_OPTS before compiling Live555. Or you can disable it by using 
> --disable-live when configuring MPlayer.
> 
> I just compiled latest FFMpeg/MPlayer/Live555  without issue, in 
> Mingw/Windows anyway.  

When I disabled live555 during mplayer configuration, mplayer was able to link correctly.

Could you recompile the live555 rpmfusion package with the switch set?  Thank you.
Comment 1 Nicolas Chauvet 2012-05-21 21:08:40 CEST
Quoting from the live555 header:
#ifdef RTSPCLIENT_SYNCHRONOUS_INTERFACE
  // Old "RTSPClient" interface, which performs synchronous (blocking) operations.
  // This will eventually go away, so new applications should not use it.

Quoting from the changelog:
http://www.live555.com/liveMedia/public/changelog.txt
2012.02.29:
- We no longer define RTSPCLIENT_SYNCHRONOUS_INTERFACE by default.  Consequently, the old, now-deprecated 'synchronous' "RTSPClient" interface will no longer be available, by default.  If you still want this, however, you can get it by "#define"ing RTSPCLIENT_SYNCHRONOUS_INTERFACE before "RTSPClient.hh" gets included the first time.


So this is a deprecated (blocking) API and MPlayer need to be ported to the non-blocking API.

Closed as INVALID as there is nothing to fix from the live555 point of view.
Thx for your report.
Comment 2 stan 2012-05-21 21:14:54 CEST
Thank you for the information and sorry for the noise.