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