Mercurial > libavcodec.hg
comparison dnxhdenc.c @ 10388:08e50bcdcbf1 libavcodec
Reindent after removing the outer for loops in the execute2 patch
author | reimar |
---|---|
date | Mon, 12 Oct 2009 14:46:53 +0000 |
parents | 19a4f1ecd8fe |
children | 5afea08b89d4 |
comparison
equal
deleted
inserted
replaced
10387:19a4f1ecd8fe | 10388:08e50bcdcbf1 |
---|---|
398 DNXHDEncContext *ctx = avctx->priv_data; | 398 DNXHDEncContext *ctx = avctx->priv_data; |
399 int mb_y = jobnr, mb_x; | 399 int mb_y = jobnr, mb_x; |
400 int qscale = ctx->qscale; | 400 int qscale = ctx->qscale; |
401 ctx = ctx->thread[threadnr]; | 401 ctx = ctx->thread[threadnr]; |
402 | 402 |
403 ctx->m.last_dc[0] = | 403 ctx->m.last_dc[0] = |
404 ctx->m.last_dc[1] = | 404 ctx->m.last_dc[1] = |
405 ctx->m.last_dc[2] = 1024; | 405 ctx->m.last_dc[2] = 1024; |
406 | 406 |
407 for (mb_x = 0; mb_x < ctx->m.mb_width; mb_x++) { | 407 for (mb_x = 0; mb_x < ctx->m.mb_width; mb_x++) { |
408 unsigned mb = mb_y * ctx->m.mb_width + mb_x; | 408 unsigned mb = mb_y * ctx->m.mb_width + mb_x; |
409 int ssd = 0; | 409 int ssd = 0; |
410 int ac_bits = 0; | 410 int ac_bits = 0; |
411 int dc_bits = 0; | 411 int dc_bits = 0; |
412 int i; | 412 int i; |
413 | 413 |
414 dnxhd_get_blocks(ctx, mb_x, mb_y); | 414 dnxhd_get_blocks(ctx, mb_x, mb_y); |
415 | 415 |
416 for (i = 0; i < 8; i++) { | 416 for (i = 0; i < 8; i++) { |
417 DECLARE_ALIGNED_16(DCTELEM, block[64]); | 417 DECLARE_ALIGNED_16(DCTELEM, block[64]); |
418 DCTELEM *src_block = ctx->blocks[i]; | 418 DCTELEM *src_block = ctx->blocks[i]; |
419 int overflow, nbits, diff, last_index; | 419 int overflow, nbits, diff, last_index; |
420 int n = dnxhd_switch_matrix(ctx, i); | 420 int n = dnxhd_switch_matrix(ctx, i); |
421 | 421 |
422 memcpy(block, src_block, sizeof(block)); | 422 memcpy(block, src_block, sizeof(block)); |
423 last_index = ctx->m.dct_quantize((MpegEncContext*)ctx, block, i, qscale, &overflow); | 423 last_index = ctx->m.dct_quantize((MpegEncContext*)ctx, block, i, qscale, &overflow); |
424 ac_bits += dnxhd_calc_ac_bits(ctx, block, last_index); | 424 ac_bits += dnxhd_calc_ac_bits(ctx, block, last_index); |
425 | 425 |
426 diff = block[0] - ctx->m.last_dc[n]; | 426 diff = block[0] - ctx->m.last_dc[n]; |
427 if (diff < 0) nbits = av_log2_16bit(-2*diff); | 427 if (diff < 0) nbits = av_log2_16bit(-2*diff); |
428 else nbits = av_log2_16bit( 2*diff); | 428 else nbits = av_log2_16bit( 2*diff); |
429 dc_bits += ctx->cid_table->dc_bits[nbits] + nbits; | 429 dc_bits += ctx->cid_table->dc_bits[nbits] + nbits; |
430 | 430 |
431 ctx->m.last_dc[n] = block[0]; | 431 ctx->m.last_dc[n] = block[0]; |
432 | 432 |
433 if (avctx->mb_decision == FF_MB_DECISION_RD || !RC_VARIANCE) { | 433 if (avctx->mb_decision == FF_MB_DECISION_RD || !RC_VARIANCE) { |
434 dnxhd_unquantize_c(ctx, block, i, qscale, last_index); | 434 dnxhd_unquantize_c(ctx, block, i, qscale, last_index); |
435 ctx->m.dsp.idct(block); | 435 ctx->m.dsp.idct(block); |
436 ssd += dnxhd_ssd_block(block, src_block); | 436 ssd += dnxhd_ssd_block(block, src_block); |
437 } | |
438 } | 437 } |
439 ctx->mb_rc[qscale][mb].ssd = ssd; | 438 } |
440 ctx->mb_rc[qscale][mb].bits = ac_bits+dc_bits+12+8*ctx->vlc_bits[0]; | 439 ctx->mb_rc[qscale][mb].ssd = ssd; |
441 } | 440 ctx->mb_rc[qscale][mb].bits = ac_bits+dc_bits+12+8*ctx->vlc_bits[0]; |
441 } | |
442 return 0; | 442 return 0; |
443 } | 443 } |
444 | 444 |
445 static int dnxhd_encode_thread(AVCodecContext *avctx, void *arg, int jobnr, int threadnr) | 445 static int dnxhd_encode_thread(AVCodecContext *avctx, void *arg, int jobnr, int threadnr) |
446 { | 446 { |
447 DNXHDEncContext *ctx = avctx->priv_data; | 447 DNXHDEncContext *ctx = avctx->priv_data; |
448 int mb_y = jobnr, mb_x; | 448 int mb_y = jobnr, mb_x; |
449 ctx = ctx->thread[threadnr]; | 449 ctx = ctx->thread[threadnr]; |
450 init_put_bits(&ctx->m.pb, (uint8_t *)arg + 640 + ctx->slice_offs[jobnr], ctx->slice_size[jobnr]); | 450 init_put_bits(&ctx->m.pb, (uint8_t *)arg + 640 + ctx->slice_offs[jobnr], ctx->slice_size[jobnr]); |
451 | 451 |
452 ctx->m.last_dc[0] = | 452 ctx->m.last_dc[0] = |
453 ctx->m.last_dc[1] = | 453 ctx->m.last_dc[1] = |
454 ctx->m.last_dc[2] = 1024; | 454 ctx->m.last_dc[2] = 1024; |
455 for (mb_x = 0; mb_x < ctx->m.mb_width; mb_x++) { | 455 for (mb_x = 0; mb_x < ctx->m.mb_width; mb_x++) { |
456 unsigned mb = mb_y * ctx->m.mb_width + mb_x; | 456 unsigned mb = mb_y * ctx->m.mb_width + mb_x; |
457 int qscale = ctx->mb_qscale[mb]; | 457 int qscale = ctx->mb_qscale[mb]; |
458 int i; | 458 int i; |
459 | 459 |
460 put_bits(&ctx->m.pb, 12, qscale<<1); | 460 put_bits(&ctx->m.pb, 12, qscale<<1); |
461 | 461 |
462 dnxhd_get_blocks(ctx, mb_x, mb_y); | 462 dnxhd_get_blocks(ctx, mb_x, mb_y); |
463 | 463 |
464 for (i = 0; i < 8; i++) { | 464 for (i = 0; i < 8; i++) { |
465 DCTELEM *block = ctx->blocks[i]; | 465 DCTELEM *block = ctx->blocks[i]; |
466 int last_index, overflow; | 466 int last_index, overflow; |
467 int n = dnxhd_switch_matrix(ctx, i); | 467 int n = dnxhd_switch_matrix(ctx, i); |
468 last_index = ctx->m.dct_quantize((MpegEncContext*)ctx, block, i, qscale, &overflow); | 468 last_index = ctx->m.dct_quantize((MpegEncContext*)ctx, block, i, qscale, &overflow); |
469 //START_TIMER; | 469 //START_TIMER; |
470 dnxhd_encode_block(ctx, block, last_index, n); | 470 dnxhd_encode_block(ctx, block, last_index, n); |
471 //STOP_TIMER("encode_block"); | 471 //STOP_TIMER("encode_block"); |
472 } | 472 } |
473 } | 473 } |
474 if (put_bits_count(&ctx->m.pb)&31) | 474 if (put_bits_count(&ctx->m.pb)&31) |
475 put_bits(&ctx->m.pb, 32-(put_bits_count(&ctx->m.pb)&31), 0); | 475 put_bits(&ctx->m.pb, 32-(put_bits_count(&ctx->m.pb)&31), 0); |
476 flush_put_bits(&ctx->m.pb); | 476 flush_put_bits(&ctx->m.pb); |
477 return 0; | 477 return 0; |
478 } | 478 } |
479 | 479 |
480 static void dnxhd_setup_threads_slices(DNXHDEncContext *ctx) | 480 static void dnxhd_setup_threads_slices(DNXHDEncContext *ctx) |
499 static int dnxhd_mb_var_thread(AVCodecContext *avctx, void *arg, int jobnr, int threadnr) | 499 static int dnxhd_mb_var_thread(AVCodecContext *avctx, void *arg, int jobnr, int threadnr) |
500 { | 500 { |
501 DNXHDEncContext *ctx = avctx->priv_data; | 501 DNXHDEncContext *ctx = avctx->priv_data; |
502 int mb_y = jobnr, mb_x; | 502 int mb_y = jobnr, mb_x; |
503 ctx = ctx->thread[threadnr]; | 503 ctx = ctx->thread[threadnr]; |
504 for (mb_x = 0; mb_x < ctx->m.mb_width; mb_x++) { | 504 for (mb_x = 0; mb_x < ctx->m.mb_width; mb_x++) { |
505 unsigned mb = mb_y * ctx->m.mb_width + mb_x; | 505 unsigned mb = mb_y * ctx->m.mb_width + mb_x; |
506 uint8_t *pix = ctx->thread[0]->src[0] + ((mb_y<<4) * ctx->m.linesize) + (mb_x<<4); | 506 uint8_t *pix = ctx->thread[0]->src[0] + ((mb_y<<4) * ctx->m.linesize) + (mb_x<<4); |
507 int sum = ctx->m.dsp.pix_sum(pix, ctx->m.linesize); | 507 int sum = ctx->m.dsp.pix_sum(pix, ctx->m.linesize); |
508 int varc = (ctx->m.dsp.pix_norm1(pix, ctx->m.linesize) - (((unsigned)(sum*sum))>>8)+128)>>8; | 508 int varc = (ctx->m.dsp.pix_norm1(pix, ctx->m.linesize) - (((unsigned)(sum*sum))>>8)+128)>>8; |
509 ctx->mb_cmp[mb].value = varc; | 509 ctx->mb_cmp[mb].value = varc; |
510 ctx->mb_cmp[mb].mb = mb; | 510 ctx->mb_cmp[mb].mb = mb; |
511 } | 511 } |
512 return 0; | 512 return 0; |
513 } | 513 } |
514 | 514 |
515 static int dnxhd_encode_rdo(AVCodecContext *avctx, DNXHDEncContext *ctx) | 515 static int dnxhd_encode_rdo(AVCodecContext *avctx, DNXHDEncContext *ctx) |
516 { | 516 { |