[MPlayer-users] Problem compiling mPlayer from svn.

Giorgio Vazzana mywing81 at gmail.com
Mon Oct 15 10:02:06 CEST 2012


2012/10/14 Giorgio Vazzana <mywing81 at gmail.com>:
> 2012/10/14 Carl Eugen Hoyos <cehoyos at ag.or.at>:
>> Giorgio Vazzana <mywing81 <at> gmail.com> writes:
>>
>>> 2012/10/14 William Norfleet <wnor <at> midcoast.com>:
>>> >
>>> > Newbie, here.  With r35247 I'm still encountering:
>>> > libmpcodecs/ad_libvorbis.c:261: error: too few
>>> > arguments to function 'vorbis_synthesis'
>>
>>> I'm on Ubuntu Lucid x86_64 and it works here with
>>> libvorbis from the official repository:
>>
>> He has a tremor library installed.
>> (This is the same problem as the one in the
>> first mail of this thread.)
>
> Ok, a quick search for tremor gives:
>
> holden at rye:~/src/mplayer$ LANG=C apt-cache search tremor
> libvorbisidec-dev - Integer-only Ogg Vorbis decoder, AKA "tremor"
> (Development Files)
> libvorbisidec1 - Integer-only Ogg Vorbis decoder, AKA "tremor"
>
> I could try to install that and see if I hit the same problem too.
> I'll report in the following days.

Ok, I installed tremor on my Ubuntu Lucid box:

holden at rye:~$ LANG=C dpkg -l libvorbisidec*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                      Version                   Description
+++-=========================-=========================-==================================================================
ii  libvorbisidec-dev         1.0.2+svn16259-2          Integer-only
Ogg Vorbis decoder, AKA "tremor" (Development Files)
ii  libvorbisidec1            1.0.2+svn16259-2          Integer-only
Ogg Vorbis decoder, AKA "tremor"

configure check now seem to pass:

##########################################

============ Checking for OggVorbis support ============

#include <tremor/ivorbiscodec.h>
int main(void) { vorbis_packet_blocksize(0, 0); return 0; }

cc -Wundef -Wall -Wno-switch -Wno-parentheses -Wpointer-arith
-Wredundant-decls -Wstrict-prototypes -Wmissing-prototypes
-Wdisabled-optimization -Wno-pointer-sign
-Wdeclaration-after-statement -std=gnu99
-Werror-implicit-function-declaration -O4 -march=native -mtune=native
-pipe -ffast-math -fomit-frame-pointer -fno-tree-vectorize
/tmp/mplayer-configure--1469/tmp.c -Ilibdvdread4 -I. -Iffmpeg
-D_REENTRANT -I/usr/include/directfb -I/usr/include/     -D_REENTRANT
 -I/usr/include/freetype2   -ffast-math   -lncurses -lpng -lz -ljpeg
-lasound -ldl -lpthread -lfreetype -lz -lfontconfig  -lz -lmad
-ldirectfb  -lXext -lX11 -lpthread -lXv -lXinerama -laa -L/usr/lib
-lcaca -lSDL -lGL -ldl -lesd   -laudio -lXt -lpulse    -o
/tmp/mplayer-configure--1469/tmp -logg -lvorbisidec -lm


Result is: yes (integer libvorbis)
##########################################

although I will point out now that this should fail really:

holden at rye:~$ cat t.c
#include <tremor/ivorbiscodec.h>
int main(void) { vorbis_packet_blocksize(0, 0); return 0; }

holden at rye:~$ gcc -Wall t.c -lvorbisidec
/tmp/ccEAHx0r.o: In function `main':
t.c:(.text+0xf): undefined reference to `vorbis_packet_blocksize'
collect2: ld returned 1 exit status

and indeed I don't see vorbis_packet_blocksize:

holden at rye:~$ nm -D /usr/lib/libvorbisidec.so.1.0.2
                 w _Jv_RegisterClasses
                 U __ctype_toupper_loc
                 w __cxa_finalize
                 U __errno_location
                 w __gmon_start__
                 U __stack_chk_fail
                 U calloc
                 U fclose
                 U fread
                 U free
                 U fseek
                 U ftell
0000000000000000 A libvorbisidec.so.1
                 U malloc
                 U memchr
                 U memcpy
                 U memset
