This is more spec-compliant because it does not rely on dead-code elimination by the compiler. Especially MSVC has problems with this, as can be seen in https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/296373.html or https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/297022.html This commit does not eliminate every instance where we rely on dead code elimination: It only tackles branching to the initialization of arch-specific dsp code, not e.g. all uses of CONFIG_ and HAVE_ checks. But maybe it is already enough to compile FFmpeg with MSVC with whole-programm-optimizations enabled (if one does not disable too many components).
Showing the changes to libavfilter (37 of 131 files). Show all
Unified · Split
| @@ -74,8 +74,9 @@ static av_unused void ff_afir_init(AudioFIRDSPContext *dsp) · 73 unmodified lines | |||
| 74 | dsp->fcmul_add = fcmul_add_c; | 74 | dsp->fcmul_add = fcmul_add_c; |
| 75 | dsp->dcmul_add = dcmul_add_c; | 75 | dsp->dcmul_add = dcmul_add_c; |
| 76 | 76 | ||
| 77 | if (ARCH_X86) | 77 | #if ARCH_X86 |
| 78 | ff_afir_init_x86(dsp); | 78 | ff_afir_init_x86(dsp); |
| 79 | #endif | ||
| 79 | } | 80 | } |
| 80 | 81 | ||
| 81 | #endif /* AVFILTER_AFIRDSP_H */ | 82 | #endif /* AVFILTER_AFIRDSP_H */ |
| @@ -118,8 +118,9 @@ void ff_anlmdn_init(AudioNLMDNDSPContext *dsp) · 117 unmodified lines | |||
| 118 | dsp->compute_distance_ssd = compute_distance_ssd_c; | 118 | dsp->compute_distance_ssd = compute_distance_ssd_c; |
| 119 | dsp->compute_cache = compute_cache_c; | 119 | dsp->compute_cache = compute_cache_c; |
| 120 | 120 | ||
| 121 | if (ARCH_X86) | 121 | #if ARCH_X86 |
| 122 | ff_anlmdn_init_x86(dsp); | 122 | ff_anlmdn_init_x86(dsp); |
| 123 | #endif | ||
| 123 | } | 124 | } |
| 124 | 125 | ||
| 125 | static int config_filter(AVFilterContext *ctx) | 126 | static int config_filter(AVFilterContext *ctx) |
| @@ -238,8 +238,9 @@ static av_cold void volume_init(VolumeContext *vol) · 237 unmodified lines | |||
| 238 | break; | 238 | break; |
| 239 | } | 239 | } |
| 240 | 240 | ||
| 241 | if (ARCH_X86) | 241 | #if ARCH_X86 |
| 242 | ff_volume_init_x86(vol); | 242 | ff_volume_init_x86(vol); |
| 243 | #endif | ||
| 243 | } | 244 | } |
| 244 | 245 | ||
| 245 | static int set_volume(AVFilterContext *ctx) | 246 | static int set_volume(AVFilterContext *ctx) |
| @@ -1418,8 +1418,9 @@ static int config_output(AVFilterLink *outlink) · 1417 unmodified lines | |||
| 1418 | s->update_sono = update_sono_yuv; | 1418 | s->update_sono = update_sono_yuv; |
| 1419 | } | 1419 | } |
| 1420 | 1420 | ||
| 1421 | if (ARCH_X86) | 1421 | #if ARCH_X86 |
| 1422 | ff_showcqt_init_x86(s); | 1422 | ff_showcqt_init_x86(s); |
| 1423 | #endif | ||
| 1423 | 1424 | ||
| 1424 | if ((ret = init_cqt(s)) < 0) | 1425 | if ((ret = init_cqt(s)) < 0) |
| 1425 | return ret; | 1426 | return ret; |
| @@ -143,6 +143,7 @@ void ff_colorspacedsp_init(ColorSpaceDSPContext *dsp) · 142 unmodified lines | |||
| 143 | 143 | ||
| 144 | dsp->multiply3x3 = multiply3x3_c; | 144 | dsp->multiply3x3 = multiply3x3_c; |
| 145 | 145 | ||
| 146 | if (ARCH_X86) | 146 | #if ARCH_X86 |
| 147 | ff_colorspacedsp_x86_init(dsp); | 147 | ff_colorspacedsp_x86_init(dsp); |
| 148 | #endif | ||
| 148 | } | 149 | } |
| @@ -59,8 +59,9 @@ void ff_scene_sad_c(SCENE_SAD_PARAMS) · 58 unmodified lines | |||
| 59 | ff_scene_sad_fn ff_scene_sad_get_fn(int depth) | 59 | ff_scene_sad_fn ff_scene_sad_get_fn(int depth) |
| 60 | { | 60 | { |
| 61 | ff_scene_sad_fn sad = NULL; | 61 | ff_scene_sad_fn sad = NULL; |
| 62 | if (ARCH_X86) | 62 | #if ARCH_X86 |
| 63 | sad = ff_scene_sad_get_fn_x86(depth); | 63 | sad = ff_scene_sad_get_fn_x86(depth); |
| 64 | #endif | ||
| 64 | if (!sad) { | 65 | if (!sad) { |
| 65 | if (depth == 8) | 66 | if (depth == 8) |
| 66 | sad = ff_scene_sad_c; | 67 | sad = ff_scene_sad_c; |
| @@ -433,8 +433,9 @@ static int config_input(AVFilterLink *inlink) · 432 unmodified lines | |||
| 433 | } | 433 | } |
| 434 | } | 434 | } |
| 435 | 435 | ||
| 436 | if (ARCH_X86) | 436 | #if ARCH_X86 |
| 437 | ff_atadenoise_init_x86(&s->dsp, depth, s->algorithm, s->sigma); | 437 | ff_atadenoise_init_x86(&s->dsp, depth, s->algorithm, s->sigma); |
| 438 | #endif | ||
| 438 | 439 | ||
| 439 | return 0; | 440 | return 0; |
| 440 | } | 441 | } |
| @@ -194,8 +194,9 @@ static av_unused void ff_blend_init(FilterParams *param, int depth) · 193 unmodified lines | |||
| 194 | param->blend = depth > 8 ? depth > 16 ? blend_copybottom_32 : blend_copybottom_16 : blend_copybottom_8; | 194 | param->blend = depth > 8 ? depth > 16 ? blend_copybottom_32 : blend_copybottom_16 : blend_copybottom_8; |
| 195 | } | 195 | } |
| 196 | 196 | ||
| 197 | if (ARCH_X86) | 197 | #if ARCH_X86 |
| 198 | ff_blend_init_x86(param, depth); | 198 | ff_blend_init_x86(param, depth); |
| 199 | #endif | ||
| 199 | } | 200 | } |
| 200 | 201 | ||
| 201 | #endif /* AVFILTER_BLEND_INIT_H */ | 202 | #endif /* AVFILTER_BLEND_INIT_H */ |
| @@ -350,8 +350,9 @@ static int config_props(AVFilterLink *link) · 349 unmodified lines | |||
| 350 | s->filter_edge = filter_edge; | 350 | s->filter_edge = filter_edge; |
| 351 | } | 351 | } |
| 352 | 352 | ||
| 353 | if (ARCH_X86) | 353 | #if ARCH_X86 |
| 354 | ff_bwdif_init_x86(s); | 354 | ff_bwdif_init_x86(s); |
| 355 | #endif | ||
| 355 | 356 | ||
| 356 | return 0; | 357 | return 0; |
| 357 | } | 358 | } |
| @@ -123,8 +123,9 @@ void ff_eq_init_x86(EQContext *eq); · 122 unmodified lines | |||
| 123 | static av_unused void ff_eq_init(EQContext *eq) | 123 | static av_unused void ff_eq_init(EQContext *eq) |
| 124 | { | 124 | { |
| 125 | eq->process = process_c; | 125 | eq->process = process_c; |
| 126 | if (ARCH_X86) | 126 | #if ARCH_X86 |
| 127 | ff_eq_init_x86(eq); | 127 | ff_eq_init_x86(eq); |
| 128 | #endif | ||
| 128 | } | 129 | } |
| 129 | 130 | ||
| 130 | #endif /* AVFILTER_EQ_H */ | 131 | #endif /* AVFILTER_EQ_H */ |
| @@ -264,8 +264,9 @@ void ff_framerate_init(FrameRateContext *s) · 263 unmodified lines | |||
| 264 | s->blend_factor_max = 1 << BLEND_FACTOR_DEPTH(16); | 264 | s->blend_factor_max = 1 << BLEND_FACTOR_DEPTH(16); |
| 265 | s->blend = blend_frames16_c; | 265 | s->blend = blend_frames16_c; |
| 266 | } | 266 | } |
| 267 | if (ARCH_X86) | 267 | #if ARCH_X86 |
| 268 | ff_framerate_init_x86(s); | 268 | ff_framerate_init_x86(s); |
| 269 | #endif | ||
| 269 | } | 270 | } |
| 270 | 271 | ||
| 271 | static int config_input(AVFilterLink *inlink) | 272 | static int config_input(AVFilterLink *inlink) |
| @@ -525,8 +525,9 @@ static int config_input(AVFilterLink *inlink) · 524 unmodified lines | |||
| 525 | fspp->row_idct = row_idct_c; | 525 | fspp->row_idct = row_idct_c; |
| 526 | fspp->row_fdct = row_fdct_c; | 526 | fspp->row_fdct = row_fdct_c; |
| 527 | 527 | ||
| 528 | if (ARCH_X86) | 528 | #if ARCH_X86 |
| 529 | ff_fspp_init_x86(fspp); | 529 | ff_fspp_init_x86(fspp); |
| 530 | #endif | ||
| 530 | 531 | ||
| 531 | return 0; | 532 | return 0; |
| 532 | } | 533 | } |
| @@ -115,8 +115,9 @@ static av_unused void ff_gblur_init(GBlurContext *s) · 114 unmodified lines | |||
| 115 | s->horiz_slice = horiz_slice_c; | 115 | s->horiz_slice = horiz_slice_c; |
| 116 | s->verti_slice = verti_slice_c; | 116 | s->verti_slice = verti_slice_c; |
| 117 | s->postscale_slice = postscale_c; | 117 | s->postscale_slice = postscale_c; |
| 118 | if (ARCH_X86) | 118 | #if ARCH_X86 |
| 119 | ff_gblur_init_x86(s); | 119 | ff_gblur_init_x86(s); |
| 120 | #endif | ||
| 120 | } | 121 | } |
| 121 | 122 | ||
| 122 | #endif /* AVFILTER_GBLUR_INIT_H */ | 123 | #endif /* AVFILTER_GBLUR_INIT_H */ |
| @@ -131,8 +131,9 @@ static av_cold int init(AVFilterContext *ctx) · 130 unmodified lines | |||
| 131 | s->blur_line = ff_gradfun_blur_line_c; | 131 | s->blur_line = ff_gradfun_blur_line_c; |
| 132 | s->filter_line = ff_gradfun_filter_line_c; | 132 | s->filter_line = ff_gradfun_filter_line_c; |
| 133 | 133 | ||
| 134 | if (ARCH_X86) | 134 | #if ARCH_X86 |
| 135 | ff_gradfun_init_x86(s); | 135 | ff_gradfun_init_x86(s); |
| 136 | #endif | ||
| 136 | 137 | ||
| 137 | av_log(ctx, AV_LOG_VERBOSE, "threshold:%.2f radius:%d\n", s->strength, s->radius); | 138 | av_log(ctx, AV_LOG_VERBOSE, "threshold:%.2f radius:%d\n", s->strength, s->radius); |
| 138 | 139 | ||
| @@ -101,8 +101,9 @@ static av_unused int ff_hflip_init(FlipContext *s, int step[4], int nb_planes) · 100 unmodified lines | |||
| 101 | return AVERROR_BUG; | 101 | return AVERROR_BUG; |
| 102 | } | 102 | } |
| 103 | } | 103 | } |
| 104 | if (ARCH_X86) | 104 | #if ARCH_X86 |
| 105 | ff_hflip_init_x86(s, step, nb_planes); | 105 | ff_hflip_init_x86(s, step, nb_planes); |
| 106 | #endif | ||
| 106 | 107 | ||
| 107 | return 0; | 108 | return 0; |
| 108 | } | 109 | } |
| @@ -278,8 +278,9 @@ static int config_input(AVFilterLink *inlink) · 277 unmodified lines | |||
| 278 | 278 | ||
| 279 | calc_coefs(ctx); | 279 | calc_coefs(ctx); |
| 280 | 280 | ||
| 281 | if (ARCH_X86) | 281 | #if ARCH_X86 |
| 282 | ff_hqdn3d_init_x86(s); | 282 | ff_hqdn3d_init_x86(s); |
| 283 | #endif | ||
| 283 | 284 | ||
| 284 | return 0; | 285 | return 0; |
| 285 | } | 286 | } |
| @@ -276,8 +276,9 @@ static int filter_frame(AVFilterLink *link, AVFrame *picref) · 275 unmodified lines | |||
| 276 | idet->csp = av_pix_fmt_desc_get(link->format); | 276 | idet->csp = av_pix_fmt_desc_get(link->format); |
| 277 | if (idet->csp->comp[0].depth > 8){ | 277 | if (idet->csp->comp[0].depth > 8){ |
| 278 | idet->filter_line = (ff_idet_filter_func)ff_idet_filter_line_c_16bit; | 278 | idet->filter_line = (ff_idet_filter_func)ff_idet_filter_line_c_16bit; |
| 279 | if (ARCH_X86) | 279 | #if ARCH_X86 |
| 280 | ff_idet_init_x86(idet, 1); | 280 | ff_idet_init_x86(idet, 1); |
| 281 | #endif | ||
| 281 | } | 282 | } |
| 282 | 283 | ||
| 283 | if (idet->analyze_interlaced_flag) { | 284 | if (idet->analyze_interlaced_flag) { |
| @@ -408,8 +409,9 @@ static av_cold int init(AVFilterContext *ctx) · 124 unmodified lines | |||
| 408 | 409 | ||
| 409 | idet->filter_line = ff_idet_filter_line_c; | 410 | idet->filter_line = ff_idet_filter_line_c; |
| 410 | 411 | ||
| 411 | if (ARCH_X86) | 412 | #if ARCH_X86 |
| 412 | ff_idet_init_x86(idet, 0); | 413 | ff_idet_init_x86(idet, 0); |
| 414 | #endif | ||
| 413 | 415 | ||
| 414 | return 0; | 416 | return 0; |
| 415 | } | 417 | } |
| @@ -141,8 +141,9 @@ static int config_input(AVFilterLink *inlink) · 140 unmodified lines | |||
| 141 | s->dsp.limiter = limiter16; | 141 | s->dsp.limiter = limiter16; |
| 142 | } | 142 | } |
| 143 | 143 | ||
| 144 | if (ARCH_X86) | 144 | #if ARCH_X86 |
| 145 | ff_limiter_init_x86(&s->dsp, desc->comp[0].depth); | 145 | ff_limiter_init_x86(&s->dsp, desc->comp[0].depth); |
| 146 | #endif | ||
| 146 | 147 | ||
| 147 | return 0; | 148 | return 0; |
| 148 | } | 149 | } |
| @@ -1150,9 +1150,9 @@ static int config_input(AVFilterLink *inlink) · 1149 unmodified lines | |||
| 1150 | av_assert0(0); | 1150 | av_assert0(0); |
| 1151 | } | 1151 | } |
| 1152 | 1152 | ||
| 1153 | if (ARCH_X86) { | 1153 | #if ARCH_X86 |
| 1154 | ff_lut3d_init_x86(lut3d, desc); | 1154 | ff_lut3d_init_x86(lut3d, desc); |
| 1155 | } | 1155 | #endif |
| 1156 | 1156 | ||
| 1157 | return 0; | 1157 | return 0; |
| 1158 | } | 1158 | } |
| @@ -209,8 +209,9 @@ static int config_input(AVFilterLink *inlink) · 208 unmodified lines | |||
| 209 | else | 209 | else |
| 210 | s->dsp.maskedclamp = maskedclamp16; | 210 | s->dsp.maskedclamp = maskedclamp16; |
| 211 | 211 | ||
| 212 | if (ARCH_X86) | 212 | #if ARCH_X86 |
| 213 | ff_maskedclamp_init_x86(&s->dsp, s->depth); | 213 | ff_maskedclamp_init_x86(&s->dsp, s->depth); |
| 214 | #endif | ||
| 214 | 215 | ||
| 215 | return 0; | 216 | return 0; |
| 216 | } | 217 | } |
| @@ -202,8 +202,9 @@ static int config_input(AVFilterLink *inlink) · 201 unmodified lines | |||
| 202 | else | 202 | else |
| 203 | s->maskedmerge = maskedmerge32; | 203 | s->maskedmerge = maskedmerge32; |
| 204 | 204 | ||
| 205 | if (ARCH_X86) | 205 | #if ARCH_X86 |
| 206 | ff_maskedmerge_init_x86(s); | 206 | ff_maskedmerge_init_x86(s); |
| 207 | #endif | ||
| 207 | 208 | ||
| 208 | return 0; | 209 | return 0; |
| 209 | } | 210 | } |
| @@ -129,11 +129,11 @@ static av_unused void ff_nlmeans_init(NLMeansDSPContext *dsp) · 128 unmodified lines | |||
| 129 | dsp->compute_safe_ssd_integral_image = compute_safe_ssd_integral_image_c; | 129 | dsp->compute_safe_ssd_integral_image = compute_safe_ssd_integral_image_c; |
| 130 | dsp->compute_weights_line = compute_weights_line_c; | 130 | dsp->compute_weights_line = compute_weights_line_c; |
| 131 | 131 | ||
| 132 | if (ARCH_AARCH64) | 132 | #if ARCH_AARCH64 |
| 133 | ff_nlmeans_init_aarch64(dsp); | 133 | ff_nlmeans_init_aarch64(dsp); |
| 134 | 134 | #elif ARCH_X86 | |
| 135 | if (ARCH_X86) | 135 | ff_nlmeans_init_x86(dsp); |
| 136 | ff_nlmeans_init_x86(dsp); | 136 | #endif |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | #endif /* AVFILTER_NLMEANS_INIT_H */ | 139 | #endif /* AVFILTER_NLMEANS_INIT_H */ |
| @@ -305,8 +305,9 @@ static av_cold int init(AVFilterContext *ctx) · 304 unmodified lines | |||
| 305 | n->line_noise = ff_line_noise_c; | 305 | n->line_noise = ff_line_noise_c; |
| 306 | n->line_noise_avg = ff_line_noise_avg_c; | 306 | n->line_noise_avg = ff_line_noise_avg_c; |
| 307 | 307 | ||
| 308 | if (ARCH_X86) | 308 | #if ARCH_X86 |
| 309 | ff_noise_init_x86(n); | 309 | ff_noise_init_x86(n); |
| 310 | #endif | ||
| 310 | 311 | ||
| 311 | return 0; | 312 | return 0; |
| 312 | } | 313 | } |
| @@ -984,9 +984,10 @@ static int config_input_main(AVFilterLink *inlink) · 983 unmodified lines | |||
| 984 | } | 984 | } |
| 985 | 985 | ||
| 986 | end: | 986 | end: |
| 987 | if (ARCH_X86) | 987 | #if ARCH_X86 |
| 988 | ff_overlay_init_x86(s, s->format, inlink->format, | 988 | ff_overlay_init_x86(s, s->format, inlink->format, |
| 989 | s->alpha_format, s->main_has_alpha); | 989 | s->alpha_format, s->main_has_alpha); |
| 990 | #endif | ||
| 990 | 991 | ||
| 991 | return 0; | 992 | return 0; |
| 992 | } | 993 | } |
| @@ -301,8 +301,9 @@ static int config_input(AVFilterLink *inlink) · 300 unmodified lines | |||
| 301 | 301 | ||
| 302 | pp7->dctB = dctB_c; | 302 | pp7->dctB = dctB_c; |
| 303 | 303 | ||
| 304 | if (ARCH_X86) | 304 | #if ARCH_X86 |
| 305 | ff_pp7_init_x86(pp7); | 305 | ff_pp7_init_x86(pp7); |
| 306 | #endif | ||
| 306 | 307 | ||
| 307 | return 0; | 308 | return 0; |
| 308 | } | 309 | } |
| @@ -354,8 +354,9 @@ static int config_input_ref(AVFilterLink *inlink) · 353 unmodified lines | |||
| 354 | s->average_max = lrint(average_max); | 354 | s->average_max = lrint(average_max); |
| 355 | 355 | ||
| 356 | s->dsp.sse_line = desc->comp[0].depth > 8 ? sse_line_16bit : sse_line_8bit; | 356 | s->dsp.sse_line = desc->comp[0].depth > 8 ? sse_line_16bit : sse_line_8bit; |
| 357 | if (ARCH_X86) | 357 | #if ARCH_X86 |
| 358 | ff_psnr_init_x86(&s->dsp, desc->comp[0].depth); | 358 | ff_psnr_init_x86(&s->dsp, desc->comp[0].depth); |
| 359 | #endif | ||
| 359 | 360 | ||
| 360 | s->score = av_calloc(s->nb_threads, sizeof(*s->score)); | 361 | s->score = av_calloc(s->nb_threads, sizeof(*s->score)); |
| 361 | if (!s->score) | 362 | if (!s->score) |
| @@ -207,8 +207,9 @@ static int config_input(AVFilterLink *inlink) · 206 unmodified lines | |||
| 207 | s->comb = comb_c; | 207 | s->comb = comb_c; |
| 208 | s->var = var_c; | 208 | s->var = var_c; |
| 209 | 209 | ||
| 210 | if (ARCH_X86) | 210 | #if ARCH_X86 |
| 211 | ff_pullup_init_x86(s); | 211 | ff_pullup_init_x86(s); |
| 212 | #endif | ||
| 212 | return 0; | 213 | return 0; |
| 213 | } | 214 | } |
| 214 | 215 | ||
| @@ -501,8 +501,9 @@ static int config_input(AVFilterLink *inlink) · 500 unmodified lines | |||
| 501 | } | 501 | } |
| 502 | } | 502 | } |
| 503 | 503 | ||
| 504 | if (ARCH_X86) | 504 | #if ARCH_X86 |
| 505 | ff_removegrain_init_x86(s); | 505 | ff_removegrain_init_x86(s); |
| 506 | #endif | ||
| 506 | 507 | ||
| 507 | return 0; | 508 | return 0; |
| 508 | } | 509 | } |
| @@ -343,8 +343,9 @@ static int config_input(AVFilterLink *inlink) · 342 unmodified lines | |||
| 343 | av_opt_set_int(s->dct, "bits_per_sample", bps, 0); | 343 | av_opt_set_int(s->dct, "bits_per_sample", bps, 0); |
| 344 | avcodec_dct_init(s->dct); | 344 | avcodec_dct_init(s->dct); |
| 345 | 345 | ||
| 346 | if (ARCH_X86) | 346 | #if ARCH_X86 |
| 347 | ff_spp_init_x86(s); | 347 | ff_spp_init_x86(s); |
| 348 | #endif | ||
| 348 | 349 | ||
| 349 | s->hsub = desc->log2_chroma_w; | 350 | s->hsub = desc->log2_chroma_w; |
| 350 | s->vsub = desc->log2_chroma_h; | 351 | s->vsub = desc->log2_chroma_h; |
| @@ -478,8 +478,9 @@ static int config_input_ref(AVFilterLink *inlink) · 477 unmodified lines | |||
| 478 | s->ssim_plane = desc->comp[0].depth > 8 ? ssim_plane_16bit : ssim_plane; | 478 | s->ssim_plane = desc->comp[0].depth > 8 ? ssim_plane_16bit : ssim_plane; |
| 479 | s->dsp.ssim_4x4_line = ssim_4x4xn_8bit; | 479 | s->dsp.ssim_4x4_line = ssim_4x4xn_8bit; |
| 480 | s->dsp.ssim_end_line = ssim_endn_8bit; | 480 | s->dsp.ssim_end_line = ssim_endn_8bit; |
| 481 | if (ARCH_X86) | 481 | #if ARCH_X86 |
| 482 | ff_ssim_init_x86(&s->dsp); | 482 | ff_ssim_init_x86(&s->dsp); |
| 483 | #endif | ||
| 483 | 484 | ||
| 484 | s->score = av_calloc(s->nb_threads, sizeof(*s->score)); | 485 | s->score = av_calloc(s->nb_threads, sizeof(*s->score)); |
| 485 | if (!s->score) | 486 | if (!s->score) |
| @@ -591,8 +591,9 @@ static int config_output(AVFilterLink *outlink) · 590 unmodified lines | |||
| 591 | s->vsub = desc->log2_chroma_h; | 591 | s->vsub = desc->log2_chroma_h; |
| 592 | 592 | ||
| 593 | s->dsp.anaglyph = anaglyph; | 593 | s->dsp.anaglyph = anaglyph; |
| 594 | if (ARCH_X86) | 594 | #if ARCH_X86 |
| 595 | ff_stereo3d_init_x86(&s->dsp); | 595 | ff_stereo3d_init_x86(&s->dsp); |
| 596 | #endif | ||
| 596 | 597 | ||
| 597 | return 0; | 598 | return 0; |
| 598 | } | 599 | } |
| @@ -84,8 +84,9 @@ static av_unused void ff_threshold_init(ThresholdContext *s) · 83 unmodified lines | |||
| 84 | s->bpc = 2; | 84 | s->bpc = 2; |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | if (ARCH_X86) | 87 | #if ARCH_X86 |
| 88 | ff_threshold_init_x86(s); | 88 | ff_threshold_init_x86(s); |
| 89 | #endif | ||
| 89 | } | 90 | } |
| 90 | 91 | ||
| 91 | #endif /* AVFILTER_THRESHOLD_INIT_H */ | 92 | #endif /* AVFILTER_THRESHOLD_INIT_H */ |
| @@ -269,15 +269,17 @@ static int config_out_props(AVFilterLink *outlink) · 268 unmodified lines | |||
| 269 | tinterlace->lowpass_line = lowpass_line_complex_c_16; | 269 | tinterlace->lowpass_line = lowpass_line_complex_c_16; |
| 270 | else | 270 | else |
| 271 | tinterlace->lowpass_line = lowpass_line_complex_c; | 271 | tinterlace->lowpass_line = lowpass_line_complex_c; |
| 272 | if (ARCH_X86) | 272 | #if ARCH_X86 |
| 273 | ff_tinterlace_init_x86(tinterlace); | 273 | ff_tinterlace_init_x86(tinterlace); |
| 274 | #endif | ||
| 274 | } else if (tinterlace->flags & TINTERLACE_FLAG_VLPF) { | 275 | } else if (tinterlace->flags & TINTERLACE_FLAG_VLPF) { |
| 275 | if (tinterlace->csp->comp[0].depth > 8) | 276 | if (tinterlace->csp->comp[0].depth > 8) |
| 276 | tinterlace->lowpass_line = lowpass_line_c_16; | 277 | tinterlace->lowpass_line = lowpass_line_c_16; |
| 277 | else | 278 | else |
| 278 | tinterlace->lowpass_line = lowpass_line_c; | 279 | tinterlace->lowpass_line = lowpass_line_c; |
| 279 | if (ARCH_X86) | 280 | #if ARCH_X86 |
| 280 | ff_tinterlace_init_x86(tinterlace); | 281 | ff_tinterlace_init_x86(tinterlace); |
| 282 | #endif | ||
| 281 | } | 283 | } |
| 282 | 284 | ||
| 283 | av_log(ctx, AV_LOG_VERBOSE, "mode:%d filter:%s h:%d -> h:%d\n", tinterlace->mode, | 285 | av_log(ctx, AV_LOG_VERBOSE, "mode:%d filter:%s h:%d -> h:%d\n", tinterlace->mode, |
| @@ -235,13 +235,13 @@ static int config_props_output(AVFilterLink *outlink) · 234 unmodified lines | |||
| 235 | } | 235 | } |
| 236 | } | 236 | } |
| 237 | 237 | ||
| 238 | if (ARCH_X86) { | 238 | #if ARCH_X86 |
| 239 | for (int i = 0; i < 4; i++) { | 239 | for (int i = 0; i < 4; i++) { |
| 240 | TransVtable *v = &s->vtables[i]; | 240 | TransVtable *v = &s->vtables[i]; |
| 241 | 241 | ||
| 242 | ff_transpose_init_x86(v, s->pixsteps[i]); | 242 | ff_transpose_init_x86(v, s->pixsteps[i]); |
| 243 | } | ||
| 244 | } | 243 | } |
| 244 | #endif | ||
| 245 | 245 | ||
| 246 | av_log(ctx, AV_LOG_VERBOSE, | 246 | av_log(ctx, AV_LOG_VERBOSE, |
| 247 | "w:%d h:%d dir:%d -> w:%d h:%d rotation:%s vflip:%d\n", | 247 | "w:%d h:%d dir:%d -> w:%d h:%d rotation:%s vflip:%d\n", |
| @@ -389,8 +389,9 @@ void ff_v360_init(V360Context *s, int depth) · 388 unmodified lines | |||
| 389 | break; | 389 | break; |
| 390 | } | 390 | } |
| 391 | 391 | ||
| 392 | if (ARCH_X86) | 392 | #if ARCH_X86 |
| 393 | ff_v360_init_x86(s, depth); | 393 | ff_v360_init_x86(s, depth); |
| 394 | #endif | ||
| 394 | } | 395 | } |
| 395 | 396 | ||
| 396 | /** | 397 | /** |
| @@ -317,8 +317,9 @@ static int config_input(AVFilterLink *inlink) · 316 unmodified lines | |||
| 317 | s->dsp.filter_scale = filter16_scale; | 317 | s->dsp.filter_scale = filter16_scale; |
| 318 | } | 318 | } |
| 319 | 319 | ||
| 320 | if (ARCH_X86) | 320 | #if ARCH_X86 |
| 321 | ff_w3fdif_init_x86(&s->dsp, depth); | 321 | ff_w3fdif_init_x86(&s->dsp, depth); |
| 322 | #endif | ||
| 322 | 323 | ||
| 323 | return 0; | 324 | return 0; |
| 324 | } | 325 | } |
| @@ -311,8 +311,9 @@ static int config_output(AVFilterLink *outlink) · 310 unmodified lines | |||
| 311 | s->filter_edges = filter_edges; | 311 | s->filter_edges = filter_edges; |
| 312 | } | 312 | } |
| 313 | 313 | ||
| 314 | if (ARCH_X86) | 314 | #if ARCH_X86 |
| 315 | ff_yadif_init_x86(s); | 315 | ff_yadif_init_x86(s); |
| 316 | #endif | ||
| 316 | 317 | ||
| 317 | return 0; | 318 | return 0; |
| 318 | } | 319 | } |