2007/12/18, Jonathan Ryshpan <[EMAIL PROTECTED]>:
> 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.)
You are building ffmpeg internally but linking to the system one...
This is wrong you need to choose weither the internal version or the
system ffmpeg...
I've made a pre-built package for Fedora (that do not need theses patches)
Some of the patches i'm using are already added to svn. (mainly so it
can use the system  ffmpeg version from rpm.livna.org ...)

ffmpeg is pure C and the bug you have experienced should be fixed with
current svn.
(extern C would be added). So i wonder which snapshot version did you
took for cinelerra and/or ffmpeg ?

Nicolas (kwizart)


> ========================= 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
>

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

Reply via email to