0000000000006e50 T ov_bitrate
0000000000006bb0 T ov_bitrate_instant
0000000000008c40 T ov_clear
0000000000007130 T ov_comment
00000000000070c0 T ov_info
0000000000009210 T ov_open
00000000000091c0 T ov_open_callbacks
0000000000009630 T ov_pcm_seek
00000000000084e0 T ov_pcm_seek_page
0000000000006f80 T ov_pcm_tell
0000000000006d00 T ov_pcm_total
0000000000008090 T ov_raw_seek
0000000000006f60 T ov_raw_tell
0000000000006c70 T ov_raw_total
0000000000009b10 T ov_read
0000000000006ba0 T ov_seekable
0000000000006c20 T ov_serialnumber
0000000000006b90 T ov_streams
0000000000009160 T ov_test
0000000000009150 T ov_test_callbacks
0000000000008f20 T ov_test_open
00000000000099e0 T ov_time_seek
0000000000008af0 T ov_time_seek_page
0000000000006fa0 T ov_time_tell
0000000000006d90 T ov_time_total
                 U qsort
                 U realloc
                 U strcpy
                 U strlen
0000000000004930 T vorbis_comment_clear
00000000000048e0 T vorbis_comment_init
0000000000004c90 T vorbis_comment_query
0000000000004bc0 T vorbis_comment_query_count
0000000000004880 T vorbis_info_blocksize
00000000000049d0 T vorbis_info_clear
0000000000004900 T vorbis_info_init

Anyway, with make I get the following error:

cc -MD -MP -Wundef -Wall -Wno-switch -Wno-parentheses -Wpointer-arith
-Wredundant-decls -Wstrict-prototypes -Wmissing-prototypes
-Wdisabled-optimization -Wno-pointer-sign
-Wdeclaration-after-statement -std=gnu99
-Werror-implicit-function-declaration -O4 -march=native -mtune=native
-pipe -ffast-math -fomit-frame-pointer -fno-tree-vectorize
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
-Ilibdvdread4 -I. -Iffmpeg  -D_REENTRANT -I/usr/include/directfb
-I/usr/include/     -D_REENTRANT   -I/usr/include/freetype2
-I/usr/local/include/opus   -c -o libmpcodecs/ad_libvorbis.o
libmpcodecs/ad_libvorbis.c
libmpcodecs/ad_libvorbis.c: In function 'decode_audio':
libmpcodecs/ad_libvorbis.c:255: warning: passing argument 2 of
'ds_get_packet_pts' from incompatible pointer type
./libmpdemux/demuxer.h:406: note: expected 'unsigned char **' but
argument is of type 'struct ogg_reference **'
libmpcodecs/ad_libvorbis.c:261: error: too few arguments to function
'vorbis_synthesis'
make: *** [libmpcodecs/ad_libvorbis.o] Errore 1

this is because vorbis_synthesis() used to have a third parameter that
was then removed (see
https://trac.xiph.org/changeset/17374/trunk/Tremor ). The following
patch is a quick workaround:

Index: libmpcodecs/ad_libvorbis.c
===================================================================
--- libmpcodecs/ad_libvorbis.c	(revision 35248)
+++ libmpcodecs/ad_libvorbis.c	(working copy)
@@ -258,7 +258,7 @@
 		sh->pts = pts;
 		sh->pts_bytes = 0;
 	    }
-	    if(vorbis_synthesis(&ov->vb,&op)==0) /* test for success! */
+	    if(vorbis_synthesis(&ov->vb,&op,1)==0) /* test for success! */
 	      vorbis_synthesis_blockin(&ov->vd,&ov->vb);
 	  }
 	  if(samples<=0) break; // error/EOF

but now makes gives another error:

cc -MD -MP -Wundef -Wall -Wno-switch -Wno-parentheses -Wpointer-arith
-Wredundant-decls -Wstrict-prototypes -Wmissing-prototypes
-Wdisabled-optimization -Wno-pointer-sign
-Wdeclaration-after-statement -std=gnu99
-Werror-implicit-function-declaration -O4 -march=native -mtune=native
-pipe -ffast-math -fomit-frame-pointer -fno-tree-vectorize
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
-Ilibdvdread4 -I. -Iffmpeg  -D_REENTRANT -I/usr/include/directfb
-I/usr/include/     -D_REENTRANT   -I/usr/include/freetype2
-I/usr/local/include/opus   -c -o libmpdemux/demux_ogg.o
libmpdemux/demux_ogg.c
In file included from /usr/include/theora/theoradec.h:25,
                 from libmpdemux/demux_ogg.c:52:
