|
|
@ -24,20 +24,6 @@ |
|
|
|
#include "avcodec.h" |
|
|
|
#include "avcodec.h" |
|
|
|
#include "dv_profile.h" |
|
|
|
#include "dv_profile.h" |
|
|
|
|
|
|
|
|
|
|
|
static DVwork_chunk work_chunks_dv25pal [1*12*27]; |
|
|
|
|
|
|
|
static DVwork_chunk work_chunks_dv25pal411[1*12*27]; |
|
|
|
|
|
|
|
static DVwork_chunk work_chunks_dv25ntsc [1*10*27]; |
|
|
|
|
|
|
|
static DVwork_chunk work_chunks_dv50pal [2*12*27]; |
|
|
|
|
|
|
|
static DVwork_chunk work_chunks_dv50ntsc [2*10*27]; |
|
|
|
|
|
|
|
static DVwork_chunk work_chunks_dv100palp [2*12*27]; |
|
|
|
|
|
|
|
static DVwork_chunk work_chunks_dv100ntscp[2*10*27]; |
|
|
|
|
|
|
|
static DVwork_chunk work_chunks_dv100pali [4*12*27]; |
|
|
|
|
|
|
|
static DVwork_chunk work_chunks_dv100ntsci[4*10*27]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static uint32_t dv_idct_factor_sd [2*2*22*64]; |
|
|
|
|
|
|
|
static uint32_t dv_idct_factor_hd1080[2*4*16*64]; |
|
|
|
|
|
|
|
static uint32_t dv_idct_factor_hd720 [2*4*16*64]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static const uint8_t dv_audio_shuffle525[10][9] = { |
|
|
|
static const uint8_t dv_audio_shuffle525[10][9] = { |
|
|
|
{ 0, 30, 60, 20, 50, 80, 10, 40, 70 }, /* 1st channel */ |
|
|
|
{ 0, 30, 60, 20, 50, 80, 10, 40, 70 }, /* 1st channel */ |
|
|
|
{ 6, 36, 66, 26, 56, 86, 16, 46, 76 }, |
|
|
|
{ 6, 36, 66, 26, 56, 86, 16, 46, 76 }, |
|
|
@ -88,8 +74,6 @@ static const DVprofile dv_profiles[] = { |
|
|
|
.height = 480, |
|
|
|
.height = 480, |
|
|
|
.width = 720, |
|
|
|
.width = 720, |
|
|
|
.sar = {{8, 9}, {32, 27}}, |
|
|
|
.sar = {{8, 9}, {32, 27}}, |
|
|
|
.work_chunks = &work_chunks_dv25ntsc[0], |
|
|
|
|
|
|
|
.idct_factor = &dv_idct_factor_sd[0], |
|
|
|
|
|
|
|
.pix_fmt = AV_PIX_FMT_YUV411P, |
|
|
|
.pix_fmt = AV_PIX_FMT_YUV411P, |
|
|
|
.bpm = 6, |
|
|
|
.bpm = 6, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
@ -108,8 +92,6 @@ static const DVprofile dv_profiles[] = { |
|
|
|
.height = 576, |
|
|
|
.height = 576, |
|
|
|
.width = 720, |
|
|
|
.width = 720, |
|
|
|
.sar = {{16, 15}, {64, 45}}, |
|
|
|
.sar = {{16, 15}, {64, 45}}, |
|
|
|
.work_chunks = &work_chunks_dv25pal[0], |
|
|
|
|
|
|
|
.idct_factor = &dv_idct_factor_sd[0], |
|
|
|
|
|
|
|
.pix_fmt = AV_PIX_FMT_YUV420P, |
|
|
|
.pix_fmt = AV_PIX_FMT_YUV420P, |
|
|
|
.bpm = 6, |
|
|
|
.bpm = 6, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
@ -128,8 +110,6 @@ static const DVprofile dv_profiles[] = { |
|
|
|
.height = 576, |
|
|
|
.height = 576, |
|
|
|
.width = 720, |
|
|
|
.width = 720, |
|
|
|
.sar = {{16, 15}, {64, 45}}, |
|
|
|
.sar = {{16, 15}, {64, 45}}, |
|
|
|
.work_chunks = &work_chunks_dv25pal411[0], |
|
|
|
|
|
|
|
.idct_factor = &dv_idct_factor_sd[0], |
|
|
|
|
|
|
|
.pix_fmt = AV_PIX_FMT_YUV411P, |
|
|
|
.pix_fmt = AV_PIX_FMT_YUV411P, |
|
|
|
.bpm = 6, |
|
|
|
.bpm = 6, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
@ -148,8 +128,6 @@ static const DVprofile dv_profiles[] = { |
|
|
|
.height = 480, |
|
|
|
.height = 480, |
|
|
|
.width = 720, |
|
|
|
.width = 720, |
|
|
|
.sar = {{8, 9}, {32, 27}}, |
|
|
|
.sar = {{8, 9}, {32, 27}}, |
|
|
|
.work_chunks = &work_chunks_dv50ntsc[0], |
|
|
|
|
|
|
|
.idct_factor = &dv_idct_factor_sd[0], |
|
|
|
|
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.bpm = 6, |
|
|
|
.bpm = 6, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
@ -168,8 +146,6 @@ static const DVprofile dv_profiles[] = { |
|
|
|
.height = 576, |
|
|
|
.height = 576, |
|
|
|
.width = 720, |
|
|
|
.width = 720, |
|
|
|
.sar = {{16, 15}, {64, 45}}, |
|
|
|
.sar = {{16, 15}, {64, 45}}, |
|
|
|
.work_chunks = &work_chunks_dv50pal[0], |
|
|
|
|
|
|
|
.idct_factor = &dv_idct_factor_sd[0], |
|
|
|
|
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.bpm = 6, |
|
|
|
.bpm = 6, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
@ -188,8 +164,6 @@ static const DVprofile dv_profiles[] = { |
|
|
|
.height = 1080, |
|
|
|
.height = 1080, |
|
|
|
.width = 1280, |
|
|
|
.width = 1280, |
|
|
|
.sar = {{1, 1}, {3, 2}}, |
|
|
|
.sar = {{1, 1}, {3, 2}}, |
|
|
|
.work_chunks = &work_chunks_dv100ntsci[0], |
|
|
|
|
|
|
|
.idct_factor = &dv_idct_factor_hd1080[0], |
|
|
|
|
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.bpm = 8, |
|
|
|
.bpm = 8, |
|
|
|
.block_sizes = block_sizes_dv100, |
|
|
|
.block_sizes = block_sizes_dv100, |
|
|
@ -208,8 +182,6 @@ static const DVprofile dv_profiles[] = { |
|
|
|
.height = 1080, |
|
|
|
.height = 1080, |
|
|
|
.width = 1440, |
|
|
|
.width = 1440, |
|
|
|
.sar = {{1, 1}, {4, 3}}, |
|
|
|
.sar = {{1, 1}, {4, 3}}, |
|
|
|
.work_chunks = &work_chunks_dv100pali[0], |
|
|
|
|
|
|
|
.idct_factor = &dv_idct_factor_hd1080[0], |
|
|
|
|
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.bpm = 8, |
|
|
|
.bpm = 8, |
|
|
|
.block_sizes = block_sizes_dv100, |
|
|
|
.block_sizes = block_sizes_dv100, |
|
|
@ -228,8 +200,6 @@ static const DVprofile dv_profiles[] = { |
|
|
|
.height = 720, |
|
|
|
.height = 720, |
|
|
|
.width = 960, |
|
|
|
.width = 960, |
|
|
|
.sar = {{1, 1}, {4, 3}}, |
|
|
|
.sar = {{1, 1}, {4, 3}}, |
|
|
|
.work_chunks = &work_chunks_dv100ntscp[0], |
|
|
|
|
|
|
|
.idct_factor = &dv_idct_factor_hd720[0], |
|
|
|
|
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.bpm = 8, |
|
|
|
.bpm = 8, |
|
|
|
.block_sizes = block_sizes_dv100, |
|
|
|
.block_sizes = block_sizes_dv100, |
|
|
@ -248,8 +218,6 @@ static const DVprofile dv_profiles[] = { |
|
|
|
.height = 720, |
|
|
|
.height = 720, |
|
|
|
.width = 960, |
|
|
|
.width = 960, |
|
|
|
.sar = {{1, 1}, {4, 3}}, |
|
|
|
.sar = {{1, 1}, {4, 3}}, |
|
|
|
.work_chunks = &work_chunks_dv100palp[0], |
|
|
|
|
|
|
|
.idct_factor = &dv_idct_factor_hd720[0], |
|
|
|
|
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.pix_fmt = AV_PIX_FMT_YUV422P, |
|
|
|
.bpm = 8, |
|
|
|
.bpm = 8, |
|
|
|
.block_sizes = block_sizes_dv100, |
|
|
|
.block_sizes = block_sizes_dv100, |
|
|
@ -268,8 +236,6 @@ static const DVprofile dv_profiles[] = { |
|
|
|
.height = 576, |
|
|
|
.height = 576, |
|
|
|
.width = 720, |
|
|
|
.width = 720, |
|
|
|
.sar = {{16, 15}, {64, 45}}, |
|
|
|
.sar = {{16, 15}, {64, 45}}, |
|
|
|
.work_chunks = &work_chunks_dv25pal[0], |
|
|
|
|
|
|
|
.idct_factor = &dv_idct_factor_sd[0], |
|
|
|
|
|
|
|
.pix_fmt = AV_PIX_FMT_YUV420P, |
|
|
|
.pix_fmt = AV_PIX_FMT_YUV420P, |
|
|
|
.bpm = 6, |
|
|
|
.bpm = 6, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
|
.block_sizes = block_sizes_dv2550, |
|
|
|