Mercurial > libavcodec.hg
comparison vp56.c @ 5715:fbd55dbbf809 libavcodec
cosmetic: indent
author | aurel |
---|---|
date | Tue, 25 Sep 2007 19:16:38 +0000 |
parents | 314be1cfdcb0 |
children | 7577e3036290 |
comparison
equal
deleted
inserted
replaced
5714:314be1cfdcb0 | 5715:fbd55dbbf809 |
---|---|
508 alpha_offset = bytestream_get_be24(&buf); | 508 alpha_offset = bytestream_get_be24(&buf); |
509 buf_size -= 3; | 509 buf_size -= 3; |
510 } | 510 } |
511 | 511 |
512 for (is_alpha=0; is_alpha < 1+s->has_alpha; is_alpha++) { | 512 for (is_alpha=0; is_alpha < 1+s->has_alpha; is_alpha++) { |
513 int mb_row, mb_col, mb_row_flip, mb_offset = 0; | 513 int mb_row, mb_col, mb_row_flip, mb_offset = 0; |
514 int block, y, uv, stride_y, stride_uv; | 514 int block, y, uv, stride_y, stride_uv; |
515 int golden_frame = 0; | 515 int golden_frame = 0; |
516 int res; | 516 int res; |
517 | 517 |
518 s->modelp = &s->models[is_alpha]; | 518 s->modelp = &s->models[is_alpha]; |
519 | 519 |
520 res = s->parse_header(s, buf, buf_size, &golden_frame); | 520 res = s->parse_header(s, buf, buf_size, &golden_frame); |
521 if (!res) | 521 if (!res) |
522 return -1; | |
523 | |
524 if (!is_alpha) { | |
525 p->reference = 1; | |
526 if (avctx->get_buffer(avctx, p) < 0) { | |
527 av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); | |
528 return -1; | |
529 } | |
530 | |
531 if (res == 2) | |
532 if (vp56_size_changed(avctx)) { | |
533 avctx->release_buffer(avctx, p); | |
534 return -1; | 522 return -1; |
535 } | 523 |
536 } | 524 if (!is_alpha) { |
537 | 525 p->reference = 1; |
538 if (p->key_frame) { | 526 if (avctx->get_buffer(avctx, p) < 0) { |
539 p->pict_type = FF_I_TYPE; | 527 av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); |
540 s->default_models_init(s); | 528 return -1; |
541 for (block=0; block<s->mb_height*s->mb_width; block++) | 529 } |
542 s->macroblocks[block].type = VP56_MB_INTRA; | 530 |
543 } else { | 531 if (res == 2) |
544 p->pict_type = FF_P_TYPE; | 532 if (vp56_size_changed(avctx)) { |
545 vp56_parse_mb_type_models(s); | 533 avctx->release_buffer(avctx, p); |
546 s->parse_vector_models(s); | 534 return -1; |
547 s->mb_type = VP56_MB_INTER_NOVEC_PF; | 535 } |
548 } | 536 } |
549 | 537 |
550 s->parse_coeff_models(s); | 538 if (p->key_frame) { |
551 | 539 p->pict_type = FF_I_TYPE; |
552 memset(s->prev_dc, 0, sizeof(s->prev_dc)); | 540 s->default_models_init(s); |
553 s->prev_dc[1][VP56_FRAME_CURRENT] = 128; | 541 for (block=0; block<s->mb_height*s->mb_width; block++) |
554 s->prev_dc[2][VP56_FRAME_CURRENT] = 128; | 542 s->macroblocks[block].type = VP56_MB_INTRA; |
555 | 543 } else { |
556 for (block=0; block < 4*s->mb_width+6; block++) { | 544 p->pict_type = FF_P_TYPE; |
557 s->above_blocks[block].ref_frame = -1; | 545 vp56_parse_mb_type_models(s); |
558 s->above_blocks[block].dc_coeff = 0; | 546 s->parse_vector_models(s); |
559 s->above_blocks[block].not_null_dc = 0; | 547 s->mb_type = VP56_MB_INTER_NOVEC_PF; |
560 } | 548 } |
561 s->above_blocks[2*s->mb_width + 2].ref_frame = 0; | 549 |
562 s->above_blocks[3*s->mb_width + 4].ref_frame = 0; | 550 s->parse_coeff_models(s); |
563 | 551 |
564 stride_y = p->linesize[0]; | 552 memset(s->prev_dc, 0, sizeof(s->prev_dc)); |
565 stride_uv = p->linesize[1]; | 553 s->prev_dc[1][VP56_FRAME_CURRENT] = 128; |
566 | 554 s->prev_dc[2][VP56_FRAME_CURRENT] = 128; |
567 if (s->flip < 0) | 555 |
568 mb_offset = 7; | 556 for (block=0; block < 4*s->mb_width+6; block++) { |
569 | 557 s->above_blocks[block].ref_frame = -1; |
570 /* main macroblocks loop */ | 558 s->above_blocks[block].dc_coeff = 0; |
571 for (mb_row=0; mb_row<s->mb_height; mb_row++) { | 559 s->above_blocks[block].not_null_dc = 0; |
560 } | |
561 s->above_blocks[2*s->mb_width + 2].ref_frame = 0; | |
562 s->above_blocks[3*s->mb_width + 4].ref_frame = 0; | |
563 | |
564 stride_y = p->linesize[0]; | |
565 stride_uv = p->linesize[1]; | |
566 | |
572 if (s->flip < 0) | 567 if (s->flip < 0) |
573 mb_row_flip = s->mb_height - mb_row - 1; | 568 mb_offset = 7; |
574 else | 569 |
575 mb_row_flip = mb_row; | 570 /* main macroblocks loop */ |
576 | 571 for (mb_row=0; mb_row<s->mb_height; mb_row++) { |
577 for (block=0; block<4; block++) { | 572 if (s->flip < 0) |
578 s->left_block[block].ref_frame = -1; | 573 mb_row_flip = s->mb_height - mb_row - 1; |
579 s->left_block[block].dc_coeff = 0; | 574 else |
580 s->left_block[block].not_null_dc = 0; | 575 mb_row_flip = mb_row; |
581 memset(s->coeff_ctx[block], 0, 64*sizeof(s->coeff_ctx[block][0])); | 576 |
582 } | 577 for (block=0; block<4; block++) { |
583 memset(s->coeff_ctx_last, 24, sizeof(s->coeff_ctx_last)); | 578 s->left_block[block].ref_frame = -1; |
584 | 579 s->left_block[block].dc_coeff = 0; |
585 s->above_block_idx[0] = 1; | 580 s->left_block[block].not_null_dc = 0; |
586 s->above_block_idx[1] = 2; | 581 memset(s->coeff_ctx[block], 0, 64*sizeof(s->coeff_ctx[block][0])); |
587 s->above_block_idx[2] = 1; | 582 } |
588 s->above_block_idx[3] = 2; | 583 memset(s->coeff_ctx_last, 24, sizeof(s->coeff_ctx_last)); |
589 s->above_block_idx[4] = 2*s->mb_width + 2 + 1; | 584 |
590 s->above_block_idx[5] = 3*s->mb_width + 4 + 1; | 585 s->above_block_idx[0] = 1; |
591 | 586 s->above_block_idx[1] = 2; |
592 s->block_offset[s->frbi] = (mb_row_flip*16 + mb_offset) * stride_y; | 587 s->above_block_idx[2] = 1; |
593 s->block_offset[s->srbi] = s->block_offset[s->frbi] + 8*stride_y; | 588 s->above_block_idx[3] = 2; |
594 s->block_offset[1] = s->block_offset[0] + 8; | 589 s->above_block_idx[4] = 2*s->mb_width + 2 + 1; |
595 s->block_offset[3] = s->block_offset[2] + 8; | 590 s->above_block_idx[5] = 3*s->mb_width + 4 + 1; |
596 s->block_offset[4] = (mb_row_flip*8 + mb_offset) * stride_uv; | 591 |
597 s->block_offset[5] = s->block_offset[4]; | 592 s->block_offset[s->frbi] = (mb_row_flip*16 + mb_offset) * stride_y; |
598 | 593 s->block_offset[s->srbi] = s->block_offset[s->frbi] + 8*stride_y; |
599 for (mb_col=0; mb_col<s->mb_width; mb_col++) { | 594 s->block_offset[1] = s->block_offset[0] + 8; |
600 vp56_decode_mb(s, mb_row, mb_col, is_alpha); | 595 s->block_offset[3] = s->block_offset[2] + 8; |
601 | 596 s->block_offset[4] = (mb_row_flip*8 + mb_offset) * stride_uv; |
602 for (y=0; y<4; y++) { | 597 s->block_offset[5] = s->block_offset[4]; |
603 s->above_block_idx[y] += 2; | 598 |
604 s->block_offset[y] += 16; | 599 for (mb_col=0; mb_col<s->mb_width; mb_col++) { |
605 } | 600 vp56_decode_mb(s, mb_row, mb_col, is_alpha); |
606 | 601 |
607 for (uv=4; uv<6; uv++) { | 602 for (y=0; y<4; y++) { |
608 s->above_block_idx[uv] += 1; | 603 s->above_block_idx[y] += 2; |
609 s->block_offset[uv] += 8; | 604 s->block_offset[y] += 16; |
610 } | 605 } |
611 } | 606 |
612 } | 607 for (uv=4; uv<6; uv++) { |
613 | 608 s->above_block_idx[uv] += 1; |
614 if (p->key_frame || golden_frame) { | 609 s->block_offset[uv] += 8; |
615 if (s->framep[VP56_FRAME_GOLDEN]->data[0] && | 610 } |
616 s->framep[VP56_FRAME_GOLDEN] != s->framep[VP56_FRAME_GOLDEN2]) | 611 } |
617 avctx->release_buffer(avctx, s->framep[VP56_FRAME_GOLDEN]); | 612 } |
618 s->framep[VP56_FRAME_GOLDEN] = p; | 613 |
619 } | 614 if (p->key_frame || golden_frame) { |
620 | 615 if (s->framep[VP56_FRAME_GOLDEN]->data[0] && |
621 if (s->has_alpha) { | 616 s->framep[VP56_FRAME_GOLDEN] != s->framep[VP56_FRAME_GOLDEN2]) |
622 FFSWAP(AVFrame *, s->framep[VP56_FRAME_GOLDEN], | 617 avctx->release_buffer(avctx, s->framep[VP56_FRAME_GOLDEN]); |
623 s->framep[VP56_FRAME_GOLDEN2]); | 618 s->framep[VP56_FRAME_GOLDEN] = p; |
624 buf += alpha_offset; | 619 } |
625 buf_size -= alpha_offset; | 620 |
626 } | 621 if (s->has_alpha) { |
622 FFSWAP(AVFrame *, s->framep[VP56_FRAME_GOLDEN], | |
623 s->framep[VP56_FRAME_GOLDEN2]); | |
624 buf += alpha_offset; | |
625 buf_size -= alpha_offset; | |
626 } | |
627 } | 627 } |
628 | 628 |
629 if (s->framep[VP56_FRAME_PREVIOUS] == s->framep[VP56_FRAME_GOLDEN] || | 629 if (s->framep[VP56_FRAME_PREVIOUS] == s->framep[VP56_FRAME_GOLDEN] || |
630 s->framep[VP56_FRAME_PREVIOUS] == s->framep[VP56_FRAME_GOLDEN2]) { | 630 s->framep[VP56_FRAME_PREVIOUS] == s->framep[VP56_FRAME_GOLDEN2]) { |
631 if (s->framep[VP56_FRAME_UNUSED] != s->framep[VP56_FRAME_GOLDEN] && | 631 if (s->framep[VP56_FRAME_UNUSED] != s->framep[VP56_FRAME_GOLDEN] && |