/usr/include/theora/codec.h:411: error: expected
specifier-qualifier-list before 'ogg_uint16_t'
libmpdemux/demux_ogg.c: In function 'demux_ogg_add_sub':
libmpdemux/demux_ogg.c:180: warning: initialization from incompatible
pointer type
libmpdemux/demux_ogg.c: In function 'demux_ogg_get_page_stream':
libmpdemux/demux_ogg.c:247: error: implicit declaration of function
'ogg_stream_init'
libmpdemux/demux_ogg.c: In function 'demux_ogg_read_packet':
libmpdemux/demux_ogg.c:263: warning: initialization from incompatible
pointer type
libmpdemux/demux_ogg.c:269: error: invalid operands to binary & (have
'ogg_reference' and 'int')
libmpdemux/demux_ogg.c:317: error: invalid operands to binary != (have
'ogg_reference' and 'int')
libmpdemux/demux_ogg.c:320: error: invalid operands to binary & (have
'ogg_reference' and 'int')
libmpdemux/demux_ogg.c:324: error: invalid operands to binary & (have
'ogg_reference' and 'int')
libmpdemux/demux_ogg.c:326: error: invalid operands to binary & (have
'ogg_reference' and 'int')
libmpdemux/demux_ogg.c:327: warning: assignment from incompatible pointer type
libmpdemux/demux_ogg.c:332: error: invalid operands to binary & (have
'ogg_reference' and 'int')
libmpdemux/demux_ogg.c:339: error: invalid operands to binary | (have
'int32_t' and 'ogg_reference')
libmpdemux/demux_ogg.c: In function 'demux_ogg_add_packet':
libmpdemux/demux_ogg.c:515: error: invalid operands to binary & (have
'ogg_reference' and 'int')
libmpdemux/demux_ogg.c:537: error: invalid operands to binary - (have
'unsigned char *' and 'struct ogg_reference *')
libmpdemux/demux_ogg.c:538: error: invalid operands to binary - (have
'unsigned char *' and 'struct ogg_reference *')
libmpdemux/demux_ogg.c: In function 'demux_ogg_scan_stream':
libmpdemux/demux_ogg.c:591: error: implicit declaration of function
'ogg_sync_buffer'
libmpdemux/demux_ogg.c:591: warning: initialization makes pointer from
integer without a cast
libmpdemux/demux_ogg.c:668: warning: initialization makes pointer from
integer without a cast
libmpdemux/demux_ogg.c: In function 'fixup_vorbis_wf':
libmpdemux/demux_ogg.c:698: warning: passing argument 2 of
'ds_get_packet' from incompatible pointer type
./libmpdemux/demuxer.h:405: note: expected 'unsigned char **' but
argument is of type 'struct ogg_reference **'
libmpdemux/demux_ogg.c: In function 'demux_ogg_open':
libmpdemux/demux_ogg.c:800: error: implicit declaration of function
'ogg_sync_init'
libmpdemux/demux_ogg.c:815: warning: assignment makes pointer from
integer without a cast
libmpdemux/demux_ogg.c:859: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:859: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:859: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:859: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:859: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:859: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:859: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:859: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:859: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:859: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:859: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:859: warning: passing argument 1 of 'strncmp'
from incompatible pointer type
/usr/include/string.h:145: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:868: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:868: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:868: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:868: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:868: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:868: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:868: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:868: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:868: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:868: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:868: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:868: warning: passing argument 1 of 'strncmp'
from incompatible pointer type
/usr/include/string.h:145: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:892: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:892: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:892: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:892: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:892: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:892: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:892: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:892: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:892: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:892: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:892: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:892: warning: passing argument 1 of 'strncmp'
from incompatible pointer type
/usr/include/string.h:145: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:938: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:938: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:938: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:938: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:938: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:938: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:938: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:938: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:938: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:938: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:938: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:938: warning: passing argument 1 of 'strncmp'
from incompatible pointer type
/usr/include/string.h:145: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:948: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:948: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:948: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:948: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:948: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:948: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:948: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:948: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:948: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:948: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:948: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:948: warning: passing argument 1 of 'strncmp'
from incompatible pointer type
/usr/include/string.h:145: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:964: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:964: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:964: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:964: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:964: warning: passing argument 1 of 'strlen'
from incompatible pointer type
/usr/include/string.h:397: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:964: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:964: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:964: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:964: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:964: warning: passing argument 1 of
'__builtin_strcmp' from incompatible pointer type
libmpdemux/demux_ogg.c:964: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:964: warning: passing argument 1 of 'strncmp'
from incompatible pointer type
/usr/include/string.h:145: note: expected 'const char *' but argument
is of type 'struct ogg_reference *'
libmpdemux/demux_ogg.c:971: error: aggregate value used where an
integer was expected
libmpdemux/demux_ogg.c:971: error: aggregate value used where an
integer was expected
libmpdemux/demux_ogg.c:971: error: aggregate value used where an
integer was expected
libmpdemux/demux_ogg.c:971: error: aggregate value used where an
integer was expected
libmpdemux/demux_ogg.c:989: warning: format '%c' expects type 'int',
but argument 5 has type 'ogg_reference'
libmpdemux/demux_ogg.c:989: warning: format '%c' expects type 'int',
but argument 6 has type 'ogg_reference'
libmpdemux/demux_ogg.c:989: warning: format '%c' expects type 'int',
but argument 7 has type 'ogg_reference'
libmpdemux/demux_ogg.c:989: warning: format '%c' expects type 'int',
but argument 8 has type 'ogg_reference'
libmpdemux/demux_ogg.c:1025: error: invalid operands to binary & (have
'ogg_reference' and 'int')
libmpdemux/demux_ogg.c: In function 'demux_ogg_fill_buffer':
libmpdemux/demux_ogg.c:1243: warning: assignment makes pointer from
integer without a cast
libmpdemux/demux_ogg.c: In function 'init_avi_with_ogg':
libmpdemux/demux_ogg.c:1344: warning: assignment makes pointer from
integer without a cast
libmpdemux/demux_ogg.c: In function 'demux_ogg_seek':
libmpdemux/demux_ogg.c:1496: warning: initialization makes pointer
from integer without a cast
libmpdemux/demux_ogg.c: In function 'demux_close_ogg':
libmpdemux/demux_ogg.c:1581: error: implicit declaration of function
'ogg_sync_clear'
libmpdemux/demux_ogg.c:1585: error: implicit declaration of function
'ogg_stream_clear'
make: *** [libmpdemux/demux_ogg.o] Errore 1

