1.8.6 - error: ‘AVCodecContext’ has no member named ‘refcoun

The place to discuss linux version of MakeMKV
Locked
mike admin
Posts: 4075
Joined: Wed Nov 26, 2008 2:26 am
Contact:

1.8.6 - error: ‘AVCodecContext’ has no member named ‘refcoun

Post by mike admin » Fri Nov 15, 2013 7:58 am

UPDATE: Please see http://www.makemkv.com/forum2/viewtopic.php?f=3&t=7252 . Instructions below are obsolete.


As many of you have noticed, version 1.8.6 introduces libavcodec dependency. Because of the bug in MakeMKV OSS code, you can get the following error during compilation:

Code: Select all

libffabi/src/ffabi.c:166:15: error: ‘AVCodecContext’ has no member named ‘refcounted_frames’
. Please try the following workaround if you get this error:

- Open the file "libffabi/src/ffabi.c" in editor of your choice
- Delete or comment out the lines 166 and 321. Both should contain the code snippet below
- Save the file, try to compile again.
- If it works, please reply in this thread with a version of libavcodec that you have (find libavcodec.h and issue "cat version.h" from the same dir)

Code to be deleted (two places in ffabi.c) :

Code: Select all

#if (LIBAVCODEC_VERSION_MAJOR >= 54)
    ctx->avctx->refcounted_frames = 1;
#endif

Romansh
Posts: 873
Joined: Sat Jan 22, 2011 7:09 pm

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by Romansh » Fri Nov 15, 2013 11:32 am

refcounting bumped lavc major to 55… of course since it was committed separately (although on the same day), it was a bit tricky to find.

http://git.videolan.org/?p=ffmpeg.git;a ... ;h=d8b31be

canadien37
Posts: 15
Joined: Sat Nov 19, 2011 7:32 pm

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by canadien37 » Fri Nov 15, 2013 5:13 pm

Mike,

Where is this file located? I tried doing a complete search of my system and it came up empty........I also typed it into terminal to bring up the editor, it was empty.....I'm using OpenSuse 12.3......

Thanks

Chribu
Posts: 3
Joined: Fri Nov 15, 2013 4:10 pm

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by Chribu » Fri Nov 15, 2013 5:22 pm

Hi canadian,

the file/directory is located in the extracted archive "makemkv-oss-1.8.6.tar.gz".
Edit the file before you compile it with "make -f makefile.linux" ;-)

Good luck!

canadien37
Posts: 15
Joined: Sat Nov 19, 2011 7:32 pm

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by canadien37 » Fri Nov 15, 2013 6:28 pm

Hey, thanks for that quick response.......I was using an automated script to compile the program......guess I'll try the manual way, unless that archive was created by the script.....

Harri
Posts: 13
Joined: Sat Apr 24, 2010 6:25 pm

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by Harri » Fri Nov 15, 2013 9:01 pm

