mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
h264: do not use 422 functions for monochrome
Fixes invalid memory access. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org
This commit is contained in:
parent
9eef9eb301
commit
a03a642d5c
@ -91,7 +91,7 @@ static av_cold void h264dsp_init_neon(H264DSPContext *c, const int bit_depth,
|
|||||||
c->h264_idct_dc_add = ff_h264_idct_dc_add_neon;
|
c->h264_idct_dc_add = ff_h264_idct_dc_add_neon;
|
||||||
c->h264_idct_add16 = ff_h264_idct_add16_neon;
|
c->h264_idct_add16 = ff_h264_idct_add16_neon;
|
||||||
c->h264_idct_add16intra = ff_h264_idct_add16intra_neon;
|
c->h264_idct_add16intra = ff_h264_idct_add16intra_neon;
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
c->h264_idct_add8 = ff_h264_idct_add8_neon;
|
c->h264_idct_add8 = ff_h264_idct_add8_neon;
|
||||||
c->h264_idct8_add = ff_h264_idct8_add_neon;
|
c->h264_idct8_add = ff_h264_idct8_add_neon;
|
||||||
c->h264_idct8_dc_add = ff_h264_idct8_dc_add_neon;
|
c->h264_idct8_dc_add = ff_h264_idct8_dc_add_neon;
|
||||||
|
@ -104,13 +104,13 @@ av_cold void ff_h264dsp_init(H264DSPContext *c, const int bit_depth,
|
|||||||
c->h264_idct8_dc_add= FUNC(ff_h264_idct8_dc_add, depth);\
|
c->h264_idct8_dc_add= FUNC(ff_h264_idct8_dc_add, depth);\
|
||||||
c->h264_idct_add16 = FUNC(ff_h264_idct_add16, depth);\
|
c->h264_idct_add16 = FUNC(ff_h264_idct_add16, depth);\
|
||||||
c->h264_idct8_add4 = FUNC(ff_h264_idct8_add4, depth);\
|
c->h264_idct8_add4 = FUNC(ff_h264_idct8_add4, depth);\
|
||||||
if (chroma_format_idc == 1)\
|
if (chroma_format_idc <= 1)\
|
||||||
c->h264_idct_add8 = FUNC(ff_h264_idct_add8, depth);\
|
c->h264_idct_add8 = FUNC(ff_h264_idct_add8, depth);\
|
||||||
else\
|
else\
|
||||||
c->h264_idct_add8 = FUNC(ff_h264_idct_add8_422, depth);\
|
c->h264_idct_add8 = FUNC(ff_h264_idct_add8_422, depth);\
|
||||||
c->h264_idct_add16intra= FUNC(ff_h264_idct_add16intra, depth);\
|
c->h264_idct_add16intra= FUNC(ff_h264_idct_add16intra, depth);\
|
||||||
c->h264_luma_dc_dequant_idct= FUNC(ff_h264_luma_dc_dequant_idct, depth);\
|
c->h264_luma_dc_dequant_idct= FUNC(ff_h264_luma_dc_dequant_idct, depth);\
|
||||||
if (chroma_format_idc == 1)\
|
if (chroma_format_idc <= 1)\
|
||||||
c->h264_chroma_dc_dequant_idct= FUNC(ff_h264_chroma_dc_dequant_idct, depth);\
|
c->h264_chroma_dc_dequant_idct= FUNC(ff_h264_chroma_dc_dequant_idct, depth);\
|
||||||
else\
|
else\
|
||||||
c->h264_chroma_dc_dequant_idct= FUNC(ff_h264_chroma422_dc_dequant_idct, depth);\
|
c->h264_chroma_dc_dequant_idct= FUNC(ff_h264_chroma422_dc_dequant_idct, depth);\
|
||||||
@ -131,20 +131,20 @@ av_cold void ff_h264dsp_init(H264DSPContext *c, const int bit_depth,
|
|||||||
c->h264_h_loop_filter_luma_intra= FUNC(h264_h_loop_filter_luma_intra, depth);\
|
c->h264_h_loop_filter_luma_intra= FUNC(h264_h_loop_filter_luma_intra, depth);\
|
||||||
c->h264_h_loop_filter_luma_mbaff_intra= FUNC(h264_h_loop_filter_luma_mbaff_intra, depth);\
|
c->h264_h_loop_filter_luma_mbaff_intra= FUNC(h264_h_loop_filter_luma_mbaff_intra, depth);\
|
||||||
c->h264_v_loop_filter_chroma= FUNC(h264_v_loop_filter_chroma, depth);\
|
c->h264_v_loop_filter_chroma= FUNC(h264_v_loop_filter_chroma, depth);\
|
||||||
if (chroma_format_idc == 1)\
|
if (chroma_format_idc <= 1)\
|
||||||
c->h264_h_loop_filter_chroma= FUNC(h264_h_loop_filter_chroma, depth);\
|
c->h264_h_loop_filter_chroma= FUNC(h264_h_loop_filter_chroma, depth);\
|
||||||
else\
|
else\
|
||||||
c->h264_h_loop_filter_chroma= FUNC(h264_h_loop_filter_chroma422, depth);\
|
c->h264_h_loop_filter_chroma= FUNC(h264_h_loop_filter_chroma422, depth);\
|
||||||
if (chroma_format_idc == 1)\
|
if (chroma_format_idc <= 1)\
|
||||||
c->h264_h_loop_filter_chroma_mbaff= FUNC(h264_h_loop_filter_chroma_mbaff, depth);\
|
c->h264_h_loop_filter_chroma_mbaff= FUNC(h264_h_loop_filter_chroma_mbaff, depth);\
|
||||||
else\
|
else\
|
||||||
c->h264_h_loop_filter_chroma_mbaff= FUNC(h264_h_loop_filter_chroma422_mbaff, depth);\
|
c->h264_h_loop_filter_chroma_mbaff= FUNC(h264_h_loop_filter_chroma422_mbaff, depth);\
|
||||||
c->h264_v_loop_filter_chroma_intra= FUNC(h264_v_loop_filter_chroma_intra, depth);\
|
c->h264_v_loop_filter_chroma_intra= FUNC(h264_v_loop_filter_chroma_intra, depth);\
|
||||||
if (chroma_format_idc == 1)\
|
if (chroma_format_idc <= 1)\
|
||||||
c->h264_h_loop_filter_chroma_intra= FUNC(h264_h_loop_filter_chroma_intra, depth);\
|
c->h264_h_loop_filter_chroma_intra= FUNC(h264_h_loop_filter_chroma_intra, depth);\
|
||||||
else\
|
else\
|
||||||
c->h264_h_loop_filter_chroma_intra= FUNC(h264_h_loop_filter_chroma422_intra, depth);\
|
c->h264_h_loop_filter_chroma_intra= FUNC(h264_h_loop_filter_chroma422_intra, depth);\
|
||||||
if (chroma_format_idc == 1)\
|
if (chroma_format_idc <= 1)\
|
||||||
c->h264_h_loop_filter_chroma_mbaff_intra= FUNC(h264_h_loop_filter_chroma_mbaff_intra, depth);\
|
c->h264_h_loop_filter_chroma_mbaff_intra= FUNC(h264_h_loop_filter_chroma_mbaff_intra, depth);\
|
||||||
else\
|
else\
|
||||||
c->h264_h_loop_filter_chroma_mbaff_intra= FUNC(h264_h_loop_filter_chroma422_mbaff_intra, depth);\
|
c->h264_h_loop_filter_chroma_mbaff_intra= FUNC(h264_h_loop_filter_chroma422_mbaff_intra, depth);\
|
||||||
|
@ -472,7 +472,7 @@ av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id,
|
|||||||
h->pred8x8l[TOP_DC_PRED ]= FUNCC(pred8x8l_top_dc , depth);\
|
h->pred8x8l[TOP_DC_PRED ]= FUNCC(pred8x8l_top_dc , depth);\
|
||||||
h->pred8x8l[DC_128_PRED ]= FUNCC(pred8x8l_128_dc , depth);\
|
h->pred8x8l[DC_128_PRED ]= FUNCC(pred8x8l_128_dc , depth);\
|
||||||
\
|
\
|
||||||
if (chroma_format_idc == 1) {\
|
if (chroma_format_idc <= 1) {\
|
||||||
h->pred8x8[VERT_PRED8x8 ]= FUNCC(pred8x8_vertical , depth);\
|
h->pred8x8[VERT_PRED8x8 ]= FUNCC(pred8x8_vertical , depth);\
|
||||||
h->pred8x8[HOR_PRED8x8 ]= FUNCC(pred8x8_horizontal , depth);\
|
h->pred8x8[HOR_PRED8x8 ]= FUNCC(pred8x8_horizontal , depth);\
|
||||||
} else {\
|
} else {\
|
||||||
@ -480,7 +480,7 @@ av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id,
|
|||||||
h->pred8x8[HOR_PRED8x8 ]= FUNCC(pred8x16_horizontal , depth);\
|
h->pred8x8[HOR_PRED8x8 ]= FUNCC(pred8x16_horizontal , depth);\
|
||||||
}\
|
}\
|
||||||
if (codec_id != AV_CODEC_ID_VP8) {\
|
if (codec_id != AV_CODEC_ID_VP8) {\
|
||||||
if (chroma_format_idc == 1) {\
|
if (chroma_format_idc <= 1) {\
|
||||||
h->pred8x8[PLANE_PRED8x8]= FUNCC(pred8x8_plane , depth);\
|
h->pred8x8[PLANE_PRED8x8]= FUNCC(pred8x8_plane , depth);\
|
||||||
} else {\
|
} else {\
|
||||||
h->pred8x8[PLANE_PRED8x8]= FUNCC(pred8x16_plane , depth);\
|
h->pred8x8[PLANE_PRED8x8]= FUNCC(pred8x16_plane , depth);\
|
||||||
@ -488,7 +488,7 @@ av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id,
|
|||||||
} else\
|
} else\
|
||||||
h->pred8x8[PLANE_PRED8x8]= FUNCD(pred8x8_tm_vp8);\
|
h->pred8x8[PLANE_PRED8x8]= FUNCD(pred8x8_tm_vp8);\
|
||||||
if(codec_id != AV_CODEC_ID_RV40 && codec_id != AV_CODEC_ID_VP8){\
|
if(codec_id != AV_CODEC_ID_RV40 && codec_id != AV_CODEC_ID_VP8){\
|
||||||
if (chroma_format_idc == 1) {\
|
if (chroma_format_idc <= 1) {\
|
||||||
h->pred8x8[DC_PRED8x8 ]= FUNCC(pred8x8_dc , depth);\
|
h->pred8x8[DC_PRED8x8 ]= FUNCC(pred8x8_dc , depth);\
|
||||||
h->pred8x8[LEFT_DC_PRED8x8]= FUNCC(pred8x8_left_dc , depth);\
|
h->pred8x8[LEFT_DC_PRED8x8]= FUNCC(pred8x8_left_dc , depth);\
|
||||||
h->pred8x8[TOP_DC_PRED8x8 ]= FUNCC(pred8x8_top_dc , depth);\
|
h->pred8x8[TOP_DC_PRED8x8 ]= FUNCC(pred8x8_top_dc , depth);\
|
||||||
@ -514,7 +514,7 @@ av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id,
|
|||||||
h->pred8x8[DC_129_PRED8x8]= FUNCC(pred8x8_129_dc , depth);\
|
h->pred8x8[DC_129_PRED8x8]= FUNCC(pred8x8_129_dc , depth);\
|
||||||
}\
|
}\
|
||||||
}\
|
}\
|
||||||
if (chroma_format_idc == 1) {\
|
if (chroma_format_idc <= 1) {\
|
||||||
h->pred8x8[DC_128_PRED8x8 ]= FUNCC(pred8x8_128_dc , depth);\
|
h->pred8x8[DC_128_PRED8x8 ]= FUNCC(pred8x8_128_dc , depth);\
|
||||||
} else {\
|
} else {\
|
||||||
h->pred8x8[DC_128_PRED8x8 ]= FUNCC(pred8x16_128_dc , depth);\
|
h->pred8x8[DC_128_PRED8x8 ]= FUNCC(pred8x16_128_dc , depth);\
|
||||||
@ -548,7 +548,7 @@ av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id,
|
|||||||
h->pred4x4_add [ HOR_PRED ]= FUNCC(pred4x4_horizontal_add , depth);\
|
h->pred4x4_add [ HOR_PRED ]= FUNCC(pred4x4_horizontal_add , depth);\
|
||||||
h->pred8x8l_add [VERT_PRED ]= FUNCC(pred8x8l_vertical_add , depth);\
|
h->pred8x8l_add [VERT_PRED ]= FUNCC(pred8x8l_vertical_add , depth);\
|
||||||
h->pred8x8l_add [ HOR_PRED ]= FUNCC(pred8x8l_horizontal_add , depth);\
|
h->pred8x8l_add [ HOR_PRED ]= FUNCC(pred8x8l_horizontal_add , depth);\
|
||||||
if (chroma_format_idc == 1) {\
|
if (chroma_format_idc <= 1) {\
|
||||||
h->pred8x8_add [VERT_PRED8x8]= FUNCC(pred8x8_vertical_add , depth);\
|
h->pred8x8_add [VERT_PRED8x8]= FUNCC(pred8x8_vertical_add , depth);\
|
||||||
h->pred8x8_add [ HOR_PRED8x8]= FUNCC(pred8x8_horizontal_add , depth);\
|
h->pred8x8_add [ HOR_PRED8x8]= FUNCC(pred8x8_horizontal_add , depth);\
|
||||||
} else {\
|
} else {\
|
||||||
|
@ -750,7 +750,7 @@ av_cold void ff_h264dsp_init_ppc(H264DSPContext *c, const int bit_depth,
|
|||||||
|
|
||||||
if (bit_depth == 8) {
|
if (bit_depth == 8) {
|
||||||
c->h264_idct_add = h264_idct_add_altivec;
|
c->h264_idct_add = h264_idct_add_altivec;
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
c->h264_idct_add8 = h264_idct_add8_altivec;
|
c->h264_idct_add8 = h264_idct_add8_altivec;
|
||||||
c->h264_idct_add16 = h264_idct_add16_altivec;
|
c->h264_idct_add16 = h264_idct_add16_altivec;
|
||||||
c->h264_idct_add16intra = h264_idct_add16intra_altivec;
|
c->h264_idct_add16intra = h264_idct_add16intra_altivec;
|
||||||
|
@ -191,7 +191,7 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
|
|||||||
if (EXTERNAL_MMX(cpu_flags)) {
|
if (EXTERNAL_MMX(cpu_flags)) {
|
||||||
h->pred16x16[VERT_PRED8x8 ] = ff_pred16x16_vertical_8_mmx;
|
h->pred16x16[VERT_PRED8x8 ] = ff_pred16x16_vertical_8_mmx;
|
||||||
h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_mmx;
|
h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_mmx;
|
||||||
if (chroma_format_idc == 1) {
|
if (chroma_format_idc <= 1) {
|
||||||
h->pred8x8 [VERT_PRED8x8 ] = ff_pred8x8_vertical_8_mmx;
|
h->pred8x8 [VERT_PRED8x8 ] = ff_pred8x8_vertical_8_mmx;
|
||||||
h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_mmx;
|
h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_mmx;
|
||||||
}
|
}
|
||||||
@ -200,7 +200,7 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
|
|||||||
h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_mmx;
|
h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_mmx;
|
||||||
h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_mmx;
|
h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_mmx;
|
||||||
} else {
|
} else {
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_mmx;
|
h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_mmx;
|
||||||
if (codec_id == AV_CODEC_ID_SVQ3) {
|
if (codec_id == AV_CODEC_ID_SVQ3) {
|
||||||
if (cpu_flags & AV_CPU_FLAG_CMOV)
|
if (cpu_flags & AV_CPU_FLAG_CMOV)
|
||||||
@ -216,7 +216,7 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
|
|||||||
if (EXTERNAL_MMXEXT(cpu_flags)) {
|
if (EXTERNAL_MMXEXT(cpu_flags)) {
|
||||||
h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_mmxext;
|
h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_mmxext;
|
||||||
h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_8_mmxext;
|
h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_8_mmxext;
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
h->pred8x8[HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_mmxext;
|
h->pred8x8[HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_mmxext;
|
||||||
h->pred8x8l [TOP_DC_PRED ] = ff_pred8x8l_top_dc_8_mmxext;
|
h->pred8x8l [TOP_DC_PRED ] = ff_pred8x8l_top_dc_8_mmxext;
|
||||||
h->pred8x8l [DC_PRED ] = ff_pred8x8l_dc_8_mmxext;
|
h->pred8x8l [DC_PRED ] = ff_pred8x8l_dc_8_mmxext;
|
||||||
@ -241,7 +241,7 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
|
|||||||
h->pred4x4 [HOR_UP_PRED ] = ff_pred4x4_horizontal_up_8_mmxext;
|
h->pred4x4 [HOR_UP_PRED ] = ff_pred4x4_horizontal_up_8_mmxext;
|
||||||
}
|
}
|
||||||
if (codec_id == AV_CODEC_ID_SVQ3 || codec_id == AV_CODEC_ID_H264) {
|
if (codec_id == AV_CODEC_ID_SVQ3 || codec_id == AV_CODEC_ID_H264) {
|
||||||
if (chroma_format_idc == 1) {
|
if (chroma_format_idc <= 1) {
|
||||||
h->pred8x8[TOP_DC_PRED8x8 ] = ff_pred8x8_top_dc_8_mmxext;
|
h->pred8x8[TOP_DC_PRED8x8 ] = ff_pred8x8_top_dc_8_mmxext;
|
||||||
h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_8_mmxext;
|
h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_8_mmxext;
|
||||||
}
|
}
|
||||||
@ -253,7 +253,7 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
|
|||||||
h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_mmxext;
|
h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_mmxext;
|
||||||
h->pred4x4 [VERT_PRED ] = ff_pred4x4_vertical_vp8_8_mmxext;
|
h->pred4x4 [VERT_PRED ] = ff_pred4x4_vertical_vp8_8_mmxext;
|
||||||
} else {
|
} else {
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_mmxext;
|
h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_mmxext;
|
||||||
if (codec_id == AV_CODEC_ID_SVQ3) {
|
if (codec_id == AV_CODEC_ID_SVQ3) {
|
||||||
h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_plane_svq3_8_mmxext;
|
h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_plane_svq3_8_mmxext;
|
||||||
@ -280,7 +280,7 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
|
|||||||
h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_tm_vp8_8_sse2;
|
h->pred16x16[PLANE_PRED8x8 ] = ff_pred16x16_tm_vp8_8_sse2;
|
||||||
h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_sse2;
|
h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_sse2;
|
||||||
} else {
|
} else {
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_sse2;
|
h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_sse2;
|
||||||
if (codec_id == AV_CODEC_ID_SVQ3) {
|
if (codec_id == AV_CODEC_ID_SVQ3) {
|
||||||
h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_sse2;
|
h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_sse2;
|
||||||
@ -295,7 +295,7 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
|
|||||||
if (EXTERNAL_SSSE3(cpu_flags)) {
|
if (EXTERNAL_SSSE3(cpu_flags)) {
|
||||||
h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_ssse3;
|
h->pred16x16[HOR_PRED8x8 ] = ff_pred16x16_horizontal_8_ssse3;
|
||||||
h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_8_ssse3;
|
h->pred16x16[DC_PRED8x8 ] = ff_pred16x16_dc_8_ssse3;
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_ssse3;
|
h->pred8x8 [HOR_PRED8x8 ] = ff_pred8x8_horizontal_8_ssse3;
|
||||||
h->pred8x8l [TOP_DC_PRED ] = ff_pred8x8l_top_dc_8_ssse3;
|
h->pred8x8l [TOP_DC_PRED ] = ff_pred8x8l_top_dc_8_ssse3;
|
||||||
h->pred8x8l [DC_PRED ] = ff_pred8x8l_dc_8_ssse3;
|
h->pred8x8l [DC_PRED ] = ff_pred8x8l_dc_8_ssse3;
|
||||||
@ -311,7 +311,7 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
|
|||||||
h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_ssse3;
|
h->pred8x8 [PLANE_PRED8x8 ] = ff_pred8x8_tm_vp8_8_ssse3;
|
||||||
h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_ssse3;
|
h->pred4x4 [TM_VP8_PRED ] = ff_pred4x4_tm_vp8_8_ssse3;
|
||||||
} else {
|
} else {
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_ssse3;
|
h->pred8x8 [PLANE_PRED8x8] = ff_pred8x8_plane_8_ssse3;
|
||||||
if (codec_id == AV_CODEC_ID_SVQ3) {
|
if (codec_id == AV_CODEC_ID_SVQ3) {
|
||||||
h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_ssse3;
|
h->pred16x16[PLANE_PRED8x8] = ff_pred16x16_plane_svq3_8_ssse3;
|
||||||
@ -327,7 +327,7 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
|
|||||||
h->pred4x4[DC_PRED ] = ff_pred4x4_dc_10_mmxext;
|
h->pred4x4[DC_PRED ] = ff_pred4x4_dc_10_mmxext;
|
||||||
h->pred4x4[HOR_UP_PRED ] = ff_pred4x4_horizontal_up_10_mmxext;
|
h->pred4x4[HOR_UP_PRED ] = ff_pred4x4_horizontal_up_10_mmxext;
|
||||||
|
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_10_mmxext;
|
h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_10_mmxext;
|
||||||
|
|
||||||
h->pred8x8l[DC_128_PRED ] = ff_pred8x8l_128_dc_10_mmxext;
|
h->pred8x8l[DC_128_PRED ] = ff_pred8x8l_128_dc_10_mmxext;
|
||||||
@ -346,7 +346,7 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
|
|||||||
h->pred4x4[VERT_RIGHT_PRED ] = ff_pred4x4_vertical_right_10_sse2;
|
h->pred4x4[VERT_RIGHT_PRED ] = ff_pred4x4_vertical_right_10_sse2;
|
||||||
h->pred4x4[HOR_DOWN_PRED ] = ff_pred4x4_horizontal_down_10_sse2;
|
h->pred4x4[HOR_DOWN_PRED ] = ff_pred4x4_horizontal_down_10_sse2;
|
||||||
|
|
||||||
if (chroma_format_idc == 1) {
|
if (chroma_format_idc <= 1) {
|
||||||
h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_10_sse2;
|
h->pred8x8[DC_PRED8x8 ] = ff_pred8x8_dc_10_sse2;
|
||||||
h->pred8x8[TOP_DC_PRED8x8 ] = ff_pred8x8_top_dc_10_sse2;
|
h->pred8x8[TOP_DC_PRED8x8 ] = ff_pred8x8_top_dc_10_sse2;
|
||||||
h->pred8x8[PLANE_PRED8x8 ] = ff_pred8x8_plane_10_sse2;
|
h->pred8x8[PLANE_PRED8x8 ] = ff_pred8x8_plane_10_sse2;
|
||||||
|
@ -213,7 +213,7 @@ av_cold void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
|
|||||||
{
|
{
|
||||||
int cpu_flags = av_get_cpu_flags();
|
int cpu_flags = av_get_cpu_flags();
|
||||||
|
|
||||||
if (chroma_format_idc == 1 && EXTERNAL_MMXEXT(cpu_flags))
|
if (chroma_format_idc <= 1 && EXTERNAL_MMXEXT(cpu_flags))
|
||||||
c->h264_loop_filter_strength = ff_h264_loop_filter_strength_mmxext;
|
c->h264_loop_filter_strength = ff_h264_loop_filter_strength_mmxext;
|
||||||
|
|
||||||
if (bit_depth == 8) {
|
if (bit_depth == 8) {
|
||||||
@ -225,7 +225,7 @@ av_cold void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
|
|||||||
|
|
||||||
c->h264_idct_add16 = ff_h264_idct_add16_8_mmx;
|
c->h264_idct_add16 = ff_h264_idct_add16_8_mmx;
|
||||||
c->h264_idct8_add4 = ff_h264_idct8_add4_8_mmx;
|
c->h264_idct8_add4 = ff_h264_idct8_add4_8_mmx;
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
c->h264_idct_add8 = ff_h264_idct_add8_8_mmx;
|
c->h264_idct_add8 = ff_h264_idct_add8_8_mmx;
|
||||||
c->h264_idct_add16intra = ff_h264_idct_add16intra_8_mmx;
|
c->h264_idct_add16intra = ff_h264_idct_add16intra_8_mmx;
|
||||||
if (cpu_flags & AV_CPU_FLAG_CMOV)
|
if (cpu_flags & AV_CPU_FLAG_CMOV)
|
||||||
@ -236,13 +236,13 @@ av_cold void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
|
|||||||
c->h264_idct8_dc_add = ff_h264_idct8_dc_add_8_mmxext;
|
c->h264_idct8_dc_add = ff_h264_idct8_dc_add_8_mmxext;
|
||||||
c->h264_idct_add16 = ff_h264_idct_add16_8_mmxext;
|
c->h264_idct_add16 = ff_h264_idct_add16_8_mmxext;
|
||||||
c->h264_idct8_add4 = ff_h264_idct8_add4_8_mmxext;
|
c->h264_idct8_add4 = ff_h264_idct8_add4_8_mmxext;
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
c->h264_idct_add8 = ff_h264_idct_add8_8_mmxext;
|
c->h264_idct_add8 = ff_h264_idct_add8_8_mmxext;
|
||||||
c->h264_idct_add16intra = ff_h264_idct_add16intra_8_mmxext;
|
c->h264_idct_add16intra = ff_h264_idct_add16intra_8_mmxext;
|
||||||
|
|
||||||
c->h264_v_loop_filter_chroma = ff_deblock_v_chroma_8_mmxext;
|
c->h264_v_loop_filter_chroma = ff_deblock_v_chroma_8_mmxext;
|
||||||
c->h264_v_loop_filter_chroma_intra = ff_deblock_v_chroma_intra_8_mmxext;
|
c->h264_v_loop_filter_chroma_intra = ff_deblock_v_chroma_intra_8_mmxext;
|
||||||
if (chroma_format_idc == 1) {
|
if (chroma_format_idc <= 1) {
|
||||||
c->h264_h_loop_filter_chroma = ff_deblock_h_chroma_8_mmxext;
|
c->h264_h_loop_filter_chroma = ff_deblock_h_chroma_8_mmxext;
|
||||||
c->h264_h_loop_filter_chroma_intra = ff_deblock_h_chroma_intra_8_mmxext;
|
c->h264_h_loop_filter_chroma_intra = ff_deblock_h_chroma_intra_8_mmxext;
|
||||||
}
|
}
|
||||||
@ -265,7 +265,7 @@ av_cold void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
|
|||||||
|
|
||||||
c->h264_idct_add16 = ff_h264_idct_add16_8_sse2;
|
c->h264_idct_add16 = ff_h264_idct_add16_8_sse2;
|
||||||
c->h264_idct8_add4 = ff_h264_idct8_add4_8_sse2;
|
c->h264_idct8_add4 = ff_h264_idct8_add4_8_sse2;
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
c->h264_idct_add8 = ff_h264_idct_add8_8_sse2;
|
c->h264_idct_add8 = ff_h264_idct_add8_8_sse2;
|
||||||
c->h264_idct_add16intra = ff_h264_idct_add16intra_8_sse2;
|
c->h264_idct_add16intra = ff_h264_idct_add16intra_8_sse2;
|
||||||
c->h264_luma_dc_dequant_idct = ff_h264_luma_dc_dequant_idct_sse2;
|
c->h264_luma_dc_dequant_idct = ff_h264_luma_dc_dequant_idct_sse2;
|
||||||
@ -308,7 +308,7 @@ av_cold void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
|
|||||||
c->h264_idct8_dc_add = ff_h264_idct8_dc_add_10_sse2;
|
c->h264_idct8_dc_add = ff_h264_idct8_dc_add_10_sse2;
|
||||||
|
|
||||||
c->h264_idct_add16 = ff_h264_idct_add16_10_sse2;
|
c->h264_idct_add16 = ff_h264_idct_add16_10_sse2;
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
c->h264_idct_add8 = ff_h264_idct_add8_10_sse2;
|
c->h264_idct_add8 = ff_h264_idct_add8_10_sse2;
|
||||||
c->h264_idct_add16intra = ff_h264_idct_add16intra_10_sse2;
|
c->h264_idct_add16intra = ff_h264_idct_add16intra_10_sse2;
|
||||||
#if HAVE_ALIGNED_STACK
|
#if HAVE_ALIGNED_STACK
|
||||||
@ -348,7 +348,7 @@ av_cold void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
|
|||||||
c->h264_idct8_dc_add = ff_h264_idct8_dc_add_10_avx;
|
c->h264_idct8_dc_add = ff_h264_idct8_dc_add_10_avx;
|
||||||
|
|
||||||
c->h264_idct_add16 = ff_h264_idct_add16_10_avx;
|
c->h264_idct_add16 = ff_h264_idct_add16_10_avx;
|
||||||
if (chroma_format_idc == 1)
|
if (chroma_format_idc <= 1)
|
||||||
c->h264_idct_add8 = ff_h264_idct_add8_10_avx;
|
c->h264_idct_add8 = ff_h264_idct_add8_10_avx;
|
||||||
c->h264_idct_add16intra = ff_h264_idct_add16intra_10_avx;
|
c->h264_idct_add16intra = ff_h264_idct_add16intra_10_avx;
|
||||||
#if HAVE_ALIGNED_STACK
|
#if HAVE_ALIGNED_STACK
|
||||||
|
Loading…
Reference in New Issue
Block a user