[FFmpeg-cvslog] r23783 - in trunk/libavcodec: h264pred.c h264pred.h x86/Makefile x86/dsputil_mmx.c x86/dsputil_mmx.h x86/h264_intrapred.asm x86/h264dsp_mmx.c

Martin Storsjö martin
Mon Jun 28 11:33:25 CEST 2010


On Fri, 25 Jun 2010, darkshikari wrote:

> +void ff_h264_pred_init_x86(H264PredContext *h, int codec_id)
> +{
> +#if HAVE_YASM
> +    if (mm_flags & FF_MM_MMX) {
> +        h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_mmx;
> +        h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmx;
> +        h->pred16x16[DC_PRED8x8  ] = ff_pred16x16_dc_mmx;
> +        h->pred8x8  [VERT_PRED8x8] = ff_pred8x8_vertical_mmx;
> +        h->pred8x8  [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmx;
> +        if (codec_id == CODEC_ID_VP8) {
> +            h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmx;
> +            h->pred8x8  [DC_PRED8x8   ] = ff_pred8x8_dc_rv40_mmx;
> +            h->pred8x8  [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmx;
> +        }
> +    }
> +
> +    if (mm_flags & FF_MM_MMXEXT) {
> +        h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_mmxext;
> +        h->pred16x16[DC_PRED8x8  ] = ff_pred16x16_dc_mmxext;
> +        h->pred8x8  [HOR_PRED8x8 ] = ff_pred8x8_horizontal_mmxext;
> +        if (codec_id == CODEC_ID_VP8) {
> +            h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_mmxext;
> +            h->pred8x8  [DC_PRED8x8   ] = ff_pred8x8_dc_rv40_mmxext;
> +            h->pred8x8  [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_mmxext;
> +        }
> +    }
> +
> +    if (mm_flags & FF_MM_SSE) {
> +        h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_sse;
> +        h->pred16x16[DC_PRED8x8  ] = ff_pred16x16_dc_sse;
> +    }
> +
> +    if (mm_flags & FF_MM_SSE2) {
> +        h->pred16x16[DC_PRED8x8  ] = ff_pred16x16_dc_sse2;
> +        if (codec_id == CODEC_ID_VP8) {
> +            h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_tm_vp8_sse2;
> +            h->pred8x8  [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_sse2;
> +        }
> +    }
> +
> +    if (mm_flags & FF_MM_SSSE3) {
> +        h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_ssse3;
> +        h->pred16x16[DC_PRED8x8  ] = ff_pred16x16_dc_ssse3;
> +        h->pred8x8  [HOR_PRED8x8 ] = ff_pred8x8_horizontal_ssse3;
> +        if (codec_id == CODEC_ID_VP8) {
> +            h->pred8x8  [PLANE_PRED8x8] = ff_pred8x8_tm_vp8_ssse3;
> +        }
> +    }
> +#endif
> +}

This broke compilation if CONFIG_H264DSP isn't enabled, e.g. with 
--disable-everything --enable-decoder=<whatever that doesn't enable 
h264dsp>. One way of unbreaking it is in the attached patch, but that's 
not all that pretty.

// Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: conditional-h264dsp.patch
Type: text/x-diff
Size: 2018 bytes
Desc: 
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20100628/331be6c5/attachment.patch>



More information about the ffmpeg-cvslog mailing list