On Mon, Sep 15, 2014 at 11:24 PM, Diego Biurrun <[email protected]> wrote:
> (cherry picked from commit fe07c9c6b5a870b8f2ffcfac649228b4d76e9505)
> Signed-off-by: Diego Biurrun <[email protected]>
>
> Conflicts:
> libavcodec/x86/dsputil_mmx.c
> ---
ditto (imho)
> This was reported to break on the 0.8 branch by Mickulas.
>
> libavcodec/x86/dsputil_mmx.c | 3 ++-
> libavcodec/x86/h264_intrapred_init.c | 3 ++-
> libavcodec/x86/h264dsp_mmx.c | 3 ++-
> 3 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/x86/dsputil_mmx.c b/libavcodec/x86/dsputil_mmx.c
> index e34b95b..81472bb 100644
> --- a/libavcodec/x86/dsputil_mmx.c
> +++ b/libavcodec/x86/dsputil_mmx.c
> @@ -2683,7 +2683,8 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext
> *avctx)
> c->add_hfyu_median_prediction =
> ff_add_hfyu_median_prediction_mmx2;
> #endif
> #if HAVE_7REGS
> - if (HAVE_AMD3DNOW && (mm_flags & AV_CPU_FLAG_3DNOW))
> + if (HAVE_AMD3DNOW && (mm_flags & AV_CPU_FLAG_3DNOW) &&
> + (mm_flags & AV_CPU_FLAG_CMOV))
> c->add_hfyu_median_prediction =
> add_hfyu_median_prediction_cmov;
> #endif
>
> diff --git a/libavcodec/x86/h264_intrapred_init.c
> b/libavcodec/x86/h264_intrapred_init.c
> index 223dbde..70a4c1e 100644
> --- a/libavcodec/x86/h264_intrapred_init.c
> +++ b/libavcodec/x86/h264_intrapred_init.c
> @@ -188,7 +188,8 @@ void ff_h264_pred_init_x86(H264PredContext *h, int
> codec_id, const int bit_depth
> if (chroma_format_idc <= 1)
> h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_mmx;
> if (codec_id == CODEC_ID_SVQ3) {
> - h->pred16x16[PLANE_PRED8x8] =
> ff_pred16x16_plane_svq3_mmx;
> + if (mm_flags & AV_CPU_FLAG_CMOV)
> + h->pred16x16[PLANE_PRED8x8] =
> ff_pred16x16_plane_svq3_mmx;
> } else if (codec_id == CODEC_ID_RV40) {
> h->pred16x16[PLANE_PRED8x8] =
> ff_pred16x16_plane_rv40_mmx;
> } else {
> diff --git a/libavcodec/x86/h264dsp_mmx.c b/libavcodec/x86/h264dsp_mmx.c
> index f5ae4dc..19b3a4b 100644
> --- a/libavcodec/x86/h264dsp_mmx.c
> +++ b/libavcodec/x86/h264dsp_mmx.c
> @@ -361,7 +361,8 @@ void ff_h264dsp_init_x86(H264DSPContext *c, const int
> bit_depth, const int chrom
> if (chroma_format_idc <= 1)
> c->h264_idct_add8 = ff_h264_idct_add8_8_mmx;
> c->h264_idct_add16intra = ff_h264_idct_add16intra_8_mmx;
> - c->h264_luma_dc_dequant_idct= ff_h264_luma_dc_dequant_idct_mmx;
> + if (mm_flags & AV_CPU_FLAG_CMOV)
> + c->h264_luma_dc_dequant_idct = ff_h264_luma_dc_dequant_idct_mmx;
>
> if (mm_flags & AV_CPU_FLAG_MMX2) {
> c->h264_idct_dc_add = ff_h264_idct_dc_add_8_mmx2;
Probably ok if they work.
--
Vittorio
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel