Mercurial > libavcodec.hg
comparison dvdata.h @ 8175:0d1c9c936a52 libavcodec
Making idct factor tables dynamically allocated
author | romansh |
---|---|
date | Thu, 20 Nov 2008 01:40:40 +0000 |
parents | ab31736c0f23 |
children | 04423b2f6e0b |
comparison
equal
deleted
inserted
replaced
8174:f11197441364 | 8175:0d1c9c936a52 |
---|---|
51 int ltc_divisor; /* FPS from the LTS standpoint */ | 51 int ltc_divisor; /* FPS from the LTS standpoint */ |
52 int height; /* picture height in pixels */ | 52 int height; /* picture height in pixels */ |
53 int width; /* picture width in pixels */ | 53 int width; /* picture width in pixels */ |
54 AVRational sar[2]; /* sample aspect ratios for 4:3 and 16:9 */ | 54 AVRational sar[2]; /* sample aspect ratios for 4:3 and 16:9 */ |
55 DVwork_chunk *work_chunks; /* each thread gets its own chunk of frame to work on */ | 55 DVwork_chunk *work_chunks; /* each thread gets its own chunk of frame to work on */ |
56 uint32_t *idct_factor; /* set of iDCT factor tables */ | |
56 enum PixelFormat pix_fmt; /* picture pixel format */ | 57 enum PixelFormat pix_fmt; /* picture pixel format */ |
57 int bpm; /* blocks per macroblock */ | 58 int bpm; /* blocks per macroblock */ |
58 const uint8_t *block_sizes; /* AC block sizes, in bits */ | 59 const uint8_t *block_sizes; /* AC block sizes, in bits */ |
59 int audio_stride; /* size of audio_shuffle table */ | 60 int audio_stride; /* size of audio_shuffle table */ |
60 int audio_min_samples[3]; /* min amount of audio samples */ | 61 int audio_min_samples[3]; /* min amount of audio samples */ |
467 static DVwork_chunk work_chunks_dv100palp [2*12*27]; | 468 static DVwork_chunk work_chunks_dv100palp [2*12*27]; |
468 static DVwork_chunk work_chunks_dv100ntscp[2*10*27]; | 469 static DVwork_chunk work_chunks_dv100ntscp[2*10*27]; |
469 static DVwork_chunk work_chunks_dv100pali [4*12*27]; | 470 static DVwork_chunk work_chunks_dv100pali [4*12*27]; |
470 static DVwork_chunk work_chunks_dv100ntsci[4*10*27]; | 471 static DVwork_chunk work_chunks_dv100ntsci[4*10*27]; |
471 | 472 |
473 static uint32_t dv_idct_factor_sd [2*2*22*64]; | |
474 static uint32_t dv_idct_factor_hd1080[2*4*16*64]; | |
475 static uint32_t dv_idct_factor_hd720 [2*4*16*64]; | |
476 | |
472 static const DVprofile dv_profiles[] = { | 477 static const DVprofile dv_profiles[] = { |
473 { .dsf = 0, | 478 { .dsf = 0, |
474 .video_stype = 0x0, | 479 .video_stype = 0x0, |
475 .frame_size = 120000, /* IEC 61834, SMPTE-314M - 525/60 (NTSC) */ | 480 .frame_size = 120000, /* IEC 61834, SMPTE-314M - 525/60 (NTSC) */ |
476 .difseg_size = 10, | 481 .difseg_size = 10, |
479 .ltc_divisor = 30, | 484 .ltc_divisor = 30, |
480 .height = 480, | 485 .height = 480, |
481 .width = 720, | 486 .width = 720, |
482 .sar = {{10, 11}, {40, 33}}, | 487 .sar = {{10, 11}, {40, 33}}, |
483 .work_chunks = &work_chunks_dv25ntsc[0], | 488 .work_chunks = &work_chunks_dv25ntsc[0], |
489 .idct_factor = &dv_idct_factor_sd[0], | |
484 .pix_fmt = PIX_FMT_YUV411P, | 490 .pix_fmt = PIX_FMT_YUV411P, |
485 .bpm = 6, | 491 .bpm = 6, |
486 .block_sizes = block_sizes_dv2550, | 492 .block_sizes = block_sizes_dv2550, |
487 .audio_stride = 90, | 493 .audio_stride = 90, |
488 .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32kHz */ | 494 .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32kHz */ |
498 .ltc_divisor = 25, | 504 .ltc_divisor = 25, |
499 .height = 576, | 505 .height = 576, |
500 .width = 720, | 506 .width = 720, |
501 .sar = {{59, 54}, {118, 81}}, | 507 .sar = {{59, 54}, {118, 81}}, |
502 .work_chunks = &work_chunks_dv25pal[0], | 508 .work_chunks = &work_chunks_dv25pal[0], |
509 .idct_factor = &dv_idct_factor_sd[0], | |
503 .pix_fmt = PIX_FMT_YUV420P, | 510 .pix_fmt = PIX_FMT_YUV420P, |
504 .bpm = 6, | 511 .bpm = 6, |
505 .block_sizes = block_sizes_dv2550, | 512 .block_sizes = block_sizes_dv2550, |
506 .audio_stride = 108, | 513 .audio_stride = 108, |
507 .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32kHz */ | 514 .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32kHz */ |
517 .ltc_divisor = 25, | 524 .ltc_divisor = 25, |
518 .height = 576, | 525 .height = 576, |
519 .width = 720, | 526 .width = 720, |
520 .sar = {{59, 54}, {118, 81}}, | 527 .sar = {{59, 54}, {118, 81}}, |
521 .work_chunks = &work_chunks_dv25pal411[0], | 528 .work_chunks = &work_chunks_dv25pal411[0], |
529 .idct_factor = &dv_idct_factor_sd[0], | |
522 .pix_fmt = PIX_FMT_YUV411P, | 530 .pix_fmt = PIX_FMT_YUV411P, |
523 .bpm = 6, | 531 .bpm = 6, |
524 .block_sizes = block_sizes_dv2550, | 532 .block_sizes = block_sizes_dv2550, |
525 .audio_stride = 108, | 533 .audio_stride = 108, |
526 .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32kHz */ | 534 .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32kHz */ |
536 .ltc_divisor = 30, | 544 .ltc_divisor = 30, |
537 .height = 480, | 545 .height = 480, |
538 .width = 720, | 546 .width = 720, |
539 .sar = {{10, 11}, {40, 33}}, | 547 .sar = {{10, 11}, {40, 33}}, |
540 .work_chunks = &work_chunks_dv50ntsc[0], | 548 .work_chunks = &work_chunks_dv50ntsc[0], |
549 .idct_factor = &dv_idct_factor_sd[0], | |
541 .pix_fmt = PIX_FMT_YUV422P, | 550 .pix_fmt = PIX_FMT_YUV422P, |
542 .bpm = 6, | 551 .bpm = 6, |
543 .block_sizes = block_sizes_dv2550, | 552 .block_sizes = block_sizes_dv2550, |
544 .audio_stride = 90, | 553 .audio_stride = 90, |
545 .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32kHz */ | 554 .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32kHz */ |
555 .ltc_divisor = 25, | 564 .ltc_divisor = 25, |
556 .height = 576, | 565 .height = 576, |
557 .width = 720, | 566 .width = 720, |
558 .sar = {{59, 54}, {118, 81}}, | 567 .sar = {{59, 54}, {118, 81}}, |
559 .work_chunks = &work_chunks_dv50pal[0], | 568 .work_chunks = &work_chunks_dv50pal[0], |
569 .idct_factor = &dv_idct_factor_sd[0], | |
560 .pix_fmt = PIX_FMT_YUV422P, | 570 .pix_fmt = PIX_FMT_YUV422P, |
561 .bpm = 6, | 571 .bpm = 6, |
562 .block_sizes = block_sizes_dv2550, | 572 .block_sizes = block_sizes_dv2550, |
563 .audio_stride = 108, | 573 .audio_stride = 108, |
564 .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32kHz */ | 574 .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32kHz */ |
574 .ltc_divisor = 30, | 584 .ltc_divisor = 30, |
575 .height = 1080, | 585 .height = 1080, |
576 .width = 1280, | 586 .width = 1280, |
577 .sar = {{1, 1}, {1, 1}}, | 587 .sar = {{1, 1}, {1, 1}}, |
578 .work_chunks = &work_chunks_dv100ntsci[0], | 588 .work_chunks = &work_chunks_dv100ntsci[0], |
589 .idct_factor = &dv_idct_factor_hd1080[0], | |
579 .pix_fmt = PIX_FMT_YUV422P, | 590 .pix_fmt = PIX_FMT_YUV422P, |
580 .bpm = 8, | 591 .bpm = 8, |
581 .block_sizes = block_sizes_dv100, | 592 .block_sizes = block_sizes_dv100, |
582 .audio_stride = 90, | 593 .audio_stride = 90, |
583 .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32kHz */ | 594 .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32kHz */ |
593 .ltc_divisor = 25, | 604 .ltc_divisor = 25, |
594 .height = 1080, | 605 .height = 1080, |
595 .width = 1440, | 606 .width = 1440, |
596 .sar = {{1, 1}, {1, 1}}, | 607 .sar = {{1, 1}, {1, 1}}, |
597 .work_chunks = &work_chunks_dv100pali[0], | 608 .work_chunks = &work_chunks_dv100pali[0], |
609 .idct_factor = &dv_idct_factor_hd1080[0], | |
598 .pix_fmt = PIX_FMT_YUV422P, | 610 .pix_fmt = PIX_FMT_YUV422P, |
599 .bpm = 8, | 611 .bpm = 8, |
600 .block_sizes = block_sizes_dv100, | 612 .block_sizes = block_sizes_dv100, |
601 .audio_stride = 108, | 613 .audio_stride = 108, |
602 .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32kHz */ | 614 .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32kHz */ |
612 .ltc_divisor = 60, | 624 .ltc_divisor = 60, |
613 .height = 720, | 625 .height = 720, |
614 .width = 960, | 626 .width = 960, |
615 .sar = {{1, 1}, {1, 1}}, | 627 .sar = {{1, 1}, {1, 1}}, |
616 .work_chunks = &work_chunks_dv100ntscp[0], | 628 .work_chunks = &work_chunks_dv100ntscp[0], |
629 .idct_factor = &dv_idct_factor_hd720[0], | |
617 .pix_fmt = PIX_FMT_YUV422P, | 630 .pix_fmt = PIX_FMT_YUV422P, |
618 .bpm = 8, | 631 .bpm = 8, |
619 .block_sizes = block_sizes_dv100, | 632 .block_sizes = block_sizes_dv100, |
620 .audio_stride = 90, | 633 .audio_stride = 90, |
621 .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32kHz */ | 634 .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32kHz */ |
631 .ltc_divisor = 50, | 644 .ltc_divisor = 50, |
632 .height = 720, | 645 .height = 720, |
633 .width = 960, | 646 .width = 960, |
634 .sar = {{1, 1}, {1, 1}}, | 647 .sar = {{1, 1}, {1, 1}}, |
635 .work_chunks = &work_chunks_dv100palp[0], | 648 .work_chunks = &work_chunks_dv100palp[0], |
649 .idct_factor = &dv_idct_factor_hd720[0], | |
636 .pix_fmt = PIX_FMT_YUV422P, | 650 .pix_fmt = PIX_FMT_YUV422P, |
637 .bpm = 8, | 651 .bpm = 8, |
638 .block_sizes = block_sizes_dv100, | 652 .block_sizes = block_sizes_dv100, |
639 .audio_stride = 90, | 653 .audio_stride = 90, |
640 .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32kHz */ | 654 .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32kHz */ |