After removing the lines as suggested there is now a link time error:
mkdir -p out
gcc -Os -D_GNU_SOURCE -D_linux_ -D_REENTRANT -shared -Wl,-z,defs -oout/libmakemkv.so.1.full -Ilibebml/inc -DEBML_NO_READ -DEBML_STRICT_API -Ilibmatroska/inc \
-Ilibmakemkv/inc -Isstring/inc -Imakemkvgui/inc -Ilibabi/inc -Ilibffabi/inc \
libebml/src/EbmlBinary.cpp libebml/src/EbmlContexts.cpp libebml/src/EbmlCrc32.cpp libebml/src/EbmlDate.cpp libebml/src/EbmlDummy.cpp libebml/src/EbmlElement.cpp libebml/src/EbmlFloat.cpp libebml/src/EbmlHead.cpp libebml/src/EbmlMaster.cpp libebml/src/EbmlSInteger.cpp libebml/src/EbmlString.cpp libebml/src/EbmlSubHead.cpp libebml/src/EbmlUInteger.cpp libebml/src/EbmlUnicodeString.cpp libebml/src/EbmlVersion.cpp libebml/src/EbmlVoid.cpp libebml/src/IOCallback.cpp libebml/src/MemIOCallback.cpp libmatroska/src/FileKax.cpp libmatroska/src/KaxAttached.cpp libmatroska/src/KaxAttachments.cpp libmatroska/src/KaxBlock.cpp libmatroska/src/KaxBlockData.cpp libmatroska/src/KaxChapters.cpp libmatroska/src/KaxCluster.cpp libmatroska/src/KaxClusterData.cpp libmatroska/src/KaxContentEncoding.cpp libmatroska/src/KaxContexts.cpp libmatroska/src/KaxCues.cpp libmatroska/src/KaxCuesData.cpp libmatroska/src/KaxInfo.cpp libmatroska/src/KaxInfoData.cpp libmatroska/src/KaxSeekHead.cpp libmatroska/src/KaxSegment.cpp libmatroska/src/KaxTag.cpp libmatroska/src/KaxTags.cpp libmatroska/src/KaxTrackAudio.cpp libmatroska/src/KaxTrackEntryData.cpp libmatroska/src/KaxTracks.cpp libmatroska/src/KaxTrackVideo.cpp libmatroska/src/KaxVersion.cpp libmakemkv/src/ebmlwrite.cpp libmakemkv/src/libmkv.cpp libmakemkv/src/version.cpp libmakemkv/src/world.cpp sstring/src/sstring.cpp \
libabi/src/ossl_aes.c libabi/src/ossl_sha.c libabi/src/ossl_ec.c libabi/src/zlib.c libabi/src/xpat.c libabi/pssl/ec_key.c libabi/pssl/ec_lib.c libabi/pssl/ec_cvt.c libabi/pssl/ec_mult.c libabi/pssl/ecp_mont.c libabi/pssl/ecp_smpl.c libabi/pssl/ecs_ossl.c libabi/pssl/ecs_sign.c libabi/pssl/ecs_vrf.c libabi/src/httplinux.cpp makemkvgui/src/api_linux.cpp libabi/src/sys_linux.c makemkvgui/src/spawn_posix.cpp libffabi/src/ffabi.c libffabi/src/mlp.c libffabi/src/log.c libffabi/src/audio_convert.c \
-DHAVE_BUILDINFO_H -Itmp \
-fPIC -Xlinker -dy -Xlinker --version-script=libmakemkv/src/libmakemkv.vers \
-Xlinker -soname=libmakemkv.so.1 -lc -lstdc++ -lcrypto -lz -lexpat -lavcodec -lavutil -lm
libffabi/src/ffabi.c: In function 'ffm_audio_decode_init':
libffabi/src/ffabi.c:146:9: warning: assignment makes pointer from integer without a cast [enabled by default]
ctx = av_mallocz(sizeof(FFM_AudioDecodeContext));
^
libffabi/src/ffabi.c: In function 'ffm_audio_encode_init':
libffabi/src/ffabi.c:300:9: warning: assignment makes pointer from integer without a cast [enabled by default]
ctx = av_mallocz(sizeof(FFM_AudioEncodeContext));
^
/tmp/ccBF6Gsl.o: In function `static_log_callback':
ffabi.c:(.text+0x6f): undefined reference to `av_log_format_line'
/tmp/ccBF6Gsl.o: In function `ffm_audio_decode_close':
ffabi.c:(.text+0x139): undefined reference to `av_frame_unref'
/tmp/ccBF6Gsl.o: In function `ffm_audio_decode_put_data':
ffabi.c:(.text+0x2e5): undefined reference to `av_frame_unref'
ffabi.c:(.text+0x313): undefined reference to `av_frame_get_channels'
ffabi.c:(.text+0x32f): undefined reference to `av_frame_get_sample_rate'
/tmp/ccBF6Gsl.o: In function `ffm_audio_encode_close':
ffabi.c:(.text+0x430): undefined reference to `av_frame_unref'
/tmp/ccBF6Gsl.o: In function `ffm_audio_encode_put_frame':
ffabi.c:(.text+0x630): undefined reference to `av_frame_unref'
ffabi.c:(.text+0x65a): undefined reference to `av_frame_set_channels'
ffabi.c:(.text+0x66f): undefined reference to `av_frame_set_channel_layout'
collect2: error: ld returned 1 exit status
make[2]: *** [out/libmakemkv.so.1.full] Error 1
make[2]: Leaving directory `/tmp/buildd/raw-makemkv-1.8.6/build/makemkv-oss-1.8.6'
make[1]: *** [override_dh_auto_build] Error 2
make[1]: Leaving directory `/tmp/buildd/raw-makemkv-1.8.6'
make: *** [build] Error 2
Here is the requested version.h:
/*
*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

#ifndef AVCODEC_VERSION_H
#define AVCODEC_VERSION_H

/**
* @file
* @ingroup libavc
* Libavcodec version macros.
*/

