On 6/28/07, Simon Bach <[EMAIL PROTECTED]> wrote:
aud_aux.c: In function `audio_init_ffmpeg':
aud_aux.c:364: error: `ac3_encoder' undeclared (first use in this function)
aud_aux.c:364: error: (Each undeclared identifier is reported only once
aud_aux.c:364: error: for each function it appears in.)
aud_aux.c:365: error: `mp2_encoder' undeclared (first use in this function)
make[2]: *** [aud_aux.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

I have compiled ffmpeg (version SVN-r9447) using 'enable-shared' parameter
and for the life of me I cannot figure out why Transcode will not compile
sucessfully, hopefully one of you guys can shed some light on it.

I've already spot this issue after a libavcodec update on my box, but
I haven't yet found
enough time to dig ffmpeg mailing lists archives to find out if my
impression is right or wrong.
My educated guess is that so far our aud_aux.c code has used a private
(and somewhat
dangerous) internal libavcodec API, that was made recently really private.
IIRC someone important (maybe Niedermayer itself) of libavcodec crew
just said something on the line "if someone uses *_encoder directly
his doing something wrong already", and that's exactly what was done
before in here.

So, to make long story short, while I'm still investigating, please
apply the attached patch.
It's against CVS HEAD but it should happy cleanly against 1.0.3 too.
Of course this patch or something like it will be included in 1.0.4
(yes, it will be at least 1.0.4 together with 1.1.0) sometime in
future.

If someone can provide a pointer to any ffmpeg's ML messages
confirming or denying
my guess is very welcome :)

Bests,

--
Francesco Romani // Ikitt
Index: aud_aux.c
===================================================================
RCS file: /cvstc/transcode/export/aud_aux.c,v
retrieving revision 1.47
diff -a -u -r1.47 aud_aux.c
--- aud_aux.c	13 Oct 2006 09:50:39 -0000	1.47
+++ aud_aux.c	28 Jun 2007 10:43:44 -0000
@@ -311,8 +311,7 @@
 
     TC_LOCK_LIBAVCODEC;
     avcodec_init();
-    register_avcodec(&ac3_encoder);
-    register_avcodec(&mp2_encoder);
+    avcodec_register_all();
     TC_UNLOCK_LIBAVCODEC;
 
     switch (o_codec) {

Reply via email to