Hi, On Tue, Jul 12, 2011 at 10:54 AM, Diego Biurrun <[email protected]> wrote: > On Tue, Jul 12, 2011 at 10:42:58AM -0700, Ronald S. Bultje wrote: >> On Tue, Jul 12, 2011 at 10:39 AM, Diego Biurrun <[email protected]> wrote: >> > On Tue, Jul 12, 2011 at 05:16:44PM +0200, Ronald S. Bultje wrote: >> >> Module: libav >> >> Branch: master >> >> Commit: c90a2538a0bb4937cdecb852fadc3f98899624a9 >> >> >> >> Author: Ronald S. Bultje <[email protected]> >> >> Committer: Ronald S. Bultje <[email protected]> >> >> Date: Tue Jul 12 08:15:55 2011 -0700 >> >> >> >> h264: move h264_mvpred.h include. >> >> >> >> Fixes the following compile error with darwin/gcc-4.2.1: >> >> In file included from libavcodec/error_resilience.c:33: >> >> libavcodec/h264.h: In function ‘decode_mb_skip’: >> >> libavcodec/h264.h:773: error: ‘always_inline’ function could not be >> >> inlined in call to ‘pred_pskip_motion’: the function body must appear >> >> before caller >> >> libavcodec/h264.h:1334: error: called from here >> > >> > I'm afraid it's not quite so easy ... >> > >> >> --- a/libavcodec/h264.h >> >> +++ b/libavcodec/h264.h >> >> @@ -770,7 +770,7 @@ static av_always_inline int get_chroma_qp(H264Context >> >> *h, int t, int qscale){ >> >> return h->pps.chroma_qp_table[t][qscale]; >> >> } >> >> >> >> -static av_always_inline void pred_pskip_motion(H264Context * const h); >> >> +#include "h264_mvpred.h" //For pred_pskip_motion() >> >> >> >> static void fill_decode_neighbors(H264Context *h, int mb_type){ >> >> MpegEncContext * const s = &h->s; >> >> @@ -1341,6 +1341,4 @@ static void av_unused decode_mb_skip(H264Context >> >> *h){ >> >> h->prev_mb_skipped= 1; >> >> } >> >> >> >> -#include "h264_mvpred.h" //For pred_pskip_motion() >> >> - >> >> #endif /* AVCODEC_H264_H */ >> > >> > ... since now 'make checkheaders' is broken: >> > >> > biurrun@passion:~/src/libav $ make checkheaders >> > CC libavcodec/h264_mvpred.ho >> > In file included from libavcodec/h264_mvpred.h:33:0: >> > libavcodec/h264.h: In function ‘decode_mb_skip’: >> > libavcodec/h264.h:1334:9: error: implicit declaration of function >> > ‘pred_pskip_motion’ [-Werror=implicit-function-declaration] >> > libavcodec/h264_mvpred.h: At top level: >> > libavcodec/h264_mvpred.h:235:30: warning: conflicting types for >> > ‘pred_pskip_motion’ [enabled by default] >> > libavcodec/h264_mvpred.h:235:30: error: static declaration of >> > ‘pred_pskip_motion’ follows non-static declaration >> > libavcodec/h264.h:1334:9: note: previous implicit declaration of >> > ‘pred_pskip_motion’ was here >> > cc1: some warnings being treated as errors >> > >> > make: *** [libavcodec/h264_mvpred.ho] Error 1 >> >> Don't include h264_mvpred.h directly, instead include h264.h? > > Umm, it is h264_mvpred.h itself that is failing to compile since it has > circular dependencies with h264.h. > > A possible solution would be to move decode_mb_skip() to another header. > Do you have a suitable suggestion?
Sounds good to me. Ronald _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