#define LIBAVCODEC_VERSION_MAJOR 54
#define LIBAVCODEC_VERSION_MINOR 35
#define LIBAVCODEC_VERSION_MICRO 0

#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
LIBAVCODEC_VERSION_MICRO)
#define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
LIBAVCODEC_VERSION_MICRO)
#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT

#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)

/**
* FF_API_* defines may be placed below to indicate public API that will be
* dropped at a future version bump. The defines themselves are not part of
* the public API and may change, break or disappear at any time.
*/

#ifndef FF_API_REQUEST_CHANNELS
#define FF_API_REQUEST_CHANNELS (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_OLD_DECODE_AUDIO
#define FF_API_OLD_DECODE_AUDIO (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_OLD_ENCODE_AUDIO
#define FF_API_OLD_ENCODE_AUDIO (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_OLD_ENCODE_VIDEO
#define FF_API_OLD_ENCODE_VIDEO (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_MPV_GLOBAL_OPTS
#define FF_API_MPV_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_COLOR_TABLE_ID
#define FF_API_COLOR_TABLE_ID (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_INTER_THRESHOLD
#define FF_API_INTER_THRESHOLD (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_SUB_ID
#define FF_API_SUB_ID (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_DSP_MASK
#define FF_API_DSP_MASK (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_FIND_BEST_PIX_FMT
#define FF_API_FIND_BEST_PIX_FMT (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_CODEC_ID
#define FF_API_CODEC_ID (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_VDA_ASYNC
#define FF_API_VDA_ASYNC (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_AVCODEC_RESAMPLE
#define FF_API_AVCODEC_RESAMPLE (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_LIBMPEG2
#define FF_API_LIBMPEG2 (LIBAVCODEC_VERSION_MAJOR < 55)
#endif
#ifndef FF_API_MMI
#define FF_API_MMI (LIBAVCODEC_VERSION_MAJOR < 55)
#endif

#endif /* AVCODEC_VERSION_H */
Regards
Harri

patgul
Posts: 5
Joined: Tue Nov 12, 2013 7:29 pm

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by patgul » Fri Nov 15, 2013 9:39 pm

Hi Mike,

here's the output after patching:

Code: Select all

