I'm building Cinelerra under Fedora 8 running on a x86_64 system.

No problems downloading the source, etc.

A number of straightforward looking patches to header files similar to
the following are needed to get various things to compile, also a patch
to get two #define statements to match.  (All these patches can be
submitted when I get cinelerra to build completely.)
========================= Cut Here =========================
$ diff -c ./cinelerra/ffmpeg.h.bk ./cinelerra/ffmpeg.h
*** ./cinelerra/ffmpeg.h.bk     Mon Dec 10 18:42:41 2007
--- ./cinelerra/ffmpeg.h        Thu Dec 13 17:20:55 2007
***************
*** 24,34 ****
        static int convert_cmodel_transfer(VFrame *frame_in,VFrame *frame_out);
        static int init_picture_from_frame(AVPicture *picture, VFrame *frame);

!       static CodecID FFMPEG::codec_id(char *codec_string);

   private:
        static PixelFormat color_model_to_pix_fmt(int color_model);
!       static int FFMPEG::pix_fmt_to_color_model(PixelFormat pix_fmt);

        int got_picture;
        Asset *asset;
--- 24,34 ----
        static int convert_cmodel_transfer(VFrame *frame_in,VFrame *frame_out);
        static int init_picture_from_frame(AVPicture *picture, VFrame *frame);

!       static CodecID codec_id(char *codec_string);

   private:
        static PixelFormat color_model_to_pix_fmt(int color_model);
!       static int pix_fmt_to_color_model(PixelFormat pix_fmt);

        int got_picture;
        Asset *asset;
========================= Cut Here =========================

HOWEVER... Now everything compiles, but it won't link.  I get a large
number of linker errors similar to the following:
========================= Cut Here =========================
/home/jonrysh/src/cinelerra/Community/hvirtual/cinelerra/ffmpeg.C:18: undefined 
reference to `avcodec_init()'
/home/jonrysh/src/cinelerra/Community/hvirtual/cinelerra/ffmpeg.C:19: undefined 
reference to `avcodec_register_all()'
/home/jonrysh/src/cinelerra/Community/hvirtual/cinelerra/ffmpeg.C:22: undefined 
reference to `avcodec_find_decoder(CodecID)'
/home/jonrysh/src/cinelerra/Community/hvirtual/cinelerra/ffmpeg.C:28: undefined 
reference to `avcodec_alloc_context()'
========================= Cut Here =========================

This is very perplexing, since all of the missing references are defined
in .../ffmpeg/avcodec.h and resolved in libavcodec.so, which appears in
the link command that is failing:
========================= Cut Here =========================
$objdump objdump -T /usr/lib64/libavcodec.so
...
00000037a7277eb0 g    DF .text  00000000000000e1  Base        avcodec_init
...
========================= Cut Here =========================

What's going on?  Is the linker complaining about a C function calling a
C++ library?  (I'm not strong on C++.)



_______________________________________________
Cinelerra mailing list
[email protected]
https://init.linpro.no/mailman/skolelinux.no/listinfo/cinelerra

Reply via email to