[MPlayer-cvslog] r34632 - trunk/stream/stream_ffmpeg.c

Reimar Döffinger Reimar.Doeffinger at gmx.de
Fri Feb 10 19:44:24 CET 2012



On 10 Feb 2012, at 15:18, Diego Biurrun <diego at biurrun.de> wrote:

> On Fri, Feb 10, 2012 at 12:47:02PM +0100, Ingo Brückl wrote:
>> reimar wrote on Sat, 28 Jan 2012 14:47:01 +0100 (CET):
>> 
>>> Log:
>>> Some hacks to allow stream_ffmpeg to compile against newer FFmpeg.
>> 
>>> Keep the old code so that it is still possible to compile
>>> against older FFmpeg without using internal API.
>> 
>>> +++ trunk/stream/stream_ffmpeg.c        Sat Jan 28 14:47:01 2012 (r34632)
>>> @@ -26,6 +26,16 @@
>>> #include "m_struct.h"
>>> #include "av_helpers.h"
>>> 
>>> +#ifndef URL_RDONLY
>>> +#include "libavformat/url.h"
>>> +#define url_read_complete ffurl_read_complete
>>> +#define url_write ffurl_write
>>> +#define url_seek ffurl_seek
>>> +#define url_filesize ffurl_size
>>> +#define url_close ffurl_close
>>> +#define url_open(c, n, f) ffurl_open(c, n, f, NULL, NULL)
>>> +#endif
>> 
>> I have problems with shared ffmpeg (just cloned and compiled):
>> 
>>  LD      mplayer
>>  stream/stream_ffmpeg.o: In function `open_f':
>>  stream_ffmpeg.c:(.text+0x12d): undefined reference to `ffurl_size'
>>  stream/stream_ffmpeg.o: In function `control':
>>  stream_ffmpeg.c:(.text+0x2a4): undefined reference to `ffurl_size'
>>  stream/stream_ffmpeg.o: In function `fill_buffer':
>>  stream_ffmpeg.c:(.text+0x31e): undefined reference to `ffurl_read_complete'
>>  stream/stream_ffmpeg.o: In function `seek':
>>  stream_ffmpeg.c:(.text+0x35d): undefined reference to `ffurl_seek'
>>  make: *** [mplayer] Error 1
>> 
>> Is
>> 
>>  diff --git a/libavformat/libavformat.v b/libavformat/libavformat.v
>>  index 6949884..e2fb65a 100644
>>  --- a/libavformat/libavformat.v
>>  +++ b/libavformat/libavformat.v
>>  @@ -12,6 +12,9 @@ LIBAVFORMAT_$MAJOR {
>>                   ffio_open_dyn_packet_buf;
>>                   ffurl_close;
>>                   ffurl_open;
>>  +                ffurl_read_complete;
>>  +                ffurl_seek;
>>  +                ffurl_size;
>>                   ffurl_write;
>>                   url_open;
>>                   url_close;
>> 
>> the right way to fix it (and does it have a chance to get committed)?
>> (I know, wrong mailing list to ask, but before I embarrass myself on
>> ffmpeg-user...)
> 
> The right way is to fix MPlayer not to misuse internal API, not export
> more symbols from libavformat.

There is no suitable alternative to the (only now) internal API.
FFmpeg should be easy enough to convince to expose the low-level API again.
Libav probably not since they drove removing the old API without replacement.


More information about the MPlayer-cvslog mailing list