?  makemkv-oss-1.8.6  make -f makefile.linux    
mkdir -p out
gcc -Os -D_GNU_SOURCE -D_linux_ -D_REENTRANT -shared -Wl,-z,defs -oout/libmakemkv.so.1.full -Ilibebml/inc -DEBML_NO_READ -DEBML_STRICT_API -Ilibmatroska/inc \
	-Ilibmakemkv/inc -Isstring/inc -Imakemkvgui/inc -Ilibabi/inc -Ilibffabi/inc \
	libebml/src/EbmlBinary.cpp libebml/src/EbmlContexts.cpp libebml/src/EbmlCrc32.cpp libebml/src/EbmlDate.cpp libebml/src/EbmlDummy.cpp libebml/src/EbmlElement.cpp libebml/src/EbmlFloat.cpp libebml/src/EbmlHead.cpp libebml/src/EbmlMaster.cpp libebml/src/EbmlSInteger.cpp libebml/src/EbmlString.cpp libebml/src/EbmlSubHead.cpp libebml/src/EbmlUInteger.cpp libebml/src/EbmlUnicodeString.cpp libebml/src/EbmlVersion.cpp libebml/src/EbmlVoid.cpp libebml/src/IOCallback.cpp libebml/src/MemIOCallback.cpp  libmatroska/src/FileKax.cpp libmatroska/src/KaxAttached.cpp libmatroska/src/KaxAttachments.cpp libmatroska/src/KaxBlock.cpp libmatroska/src/KaxBlockData.cpp libmatroska/src/KaxChapters.cpp libmatroska/src/KaxCluster.cpp libmatroska/src/KaxClusterData.cpp libmatroska/src/KaxContentEncoding.cpp libmatroska/src/KaxContexts.cpp libmatroska/src/KaxCues.cpp libmatroska/src/KaxCuesData.cpp libmatroska/src/KaxInfo.cpp libmatroska/src/KaxInfoData.cpp libmatroska/src/KaxSeekHead.cpp libmatroska/src/KaxSegment.cpp libmatroska/src/KaxTag.cpp libmatroska/src/KaxTags.cpp libmatroska/src/KaxTrackAudio.cpp libmatroska/src/KaxTrackEntryData.cpp libmatroska/src/KaxTracks.cpp libmatroska/src/KaxTrackVideo.cpp libmatroska/src/KaxVersion.cpp libmakemkv/src/ebmlwrite.cpp libmakemkv/src/libmkv.cpp libmakemkv/src/version.cpp libmakemkv/src/world.cpp  sstring/src/sstring.cpp \
	libabi/src/ossl_aes.c libabi/src/ossl_sha.c libabi/src/ossl_ec.c libabi/src/zlib.c libabi/src/xpat.c libabi/pssl/ec_key.c libabi/pssl/ec_lib.c libabi/pssl/ec_cvt.c libabi/pssl/ec_mult.c libabi/pssl/ecp_mont.c libabi/pssl/ecp_smpl.c libabi/pssl/ecs_ossl.c libabi/pssl/ecs_sign.c libabi/pssl/ecs_vrf.c libabi/src/httplinux.cpp makemkvgui/src/api_linux.cpp libabi/src/sys_linux.c makemkvgui/src/spawn_posix.cpp libffabi/src/ffabi.c libffabi/src/mlp.c libffabi/src/log.c libffabi/src/audio_convert.c \
	-DHAVE_BUILDINFO_H -Itmp \
	-fPIC -Xlinker -dy -Xlinker --version-script=libmakemkv/src/libmakemkv.vers \
	-Xlinker -soname=libmakemkv.so.1 -lc -lstdc++ -lcrypto -lz -lexpat -lavcodec -lavutil -lm
/tmp/ccP6ULAt.o: In function `ffm_audio_decode_close':
ffabi.c:(.text+0x137): undefined reference to `av_frame_unref'
/tmp/ccP6ULAt.o: In function `ffm_audio_decode_put_data':
ffabi.c:(.text+0x2dd): undefined reference to `av_frame_unref'
/tmp/ccP6ULAt.o: In function `ffm_audio_encode_close':
ffabi.c:(.text+0x425): undefined reference to `av_frame_unref'
/tmp/ccP6ULAt.o: In function `ffm_audio_encode_put_frame':
ffabi.c:(.text+0x61f): undefined reference to `av_frame_unref'
collect2: error: ld returned 1 exit status
make: *** [out/libmakemkv.so.1.full] Error 1
Version is:

Code: Select all

#define LIBAVCODEC_VERSION_MAJOR 54
#define LIBAVCODEC_VERSION_MINOR 92
#define LIBAVCODEC_VERSION_MICRO 100
from ffmpeg...

Regards

ectospasm
Posts: 5
Joined: Wed Aug 21, 2013 3:24 am

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by ectospasm » Sat Nov 16, 2013 6:15 am

I'm compiling MakeMKV 1.8.6 on Debian sid (amd64), and I've installed libavcodec-dev from deb-multimedia.org. I get the following:

Code: Select all

