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) */