Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#175 undefined mpg123_decode_frame_64

0.68
closed-fixed
nobody
None
5
2013-10-16
2012-05-09
reandr
No

i tried to build mplayer svn with recent mpg123(20120510000000)
but failed.

my build is on windows xp sp3 .32bit.
there is no such function mpg123_decode_frame_64.
there is mpg123_decode_frame_32
how to fix this error?

how to inclue mpg123_decode_frame_64 instatic libmpg123.a?

=====================

w/DS_AudioDecoder.o loader/dshow/DS_Filter.o loader/dshow/DS_VideoDecoder.o loader/dshow/allocator.o loader/dshow/cmediasample.o loader/dsho
w/graph.o loader/dshow/inputpin.o loader/dshow/outputpin.o loader/dmo/DMO_AudioDecoder.o loader/dmo/DMO_VideoDecoder.o loader/dmo/buffer.o l
oader/dmo/dmo.o loader/dmo/dmo_guids.o libmpcodecs/vd_xanim.o libmpcodecs/vd_xvid4.o osdep/glob-win.o osdep/setenv.o osdep/strsep.o ffmpeg/l
ibpostproc/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,--nxcompat -Wl,--no-seh -Wl,--dynamicbase /usr/lib/live/l
iveMedia/libliveMedia.a /usr/lib/live/UsageEnvironment/libUsageEnvironment.a /usr/lib/live/BasicUsageEnvir
onment/libBasicUsageEnvironment.a /usr/lib/live/groupsock/libgroupsock.a -lm -lwinmm -ffast-math -lws2_32
-liconv -lpng -lz -lmng -lz -ljpeg -lopenjpeg -lgif -L/mingw/i686-pc-mingw32/lib -ldvdread -ldvdread -L/mingw/i686-pc-mingw32/lib -lfreetyp
e -lz -lz -lbz2 -llzo2 -lmad -lspeex -lgsm -ltheoradec -logg -lmpg123 -ldca -lfaad -ladvapi32 -lole32 -lstdc++ -lws2_32 -lopencore-amrnb -l
opencore-amrwb -lxvidcore -LD:/MSYS/lib -ldirac_encoder -ldirac_decoder -lm -lstdc++ -LD:/MSYS/lib -lschroedinger-1.0 -lorc-0.4 -lm -lvp
x -lnut -lole32 -luuid -ldl -static -lgdi32 -lopengl32 -lgdi32 -lwinmm -lgdi32 -lopenal32 -lfaac -lx264 -lmp3lame -lmpg123 -llcms -lrtmp
-lpolarssl -lws2_32 -lwinmm -lz -ldl -static -mwindows
libmpcodecs/ad_mpg123.o:ad_mpg123.c:(.text+0xa3): undefined reference to `mpg123_decode_frame_64'
collect2: ld returned 1 exit status
make: *** [mplayer.exe] Error 1

Discussion

  • reandr
    reandr
    2012-05-10

    i resolve this error with old thread`s tip.

    configure option :(mplayer with mpg 123(mpg123-201205090000)) build ok
    --------------------------------------------------------------
    CFLAGS="-D_FILE_OFFSET_BITS=64" ./configure --prefix=/mingw/i686-pc-mingw32 --with-default-audio=win32 --with-module-suffix=.dll --with-cpu=x86 --disable-lfs-alias --enable-static=yes --enable-shared=yes

    --------------------------------------------------------------

    Master@kuh3h3 /d/mpg123-20120509/src/libmpg123/.libs
    $ nm libmpg123.a |grep mpg123_decode_frame_64
    00001150 T _mpg123_decode_frame_64

    Master@kuh3h3 /d/mpg123-20120509/src/libmpg123/.libs
    $

     
  • Thomas Orgis
    Thomas Orgis
    2012-05-10

    Damn, is MPlayer still unconditionally define _FILE_OFFSET_BITS? Looking into configure:

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

    CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"

    CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS"

    Looks so. This needs to change. As discussed in the other bug, mingw32 doesn't work with that define (at best ignores it). The mpg123 header cannot be changed depending on current ABI of the libmpg123 build because folks seem to largely assume that headers don't change in that way (we had issues on multilib systems).

    When you define _FILE_OFFSET_BITS=64 when importing mpg123.h, you do request the largefile ABI. If you don't actually have a libmpg123 providing that ABI, you're screwed. On Linux, that ABI is usually supported and built, with mingw32, it isn't.

    Can you bring this to the attention of the MPlayer folks? They either need to drop _FILE_OFFSET_BITS under mingw or libmpcodecs/ad_mpg123.c needs a hack to

    1) undefine _FILE_OFFSET_BITS when including mpg123.h or
    2) undefine AD_MPG123_FRAMEWISE when under mingw32

    The second would simply avoid API that depends on largefile support. You might want to check that I am really right on this by building a normal libmpg123 and disabling the #define AD_MPG123_FRAMEWISE in libmpcodecs/ad_mpg123.c, same for #undef _FILE_OFFSET_BITS before #include <mpg123.h>.

     
  • Thomas Orgis
    Thomas Orgis
    2013-10-16

    • status: open --> closed-fixed
    • Group: --> 0.68
     
  • Thomas Orgis
    Thomas Orgis
    2013-10-16

    This should be history, even more so with latest iteration of LFS support.