gcc -Os -D_GNU_SOURCE -D_linux_ -D_REENTRANT -shared -Wl,-z,defs -oout/libmakemkv.so.1.full -Ilibebml/inc -DEBML_NO_READ -DEBML_STRICT_API -Ilibmatroska/inc \
	-Ilibmakemkv/inc -Isstring/inc -Imakemkvgui/inc -Ilibabi/inc -Ilibffabi/inc \
	libebml/src/EbmlBinary.cpp libebml/src/EbmlContexts.cpp libebml/src/EbmlCrc32.cpp libebml/src/EbmlDate.cpp libebml/src/EbmlDummy.cpp libebml/src/EbmlElement.cpp libebml/src/EbmlFloat.cpp libebml/src/EbmlHead.cpp libebml/src/EbmlMaster.cpp libebml/src/EbmlSInteger.cpp libebml/src/EbmlString.cpp libebml/src/EbmlSubHead.cpp libebml/src/EbmlUInteger.cpp libebml/src/EbmlUnicodeString.cpp libebml/src/EbmlVersion.cpp libebml/src/EbmlVoid.cpp libebml/src/IOCallback.cpp libebml/src/MemIOCallback.cpp  libmatroska/src/FileKax.cpp libmatroska/src/KaxAttached.cpp libmatroska/src/KaxAttachments.cpp libmatroska/src/KaxBlock.cpp libmatroska/src/KaxBlockData.cpp libmatroska/src/KaxChapters.cpp libmatroska/src/KaxCluster.cpp libmatroska/src/KaxClusterData.cpp libmatroska/src/KaxContentEncoding.cpp libmatroska/src/KaxContexts.cpp libmatroska/src/KaxCues.cpp libmatroska/src/KaxCuesData.cpp libmatroska/src/KaxInfo.cpp libmatroska/src/KaxInfoData.cpp libmatroska/src/KaxSeekHead.cpp libmatroska/src/KaxSegment.cpp libmatroska/src/KaxTag.cpp libmatroska/src/KaxTags.cpp libmatroska/src/KaxTrackAudio.cpp libmatroska/src/KaxTrackEntryData.cpp libmatroska/src/KaxTracks.cpp libmatroska/src/KaxTrackVideo.cpp libmatroska/src/KaxVersion.cpp libmakemkv/src/ebmlwrite.cpp libmakemkv/src/libmkv.cpp libmakemkv/src/version.cpp libmakemkv/src/world.cpp  sstring/src/sstring.cpp \
	libabi/src/ossl_aes.c libabi/src/ossl_sha.c libabi/src/ossl_ec.c libabi/src/zlib.c libabi/src/xpat.c libabi/pssl/ec_key.c libabi/pssl/ec_lib.c libabi/pssl/ec_cvt.c libabi/pssl/ec_mult.c libabi/pssl/ecp_mont.c libabi/pssl/ecp_smpl.c libabi/pssl/ecs_ossl.c libabi/pssl/ecs_sign.c libabi/pssl/ecs_vrf.c libabi/src/httplinux.cpp makemkvgui/src/api_linux.cpp libabi/src/sys_linux.c makemkvgui/src/spawn_posix.cpp libffabi/src/ffabi.c libffabi/src/mlp.c libffabi/src/log.c libffabi/src/audio_convert.c \
	-DHAVE_BUILDINFO_H -Itmp \
	-fPIC -Xlinker -dy -Xlinker --version-script=libmakemkv/src/libmakemkv.vers \
	-Xlinker -soname=libmakemkv.so.1 -lc -lstdc++ -lcrypto -lz -lexpat -lavcodec -lavutil -lm
/tmp/ccN3QTUc.o: In function `ffm_audio_decode_close':
ffabi.c:(.text+0x137): undefined reference to `av_frame_unref'
/tmp/ccN3QTUc.o: In function `ffm_audio_decode_put_data':
ffabi.c:(.text+0x2dd): undefined reference to `av_frame_unref'
/tmp/ccN3QTUc.o: In function `ffm_audio_encode_close':
ffabi.c:(.text+0x424): undefined reference to `av_frame_unref'
/tmp/ccN3QTUc.o: In function `ffm_audio_encode_put_frame':
ffabi.c:(.text+0x61e): undefined reference to `av_frame_unref'
collect2: error: ld returned 1 exit status
make: *** [out/libmakemkv.so.1.full] Error 1
...after removing the two #ifdef stanzas from ffabi.c. It appears to be the same error as patgul above. I tried finding or locating libavcodec.h to no avail, so I can't find version.h to report what I have. The version reported by aptitude is libavcodec-dev amd64 10:1.2.4-dmo3.

PS. The original poster should edit the Subject of the thread so it includes the full original error, for me the last word is "refcoun" and searching for it fails.

kripz
Posts: 2
Joined: Sat Nov 16, 2013 6:08 am

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by kripz » Sat Nov 16, 2013 6:43 am

Code: Select all

