Mercurial > libavcodec.hg
comparison dvdata.h @ 8131:c30bdda1adb1 libavcodec
Taking advantage of the new ->execute API
author | romansh |
---|---|
date | Wed, 12 Nov 2008 21:13:28 +0000 |
parents | 890df98a7848 |
children | ab31736c0f23 |
comparison
equal
deleted
inserted
replaced
8130:c45366b01126 | 8131:c30bdda1adb1 |
---|---|
28 #define AVCODEC_DVDATA_H | 28 #define AVCODEC_DVDATA_H |
29 | 29 |
30 #include "libavutil/rational.h" | 30 #include "libavutil/rational.h" |
31 #include "avcodec.h" | 31 #include "avcodec.h" |
32 | 32 |
33 typedef struct DVwork_chunk { | |
34 uint16_t buf_offset; | |
35 uint16_t mb_coordinates[5]; | |
36 } DVwork_chunk; | |
37 | |
33 /* | 38 /* |
34 * DVprofile is used to express the differences between various | 39 * DVprofile is used to express the differences between various |
35 * DV flavors. For now it's primarily used for differentiating | 40 * DV flavors. For now it's primarily used for differentiating |
36 * 525/60 and 625/50, but the plans are to use it for various | 41 * 525/60 and 625/50, but the plans are to use it for various |
37 * DV specs as well (e.g. SMPTE314M vs. IEC 61834). | 42 * DV specs as well (e.g. SMPTE314M vs. IEC 61834). |
45 AVRational time_base; /* 1/framerate */ | 50 AVRational time_base; /* 1/framerate */ |
46 int ltc_divisor; /* FPS from the LTS standpoint */ | 51 int ltc_divisor; /* FPS from the LTS standpoint */ |
47 int height; /* picture height in pixels */ | 52 int height; /* picture height in pixels */ |
48 int width; /* picture width in pixels */ | 53 int width; /* picture width in pixels */ |
49 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 */ |
50 void **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 */ |
51 const uint16_t *video_place; /* positions of all DV macroblocks */ | 56 const uint16_t *video_place; /* positions of all DV macroblocks */ |
52 enum PixelFormat pix_fmt; /* picture pixel format */ | 57 enum PixelFormat pix_fmt; /* picture pixel format */ |
53 int bpm; /* blocks per macroblock */ | 58 int bpm; /* blocks per macroblock */ |
54 const uint8_t *block_sizes; /* AC block sizes, in bits */ | 59 const uint8_t *block_sizes; /* AC block sizes, in bits */ |
55 int audio_stride; /* size of audio_shuffle table */ | 60 int audio_stride; /* size of audio_shuffle table */ |
6158 | 6163 |
6159 static const uint8_t block_sizes_dv100[8] = { | 6164 static const uint8_t block_sizes_dv100[8] = { |
6160 80, 80, 80, 80, 80, 80, 64, 64, | 6165 80, 80, 80, 80, 80, 80, 64, 64, |
6161 }; | 6166 }; |
6162 | 6167 |
6163 static void *work_chunks_dv25pal [1*12*27]; | 6168 static DVwork_chunk work_chunks_dv25pal [1*12*27]; |
6164 static void *work_chunks_dv25pal411[1*12*27]; | 6169 static DVwork_chunk work_chunks_dv25pal411[1*12*27]; |
6165 static void *work_chunks_dv25ntsc [1*10*27]; | 6170 static DVwork_chunk work_chunks_dv25ntsc [1*10*27]; |
6166 static void *work_chunks_dv50pal [2*12*27]; | 6171 static DVwork_chunk work_chunks_dv50pal [2*12*27]; |
6167 static void *work_chunks_dv50ntsc [2*10*27]; | 6172 static DVwork_chunk work_chunks_dv50ntsc [2*10*27]; |
6168 static void *work_chunks_dv100palp [2*12*27]; | 6173 static DVwork_chunk work_chunks_dv100palp [2*12*27]; |
6169 static void *work_chunks_dv100ntscp[2*10*27]; | 6174 static DVwork_chunk work_chunks_dv100ntscp[2*10*27]; |
6170 static void *work_chunks_dv100pali [4*12*27]; | 6175 static DVwork_chunk work_chunks_dv100pali [4*12*27]; |
6171 static void *work_chunks_dv100ntsci[4*10*27]; | 6176 static DVwork_chunk work_chunks_dv100ntsci[4*10*27]; |
6172 | 6177 |
6173 static const DVprofile dv_profiles[] = { | 6178 static const DVprofile dv_profiles[] = { |
6174 { .dsf = 0, | 6179 { .dsf = 0, |
6175 .video_stype = 0x0, | 6180 .video_stype = 0x0, |
6176 .frame_size = 120000, /* IEC 61834, SMPTE-314M - 525/60 (NTSC) */ | 6181 .frame_size = 120000, /* IEC 61834, SMPTE-314M - 525/60 (NTSC) */ |