because tremor/ogg.h misses some prototypes, using ogg/ogg.h instead:

Index: libmpdemux/demux_ogg.c
===================================================================
--- libmpdemux/demux_ogg.c	(revision 35248)
+++ libmpdemux/demux_ogg.c	(working copy)
@@ -41,7 +41,7 @@
 #define FOURCC_THEORA mmioFOURCC('t', 'h', 'e', 'o')

 #ifdef CONFIG_TREMOR
-#include <tremor/ogg.h>
+#include <ogg/ogg.h>
 #include <tremor/ivorbiscodec.h>
 #else
 #include <ogg/ogg.h>

seems to work, but of course linking fails:

cc -o mencoder mencoder.o parser-mecmd.o xvid_vbr.o libmpcodecs/ae.o
libmpcodecs/ae_pcm.o libmpcodecs/ve.o libmpcodecs/ve_raw.o
libmpdemux/muxer.o libmpdemux/muxer_avi.o libmpdemux/muxer_mpeg.o
libmpdemux/muxer_rawaudio.o libmpdemux/muxer_rawvideo.o
libmpcodecs/ae_lavc.o libmpcodecs/ve_lavc.o libmpdemux/muxer_lavf.o
libmpcodecs/ae_lame.o libmpcodecs/ve_x264.o libmpcodecs/ve_xvid4.o
asxparser.o bstr.o codec-cfg.o cpudetect.o edl.o fmt-conversion.o
m_config.o m_option.o m_struct.o mp_msg.o mp_strings.o mpcommon.o
parser-cfg.o path.o playtree.o playtreeparser.o subopt-helper.o
libaf/af.o libaf/af_center.o libaf/af_channels.o libaf/af_comp.o
libaf/af_delay.o libaf/af_dummy.o libaf/af_equalizer.o
libaf/af_extrastereo.o libaf/af_format.o libaf/af_gate.o
libaf/af_hrtf.o libaf/af_karaoke.o libaf/af_pan.o libaf/af_resample.o
libaf/af_scaletempo.o libaf/af_sinesuppress.o libaf/af_stats.o
libaf/af_sub.o libaf/af_surround.o libaf/af_sweep.o libaf/af_tools.o
libaf/af_volnorm.o libaf/af_volume.o libaf/filter.o libaf/format.o
libaf/reorder_ch.o libaf/window.o libmpcodecs/ad.o
libmpcodecs/ad_alaw.o libmpcodecs/ad_dk3adpcm.o
libmpcodecs/ad_dvdpcm.o libmpcodecs/ad_hwac3.o libmpcodecs/ad_hwmpa.o
libmpcodecs/ad_imaadpcm.o libmpcodecs/ad_msadpcm.o
libmpcodecs/ad_pcm.o libmpcodecs/dec_audio.o
libmpcodecs/dec_teletext.o libmpcodecs/dec_video.o
libmpcodecs/img_format.o libmpcodecs/mp_image.o libmpcodecs/pullup.o
libmpcodecs/vd.o libmpcodecs/vd_hmblck.o libmpcodecs/vd_lzo.o
libmpcodecs/vd_mpegpes.o libmpcodecs/vd_mtga.o libmpcodecs/vd_null.o
libmpcodecs/vd_raw.o libmpcodecs/vd_sgi.o libmpcodecs/vf.o
libmpcodecs/vf_1bpp.o libmpcodecs/vf_2xsai.o
libmpcodecs/vf_blackframe.o libmpcodecs/vf_boxblur.o
libmpcodecs/vf_crop.o libmpcodecs/vf_cropdetect.o
libmpcodecs/vf_decimate.o libmpcodecs/vf_delogo.o
libmpcodecs/vf_denoise3d.o libmpcodecs/vf_detc.o libmpcodecs/vf_dint.o
libmpcodecs/vf_divtc.o libmpcodecs/vf_down3dright.o
libmpcodecs/vf_dsize.o libmpcodecs/vf_dvbscale.o libmpcodecs/vf_eq.o
libmpcodecs/vf_eq2.o libmpcodecs/vf_expand.o libmpcodecs/vf_field.o
libmpcodecs/vf_fil.o libmpcodecs/vf_filmdint.o libmpcodecs/vf_fixpts.o
libmpcodecs/vf_flip.o libmpcodecs/vf_format.o
libmpcodecs/vf_framestep.o libmpcodecs/vf_gradfun.o
libmpcodecs/vf_halfpack.o libmpcodecs/vf_harddup.o
libmpcodecs/vf_hqdn3d.o libmpcodecs/vf_hue.o libmpcodecs/vf_il.o
libmpcodecs/vf_ilpack.o libmpcodecs/vf_ivtc.o
libmpcodecs/vf_kerndeint.o libmpcodecs/vf_mirror.o
libmpcodecs/vf_noformat.o libmpcodecs/vf_noise.o libmpcodecs/vf_ow.o
libmpcodecs/vf_palette.o libmpcodecs/vf_perspective.o
libmpcodecs/vf_phase.o libmpcodecs/vf_pp7.o libmpcodecs/vf_pullup.o
libmpcodecs/vf_rectangle.o libmpcodecs/vf_remove_logo.o
libmpcodecs/vf_rgbtest.o libmpcodecs/vf_rotate.o libmpcodecs/vf_sab.o
libmpcodecs/vf_scale.o libmpcodecs/vf_smartblur.o
libmpcodecs/vf_softpulldown.o libmpcodecs/vf_stereo3d.o
libmpcodecs/vf_softskip.o libmpcodecs/vf_swapuv.o
libmpcodecs/vf_telecine.o libmpcodecs/vf_test.o
libmpcodecs/vf_tfields.o libmpcodecs/vf_tile.o
libmpcodecs/vf_tinterlace.o libmpcodecs/vf_unsharp.o
libmpcodecs/vf_vo.o libmpcodecs/vf_yadif.o libmpcodecs/vf_yuvcsp.o
libmpcodecs/vf_yvu9.o libmpdemux/aac_hdr.o libmpdemux/asfheader.o
libmpdemux/aviheader.o libmpdemux/aviprint.o libmpdemux/demuxer.o
libmpdemux/demux_aac.o libmpdemux/demux_asf.o libmpdemux/demux_audio.o
libmpdemux/demux_avi.o libmpdemux/demux_demuxers.o
libmpdemux/demux_film.o libmpdemux/demux_fli.o
libmpdemux/demux_lmlm4.o libmpdemux/demux_mf.o libmpdemux/demux_mkv.o
libmpdemux/demux_mov.o libmpdemux/demux_mpg.o libmpdemux/demux_nsv.o
libmpdemux/demux_pva.o libmpdemux/demux_rawaudio.o
libmpdemux/demux_rawvideo.o libmpdemux/demux_realaud.o
libmpdemux/demux_real.o libmpdemux/demux_roq.o
libmpdemux/demux_smjpeg.o libmpdemux/demux_ts.o libmpdemux/demux_ty.o
libmpdemux/demux_ty_osd.o libmpdemux/demux_viv.o
libmpdemux/demux_vqf.o libmpdemux/demux_y4m.o libmpdemux/ebml.o
libmpdemux/extension.o libmpdemux/mf.o libmpdemux/mp3_hdr.o
libmpdemux/mp_taglists.o libmpdemux/mpeg_hdr.o
libmpdemux/mpeg_packetizer.o libmpdemux/parse_es.o
libmpdemux/parse_mp4.o libmpdemux/video.o libmpdemux/yuv4mpeg.o
libmpdemux/yuv4mpeg_ratio.o osdep/getch2.o osdep/timer-linux.o
stream/open.o stream/stream.o stream/stream_bd.o stream/stream_cue.o
stream/stream_file.o stream/stream_mf.o stream/stream_null.o
stream/url.o sub/eosd.o sub/find_sub.o sub/osd.o sub/spudec.o
sub/sub.o sub/sub_cc.o sub/subreader.o sub/vobsub.o stream/ai_alsa.o
stream/ai_oss.o sub/font_load.o stream/dvb_tune.o stream/stream_dvb.o
stream/stream_dvdnav.o libdvdnav/dvdnav.o libdvdnav/highlight.o
libdvdnav/navigation.o libdvdnav/read_cache.o libdvdnav/remap.o
libdvdnav/searching.o libdvdnav/settings.o libdvdnav/vm/decoder.o
libdvdnav/vm/vm.o libdvdnav/vm/vmcmd.o stream/stream_dvd.o
stream/stream_dvd_common.o libdvdread4/bitreader.o
libdvdread4/dvd_input.o libdvdread4/dvd_reader.o libdvdread4/dvd_udf.o
libdvdread4/ifo_print.o libdvdread4/ifo_read.o libdvdread4/md5.o
libdvdread4/nav_print.o libdvdread4/nav_read.o libvo/aclib.o
av_helpers.o av_opts.o libaf/af_lavcac3enc.o libaf/af_lavcresample.o
libmpcodecs/ad_ffmpeg.o libmpcodecs/ad_spdif.o libmpcodecs/vd_ffmpeg.o
libmpcodecs/vf_geq.o libmpcodecs/vf_lavc.o libmpcodecs/vf_lavcdeint.o
libmpcodecs/vf_screenshot.o libmpdemux/demux_lavf.o
stream/stream_ffmpeg.o sub/av_sub.o libmpcodecs/vf_fspp.o
libmpcodecs/vf_mcdeint.o libmpcodecs/vf_qp.o libmpcodecs/vf_spp.o
libmpcodecs/vf_uspp.o sub/font_load_ft.o stream/stream_ftp.o
libmpcodecs/vf_bmovl.o libaf/af_export.o osdep/mmap_anon.o
libmpcodecs/vd_ijpg.o libmpcodecs/vf_ass.o sub/ass_mp.o
sub/subassconvert.o libass/ass.o libass/ass_bitmap.o
libass/ass_cache.o libass/ass_drawing.o libass/ass_font.o
libass/ass_fontconfig.o libass/ass_library.o libass/ass_parse.o
libass/ass_render.o libass/ass_render_api.o libass/ass_shaper.o
libass/ass_strtod.o libass/ass_utils.o libdvdcss/css.o
libdvdcss/device.o libdvdcss/error.o libdvdcss/ioctl.o
libdvdcss/libdvdcss.o libmpcodecs/ad_libmad.o
libmpcodecs/vd_libmpeg2.o libmpeg2/alloc.o libmpeg2/cpu_accel.o
libmpeg2/cpu_state.o libmpeg2/decode.o libmpeg2/header.o
libmpeg2/idct.o libmpeg2/motion_comp.o libmpeg2/slice.o
libmpeg2/idct_mmx.o libmpeg2/motion_comp_mmx.o libmpcodecs/vd_theora.o
libmpcodecs/ad_mpg123.o libmpcodecs/ad_mp3lib.o mp3lib/sr1.o
mp3lib/decode_mmx.o mp3lib/dct64_sse.o stream/stream_rtsp.o
stream/freesdp/common.o stream/freesdp/errorlist.o
stream/freesdp/parser.o stream/librtsp/rtsp.o
stream/librtsp/rtsp_rtp.o stream/librtsp/rtsp_session.o
stream/stream_netstream.o stream/asf_mmst_streaming.o
stream/asf_streaming.o stream/cookies.o stream/http.o stream/network.o
stream/pnm.o stream/rtp.o stream/udp.o stream/tcp.o
stream/stream_rtp.o stream/stream_udp.o stream/realrtsp/asmrp.o
stream/realrtsp/real.o stream/realrtsp/rmff.o
stream/realrtsp/sdpplin.o stream/realrtsp/xbuffer.o
libmpcodecs/vd_mpng.o libmpcodecs/vf_pp.o stream/stream_pvr.o
libmpcodecs/ad_realaud.o libmpcodecs/vd_realvid.o stream/cache2.o
stream/stream_tv.o stream/tv.o stream/frequencies.o stream/tvi_dummy.o
stream/tvi_v4l.o stream/audio_in.o stream/tvi_v4l2.o sub/unrar_exec.o
stream/stream_vcd.o libmpcodecs/ad_libvorbis.o libmpdemux/demux_ogg.o
libmpcodecs/vd_xanim.o libmpcodecs/vd_xvid4.o osdep/shmem.o
ffmpeg/libpostproc/libpostproc.a ffmpeg/libavfilter/libavfilter.a
ffmpeg/libavformat/libavformat.a ffmpeg/libavcodec/libavcodec.a
ffmpeg/libswscale/libswscale.a ffmpeg/libswresample/libswresample.a
ffmpeg/libavutil/libavutil.a -Wl,-z,noexecstack  -ffast-math
-lncurses -lpng -lz -ljpeg -lasound -ldl -lpthread -lfreetype -lz
-lfontconfig  -lz -lmad -logg -lvorbisidec -ltheoradec -logg -lmpg123
-L/usr/local/lib -lopus   -lxvidcore -lvpx -lpthread -ldl -rdynamic
-L/usr/lib -lm   -lx264 -lpthread -lmp3lame
libmpcodecs/ad_libvorbis.o: In function `uninit':
ad_libvorbis.c:(.text+0x2a): undefined reference to `vorbis_dsp_clear'
ad_libvorbis.c:(.text+0x36): undefined reference to `vorbis_block_clear'
libmpcodecs/ad_libvorbis.o: In function `init':
ad_libvorbis.c:(.text+0x39c): undefined reference to `vorbis_synthesis_headerin'
ad_libvorbis.c:(.text+0x41e): undefined reference to `vorbis_synthesis_init'
ad_libvorbis.c:(.text+0x42d): undefined reference to `vorbis_block_init'
libmpcodecs/ad_libvorbis.o: In function `decode_audio':
ad_libvorbis.c:(.text+0x803): undefined reference to `vorbis_synthesis_pcmout'
ad_libvorbis.c:(.text+0x89e): undefined reference to `vorbis_synthesis'
ad_libvorbis.c:(.text+0x8b5): undefined reference to `vorbis_synthesis_blockin'
ad_libvorbis.c:(.text+0x9bf): undefined reference to `vorbis_synthesis_read'
libmpdemux/demux_ogg.o: In function `demux_ogg_read_packet':
demux_ogg.c:(.text+0x228): undefined reference to `vorbis_packet_blocksize'
libmpdemux/demux_ogg.o: In function `demux_ogg_add_packet':
demux_ogg.c:(.text+0x6cc): undefined reference to `vorbis_synthesis_headerin'
libmpdemux/demux_ogg.o: In function `fixup_vorbis_wf':
demux_ogg.c:(.text+0xe5b): undefined reference to `vorbis_synthesis_headerin'
demux_ogg.c:(.text+0xef9): undefined reference to `vorbis_synthesis_headerin'
demux_ogg.c:(.text+0xf92): undefined reference to `vorbis_synthesis_headerin'
collect2: ld returned 1 exit status
make: *** [mencoder] Errore 1

>From what I understand from the documentation you're not supposed to
use vorbis_synthesis_*() functions directly with tremor, only ov_*()
(see http://svn.xiph.org/trunk/Tremor/doc/ ).

Was this ever tested with external tremor?


More information about the MPlayer-users mailing list