$ ffmpeg -version
ffmpeg version git-2013-11-05-04047b6
built on Nov  5 2013 16:02:52 with gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1)
configuration: --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
libavutil      52. 51.100 / 52. 51.100
libavcodec     55. 41.100 / 55. 41.100
libavformat    55. 21.100 / 55. 21.100
libavdevice    55.  5.100 / 55.  5.100
libavfilter     3. 90.101 /  3. 90.101
libswscale      2.  5.101 /  2.  5.101
libswresample   0. 17.104 /  0. 17.104
libpostproc    52.  3.100 / 52.  3.100
$ make -f makefile.linux
mkdir -p out
gcc -Os -D_GNU_SOURCE -D_linux_ -D_REENTRANT -shared -Wl,-z,defs -oout/libmakemkv.so.1.full -Ilibebml/inc -DEBML_NO_READ -DEBML_STRICT_API -Ilibmatroska/inc \
-Ilibmakemkv/inc -Isstring/inc -Imakemkvgui/inc -Ilibabi/inc -Ilibffabi/inc \
libebml/src/EbmlBinary.cpp libebml/src/EbmlContexts.cpp libebml/src/EbmlCrc32.cpp libebml/src/EbmlDate.cpp libebml/src/EbmlDummy.cpp libebml/src/EbmlElement.cpp libebml/src/EbmlFloat.cpp libebml/src/EbmlHead.cpp libebml/src/EbmlMaster.cpp libebml/src/EbmlSInteger.cpp libebml/src/EbmlString.cpp libebml/src/EbmlSubHead.cpp libebml/src/EbmlUInteger.cpp libebml/src/EbmlUnicodeString.cpp libebml/src/EbmlVersion.cpp libebml/src/EbmlVoid.cpp libebml/src/IOCallback.cpp libebml/src/MemIOCallback.cpp libmatroska/src/FileKax.cpp libmatroska/src/KaxAttached.cpp libmatroska/src/KaxAttachments.cpp libmatroska/src/KaxBlock.cpp libmatroska/src/KaxBlockData.cpp libmatroska/src/KaxChapters.cpp libmatroska/src/KaxCluster.cpp libmatroska/src/KaxClusterData.cpp libmatroska/src/KaxContentEncoding.cpp libmatroska/src/KaxContexts.cpp libmatroska/src/KaxCues.cpp libmatroska/src/KaxCuesData.cpp libmatroska/src/KaxInfo.cpp libmatroska/src/KaxInfoData.cpp libmatroska/src/KaxSeekHead.cpp libmatroska/src/KaxSegment.cpp libmatroska/src/KaxTag.cpp libmatroska/src/KaxTags.cpp libmatroska/src/KaxTrackAudio.cpp libmatroska/src/KaxTrackEntryData.cpp libmatroska/src/KaxTracks.cpp libmatroska/src/KaxTrackVideo.cpp libmatroska/src/KaxVersion.cpp libmakemkv/src/ebmlwrite.cpp libmakemkv/src/libmkv.cpp libmakemkv/src/version.cpp libmakemkv/src/world.cpp sstring/src/sstring.cpp \
libabi/src/ossl_aes.c libabi/src/ossl_sha.c libabi/src/ossl_ec.c libabi/src/zlib.c libabi/src/xpat.c libabi/pssl/ec_key.c libabi/pssl/ec_lib.c libabi/pssl/ec_cvt.c libabi/pssl/ec_mult.c libabi/pssl/ecp_mont.c libabi/pssl/ecp_smpl.c libabi/pssl/ecs_ossl.c libabi/pssl/ecs_sign.c libabi/pssl/ecs_vrf.c libabi/src/httplinux.cpp makemkvgui/src/api_linux.cpp libabi/src/sys_linux.c makemkvgui/src/spawn_posix.cpp libffabi/src/ffabi.c libffabi/src/mlp.c libffabi/src/log.c libffabi/src/audio_convert.c \
-DHAVE_BUILDINFO_H -Itmp \
-fPIC -Xlinker -dy -Xlinker --version-script=libmakemkv/src/libmakemkv.vers \
-Xlinker -soname=libmakemkv.so.1 -lc -lstdc++ -lcrypto -lz -lexpat -lavcodec -lavutil -lm
/tmp/ccE6KwWQ.o: In function `static_log_callback':
ffabi.c:(.text+0x38): undefined reference to `av_log_format_line'
/tmp/ccE6KwWQ.o: In function `ffm_audio_decode_close':
ffabi.c:(.text+0x118): undefined reference to `av_frame_unref'
/tmp/ccE6KwWQ.o: In function `ffm_audio_decode_put_data':
ffabi.c:(.text+0x2cf): undefined reference to `av_frame_unref'
ffabi.c:(.text+0x2fb): undefined reference to `av_frame_get_channels'
ffabi.c:(.text+0x315): undefined reference to `av_frame_get_sample_rate'
/tmp/ccE6KwWQ.o: In function `ffm_audio_encode_close':
ffabi.c:(.text+0x415): undefined reference to `av_frame_unref'
/tmp/ccE6KwWQ.o: In function `ffm_audio_encode_put_frame':
ffabi.c:(.text+0x629): undefined reference to `av_frame_unref'
ffabi.c:(.text+0x64d): undefined reference to `av_frame_set_channels'
ffabi.c:(.text+0x660): undefined reference to `av_frame_set_channel_layout'
/tmp/ccXPl7fd.o: In function `ff_audio_convert_set_func.isra.0.constprop.1':
audio_convert.c:(.text+0x1d03): undefined reference to `av_get_packed_sample_fmt'
audio_convert.c:(.text+0x1d1a): undefined reference to `av_get_packed_sample_fmt'
collect2: error: ld returned 1 exit status
make: *** [out/libmakemkv.so.1.full] Error 1

hellomoto
Posts: 2
Joined: Sun Apr 10, 2011 7:12 pm

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by hellomoto » Sat Nov 16, 2013 6:51 am

I had issues building using the package from Debian multimedia and here is the version numbers from version.h

#define LIBAVCODEC_VERSION_MAJOR 54
#define LIBAVCODEC_VERSION_MINOR 59
#define LIBAVCODEC_VERSION_MICRO 100


I did get it to build when using the libavcodec-dev that comes with Debian wheezy, output of version.sh below.


#define LIBAVCODEC_VERSION_MAJOR 53
#define LIBAVCODEC_VERSION_MINOR 35
#define LIBAVCODEC_VERSION_MICRO 0

Hope this helps.

Knaldgas
Posts: 4
Joined: Fri Mar 16, 2012 10:09 am

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by Knaldgas » Sat Nov 16, 2013 10:58 am

How did you downgrade to from Debian-Multimedia to Wheezy without breaking "everything"?
I tried

Code: Select all

aptitude install libavcodec-dev=6:0.8.9-1
and

Code: Select all

apt-get install libavcodec-dev=6:0.8.9-1
but both of them comes with non-trivial dependency problems...

ectospasm
Posts: 5
Joined: Wed Aug 21, 2013 3:24 am

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by ectospasm » Sat Nov 16, 2013 4:00 pm

Here's my output from avconv (ffmpeg reports that the "ffmpeg" command is deprecated):

Code: Select all

avconv version 9.10-6:9.10-1, Copyright (c) 2000-2013 the Libav developers
  built on Oct 11 2013 15:40:54 with gcc 4.8 (Debian 4.8.1-10)
avconv 9.10-6:9.10-1
libavutil     52.  3. 0 / 52. 18.100
libavcodec    54. 35. 0 / 54. 92.100
libavformat   54. 20. 3 / 54. 20. 3
libavdevice   53.  2. 0 / 53.  2. 0
libavfilter    3.  3. 0 /  3.  3. 0
libavresample  1.  0. 1 /  1.  0. 1
libswscale     2.  1. 1 /  2.  1. 1

MattM
Posts: 7
Joined: Mon Jul 02, 2012 4:05 am

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by MattM » Sun Nov 17, 2013 12:42 am

Seeing this issue on gentoo. We don't have a single version of ffmpeg/libav libraries - if there is incompatibility with specific versions and a patch is required, we need to update our packages to detect and apply if makemkv source doesn't handle it.

#define LIBAVCODEC_VERSION_MAJOR 54
#define LIBAVCODEC_VERSION_MINOR 59
#define LIBAVCODEC_VERSION_MICRO 100

hyperion libavcodec # equery belongs /usr/include/libavcodec/version.h
* Searching for /usr/include/libavcodec/version.h ...
media-video/ffmpeg-1.0.7 (/usr/include/libavcodec/version.h)

zero0ryn
Posts: 1
Joined: Wed Sep 29, 2010 8:45 pm

Re: 1.8.6 - error: ‘AVCodecContext’ has no member named ‘ref

Post by zero0ryn » Tue Nov 19, 2013 10:31 pm

Any updates on this yet?
I have the same problems when using debian sid.


Locked