Commit ee0ebd3c authored by Gabriel Dume's avatar Gabriel Dume Committed by Diego Biurrun

dv: K&R formatting cosmetics

Signed-off-by: 's avatarDiego Biurrun <diego@biurrun.de>
parent f629705b
...@@ -40,124 +40,131 @@ ...@@ -40,124 +40,131 @@
#include "libavutil/internal.h" #include "libavutil/internal.h"
#include "libavutil/pixdesc.h" #include "libavutil/pixdesc.h"
#include "avcodec.h" #include "avcodec.h"
#include "dv.h"
#include "dvdata.h"
#include "get_bits.h" #include "get_bits.h"
#include "internal.h" #include "internal.h"
#include "put_bits.h" #include "put_bits.h"
#include "simple_idct.h" #include "simple_idct.h"
#include "dvdata.h"
#include "dv.h"
/* XXX: also include quantization */ /* XXX: also include quantization */
RL_VLC_ELEM ff_dv_rl_vlc[1184]; RL_VLC_ELEM ff_dv_rl_vlc[1184];
static inline void dv_calc_mb_coordinates(const AVDVProfile *d, int chan, int seq, int slot, static inline void dv_calc_mb_coordinates(const AVDVProfile *d, int chan,
uint16_t *tbl) int seq, int slot, uint16_t *tbl)
{ {
static const uint8_t off[] = { 2, 6, 8, 0, 4 }; static const uint8_t off[] = { 2, 6, 8, 0, 4 };
static const uint8_t shuf1[] = { 36, 18, 54, 0, 72 }; static const uint8_t shuf1[] = { 36, 18, 54, 0, 72 };
static const uint8_t shuf2[] = { 24, 12, 36, 0, 48 }; static const uint8_t shuf2[] = { 24, 12, 36, 0, 48 };
static const uint8_t shuf3[] = { 18, 9, 27, 0, 36 }; static const uint8_t shuf3[] = { 18, 9, 27, 0, 36 };
static const uint8_t l_start[] = {0, 4, 9, 13, 18, 22, 27, 31, 36, 40}; static const uint8_t l_start[] = { 0, 4, 9, 13, 18, 22, 27, 31, 36, 40 };
static const uint8_t l_start_shuffled[] = { 9, 4, 13, 0, 18 }; static const uint8_t l_start_shuffled[] = { 9, 4, 13, 0, 18 };
static const uint8_t serpent1[] = {0, 1, 2, 2, 1, 0, static const uint8_t serpent1[] = {
0, 1, 2, 2, 1, 0,
0, 1, 2, 2, 1, 0, 0, 1, 2, 2, 1, 0,
0, 1, 2, 2, 1, 0, 0, 1, 2, 2, 1, 0,
0, 1, 2, 2, 1, 0, 0, 1, 2, 2, 1, 0,
0, 1, 2}; 0, 1, 2
static const uint8_t serpent2[] = {0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 0, };
static const uint8_t serpent2[] = {
0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 0,
0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 0, 0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 0,
0, 1, 2, 3, 4, 5}; 0, 1, 2, 3, 4, 5
};
static const uint8_t remap[][2] = {{ 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, /* dummy */
{ 0, 0}, { 0, 1}, { 0, 2}, { 0, 3}, {10, 0}, static const uint8_t remap[][2] = {
{10, 1}, {10, 2}, {10, 3}, {20, 0}, {20, 1}, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, /* dummy */
{20, 2}, {20, 3}, {30, 0}, {30, 1}, {30, 2}, { 0, 0 }, { 0, 1 }, { 0, 2 }, { 0, 3 }, { 10, 0 },
{30, 3}, {40, 0}, {40, 1}, {40, 2}, {40, 3}, { 10, 1 }, { 10, 2 }, { 10, 3 }, { 20, 0 }, { 20, 1 },
{50, 0}, {50, 1}, {50, 2}, {50, 3}, {60, 0}, { 20, 2 }, { 20, 3 }, { 30, 0 }, { 30, 1 }, { 30, 2 },
{60, 1}, {60, 2}, {60, 3}, {70, 0}, {70, 1}, { 30, 3 }, { 40, 0 }, { 40, 1 }, { 40, 2 }, { 40, 3 },
{70, 2}, {70, 3}, { 0,64}, { 0,65}, { 0,66}, { 50, 0 }, { 50, 1 }, { 50, 2 }, { 50, 3 }, { 60, 0 },
{10,64}, {10,65}, {10,66}, {20,64}, {20,65}, { 60, 1 }, { 60, 2 }, { 60, 3 }, { 70, 0 }, { 70, 1 },
{20,66}, {30,64}, {30,65}, {30,66}, {40,64}, { 70, 2 }, { 70, 3 }, { 0, 64 }, { 0, 65 }, { 0, 66 },
{40,65}, {40,66}, {50,64}, {50,65}, {50,66}, { 10, 64 }, { 10, 65 }, { 10, 66 }, { 20, 64 }, { 20, 65 },
{60,64}, {60,65}, {60,66}, {70,64}, {70,65}, { 20, 66 }, { 30, 64 }, { 30, 65 }, { 30, 66 }, { 40, 64 },
{70,66}, { 0,67}, {20,67}, {40,67}, {60,67}}; { 40, 65 }, { 40, 66 }, { 50, 64 }, { 50, 65 }, { 50, 66 },
{ 60, 64 }, { 60, 65 }, { 60, 66 }, { 70, 64 }, { 70, 65 },
{ 70, 66 }, { 0, 67 }, { 20, 67 }, { 40, 67 }, { 60, 67 }
};
int i, k, m; int i, k, m;
int x, y, blk; int x, y, blk;
for (m=0; m<5; m++) { for (m = 0; m < 5; m++) {
switch (d->width) { switch (d->width) {
case 1440: case 1440:
blk = (chan*11+seq)*27+slot; blk = (chan * 11 + seq) * 27 + slot;
if (chan == 0 && seq == 11) { if (chan == 0 && seq == 11) {
x = m*27+slot; x = m * 27 + slot;
if (x<90) { if (x < 90) {
y = 0; y = 0;
} else { } else {
x = (x - 90)*2; x = (x - 90) * 2;
y = 67; y = 67;
} }
} else { } else {
i = (4*chan + blk + off[m])%11; i = (4 * chan + blk + off[m]) % 11;
k = (blk/11)%27; k = (blk / 11) % 27;
x = shuf1[m] + (chan&1)*9 + k%9; x = shuf1[m] + (chan & 1) * 9 + k % 9;
y = (i*3+k/9)*2 + (chan>>1) + 1; y = (i * 3 + k / 9) * 2 + (chan >> 1) + 1;
} }
tbl[m] = (x<<1)|(y<<9); tbl[m] = (x << 1) | (y << 9);
break; break;
case 1280: case 1280:
blk = (chan*10+seq)*27+slot; blk = (chan * 10 + seq) * 27 + slot;
i = (4*chan + (seq/5) + 2*blk + off[m])%10; i = (4 * chan + (seq / 5) + 2 * blk + off[m]) % 10;
k = (blk/5)%27; k = (blk / 5) % 27;
x = shuf1[m]+(chan&1)*9 + k%9; x = shuf1[m] + (chan & 1) * 9 + k % 9;
y = (i*3+k/9)*2 + (chan>>1) + 4; y = (i * 3 + k / 9) * 2 + (chan >> 1) + 4;
if (x >= 80) { if (x >= 80) {
x = remap[y][0]+((x-80)<<(y>59)); x = remap[y][0] + ((x - 80) << (y > 59));
y = remap[y][1]; y = remap[y][1];
} }
tbl[m] = (x<<1)|(y<<9); tbl[m] = (x << 1) | (y << 9);
break; break;
case 960: case 960:
blk = (chan*10+seq)*27+slot; blk = (chan * 10 + seq) * 27 + slot;
i = (4*chan + (seq/5) + 2*blk + off[m])%10; i = (4 * chan + (seq / 5) + 2 * blk + off[m]) % 10;
k = (blk/5)%27 + (i&1)*3; k = (blk / 5) % 27 + (i & 1) * 3;
x = shuf2[m] + k%6 + 6*(chan&1); x = shuf2[m] + k % 6 + 6 * (chan & 1);
y = l_start[i] + k/6 + 45*(chan>>1); y = l_start[i] + k / 6 + 45 * (chan >> 1);
tbl[m] = (x<<1)|(y<<9); tbl[m] = (x << 1) | (y << 9);
break; break;
case 720: case 720:
switch (d->pix_fmt) { switch (d->pix_fmt) {
case AV_PIX_FMT_YUV422P: case AV_PIX_FMT_YUV422P:
x = shuf3[m] + slot/3; x = shuf3[m] + slot / 3;
y = serpent1[slot] + y = serpent1[slot] +
((((seq + off[m]) % d->difseg_size)<<1) + chan)*3; ((((seq + off[m]) % d->difseg_size) << 1) + chan) * 3;
tbl[m] = (x<<1)|(y<<8); tbl[m] = (x << 1) | (y << 8);
break; break;
case AV_PIX_FMT_YUV420P: case AV_PIX_FMT_YUV420P:
x = shuf3[m] + slot/3; x = shuf3[m] + slot / 3;
y = serpent1[slot] + y = serpent1[slot] +
((seq + off[m]) % d->difseg_size)*3; ((seq + off[m]) % d->difseg_size) * 3;
tbl[m] = (x<<1)|(y<<9); tbl[m] = (x << 1) | (y << 9);
break; break;
case AV_PIX_FMT_YUV411P: case AV_PIX_FMT_YUV411P:
i = (seq + off[m]) % d->difseg_size; i = (seq + off[m]) % d->difseg_size;
k = slot + ((m==1||m==2)?3:0); k = slot + ((m == 1 || m == 2) ? 3 : 0);
x = l_start_shuffled[m] + k/6; x = l_start_shuffled[m] + k / 6;
y = serpent2[k] + i*6; y = serpent2[k] + i * 6;
if (x>21) if (x > 21)
y = y*2 - i*6; y = y * 2 - i * 6;
tbl[m] = (x<<2)|(y<<8); tbl[m] = (x << 2) | (y << 8);
break; break;
} }
default: default:
...@@ -177,7 +184,7 @@ static const uint8_t dv_quant_areas[4] = { 6, 21, 43, 64 }; ...@@ -177,7 +184,7 @@ static const uint8_t dv_quant_areas[4] = { 6, 21, 43, 64 };
int ff_dv_init_dynamic_tables(DVVideoContext *ctx, const AVDVProfile *d) int ff_dv_init_dynamic_tables(DVVideoContext *ctx, const AVDVProfile *d)
{ {
int j,i,c,s,p; int j, i, c, s, p;
uint32_t *factor1, *factor2; uint32_t *factor1, *factor2;
const int *iweight1, *iweight2; const int *iweight1, *iweight2;
...@@ -240,10 +247,10 @@ av_cold int ff_dvvideo_init(AVCodecContext *avctx) ...@@ -240,10 +247,10 @@ av_cold int ff_dvvideo_init(AVCodecContext *avctx)
if (!done) { if (!done) {
VLC dv_vlc; VLC dv_vlc;
uint16_t new_dv_vlc_bits[NB_DV_VLC*2]; uint16_t new_dv_vlc_bits[NB_DV_VLC * 2];
uint8_t new_dv_vlc_len[NB_DV_VLC*2]; uint8_t new_dv_vlc_len[NB_DV_VLC * 2];
uint8_t new_dv_vlc_run[NB_DV_VLC*2]; uint8_t new_dv_vlc_run[NB_DV_VLC * 2];
int16_t new_dv_vlc_level[NB_DV_VLC*2]; int16_t new_dv_vlc_level[NB_DV_VLC * 2];
done = 1; done = 1;
...@@ -267,21 +274,21 @@ av_cold int ff_dvvideo_init(AVCodecContext *avctx) ...@@ -267,21 +274,21 @@ av_cold int ff_dvvideo_init(AVCodecContext *avctx)
} }
/* NOTE: as a trick, we use the fact the no codes are unused /* NOTE: as a trick, we use the fact the no codes are unused
to accelerate the parsing of partial codes */ * to accelerate the parsing of partial codes */
init_vlc(&dv_vlc, TEX_VLC_BITS, j, init_vlc(&dv_vlc, TEX_VLC_BITS, j, new_dv_vlc_len,
new_dv_vlc_len, 1, 1, new_dv_vlc_bits, 2, 2, 0); 1, 1, new_dv_vlc_bits, 2, 2, 0);
assert(dv_vlc.table_size == 1184); assert(dv_vlc.table_size == 1184);
for (i = 0; i < dv_vlc.table_size; i++){ for (i = 0; i < dv_vlc.table_size; i++) {
int code = dv_vlc.table[i][0]; int code = dv_vlc.table[i][0];
int len = dv_vlc.table[i][1]; int len = dv_vlc.table[i][1];
int level, run; int level, run;
if (len < 0){ //more bits needed if (len < 0) { // more bits needed
run = 0; run = 0;
level = code; level = code;
} else { } else {
run = new_dv_vlc_run [code] + 1; run = new_dv_vlc_run[code] + 1;
level = new_dv_vlc_level[code]; level = new_dv_vlc_level[code];
} }
ff_dv_rl_vlc[i].len = len; ff_dv_rl_vlc[i].len = len;
......
...@@ -28,9 +28,9 @@ ...@@ -28,9 +28,9 @@
#define AVCODEC_DV_H #define AVCODEC_DV_H
#include "avcodec.h" #include "avcodec.h"
#include "me_cmp.h"
#include "get_bits.h"
#include "dv_profile.h" #include "dv_profile.h"
#include "get_bits.h"
#include "me_cmp.h"
typedef struct DVwork_chunk { typedef struct DVwork_chunk {
uint16_t buf_offset; uint16_t buf_offset;
...@@ -81,8 +81,8 @@ enum dv_pack_type { ...@@ -81,8 +81,8 @@ enum dv_pack_type {
#define DV_PROFILE_IS_720p50(p) (((p)->video_stype == 0x18) && ((p)->dsf == 1)) #define DV_PROFILE_IS_720p50(p) (((p)->video_stype == 0x18) && ((p)->dsf == 1))
/* minimum number of bytes to read from a DV stream in order to /* minimum number of bytes to read from a DV stream in order to
determine the profile */ * determine the profile */
#define DV_PROFILE_BYTES (6*80) /* 6 DIF blocks */ #define DV_PROFILE_BYTES (6 * 80) /* 6 DIF blocks */
/** /**
* largest possible DV frame, in bytes (1080i50) * largest possible DV frame, in bytes (1080i50)
...@@ -103,23 +103,26 @@ int ff_dvvideo_init(AVCodecContext *avctx); ...@@ -103,23 +103,26 @@ int ff_dvvideo_init(AVCodecContext *avctx);
static inline int dv_work_pool_size(const AVDVProfile *d) static inline int dv_work_pool_size(const AVDVProfile *d)
{ {
int size = d->n_difchan*d->difseg_size*27; int size = d->n_difchan * d->difseg_size * 27;
if (DV_PROFILE_IS_1080i50(d)) if (DV_PROFILE_IS_1080i50(d))
size -= 3*27; size -= 3 * 27;
if (DV_PROFILE_IS_720p50(d)) if (DV_PROFILE_IS_720p50(d))
size -= 4*27; size -= 4 * 27;
return size; return size;
} }
static inline void dv_calculate_mb_xy(DVVideoContext *s, DVwork_chunk *work_chunk, int m, int *mb_x, int *mb_y) static inline void dv_calculate_mb_xy(DVVideoContext *s,
DVwork_chunk *work_chunk,
int m, int *mb_x, int *mb_y)
{ {
*mb_x = work_chunk->mb_coordinates[m] & 0xff; *mb_x = work_chunk->mb_coordinates[m] & 0xff;
*mb_y = work_chunk->mb_coordinates[m] >> 8; *mb_y = work_chunk->mb_coordinates[m] >> 8;
/* We work with 720p frames split in half. The odd half-frame (chan==2,3) is displaced :-( */ /* We work with 720p frames split in half.
if (s->sys->height == 720 && !(s->buf[1]&0x0C)) { * The odd half-frame (chan == 2,3) is displaced :-( */
*mb_y -= (*mb_y>17)?18:-72; /* shifting the Y coordinate down by 72/2 macro blocks */ if (s->sys->height == 720 && !(s->buf[1] & 0x0C))
} /* shifting the Y coordinate down by 72/2 macro blocks */
*mb_y -= (*mb_y > 17) ? 18 : -72;
} }
#endif /* AVCODEC_DV_H */ #endif /* AVCODEC_DV_H */
This diff is collapsed.
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#define DV_VLC_MAP_LEV_SIZE 23 #define DV_VLC_MAP_LEV_SIZE 23
#else #else
#define DV_VLC_MAP_RUN_SIZE 64 #define DV_VLC_MAP_RUN_SIZE 64
#define DV_VLC_MAP_LEV_SIZE 512 //FIXME sign was removed so this should be /2 but needs check #define DV_VLC_MAP_LEV_SIZE 512 // FIXME sign was removed so this should be /2 but needs check
#endif #endif
/* VLC encoding lookup table */ /* VLC encoding lookup table */
...@@ -71,23 +71,23 @@ static void dv_vlc_map_tableinit(void) ...@@ -71,23 +71,23 @@ static void dv_vlc_map_tableinit(void)
for (j = 1; j < DV_VLC_MAP_LEV_SIZE; j++) { for (j = 1; j < DV_VLC_MAP_LEV_SIZE; j++) {
if (dv_vlc_map[i][j].size == 0) { if (dv_vlc_map[i][j].size == 0) {
dv_vlc_map[i][j].vlc = dv_vlc_map[0][j].vlc | dv_vlc_map[i][j].vlc = dv_vlc_map[0][j].vlc |
(dv_vlc_map[i-1][0].vlc << (dv_vlc_map[0][j].size)); (dv_vlc_map[i - 1][0].vlc <<
dv_vlc_map[i][j].size = dv_vlc_map[i-1][0].size + dv_vlc_map[0][j].size);
dv_vlc_map[i][j].size = dv_vlc_map[i - 1][0].size +
dv_vlc_map[0][j].size; dv_vlc_map[0][j].size;
} }
} }
#else #else
for (j = 1; j < DV_VLC_MAP_LEV_SIZE/2; j++) { for (j = 1; j < DV_VLC_MAP_LEV_SIZE / 2; j++) {
if (dv_vlc_map[i][j].size == 0) { if (dv_vlc_map[i][j].size == 0) {
dv_vlc_map[i][j].vlc = dv_vlc_map[0][j].vlc | dv_vlc_map[i][j].vlc = dv_vlc_map[0][j].vlc |
(dv_vlc_map[i-1][0].vlc << (dv_vlc_map[0][j].size)); (dv_vlc_map[i - 1][0].vlc <<
dv_vlc_map[i][j].size = dv_vlc_map[i-1][0].size + dv_vlc_map[0][j].size);
dv_vlc_map[i][j].size = dv_vlc_map[i - 1][0].size +
dv_vlc_map[0][j].size; dv_vlc_map[0][j].size;
} }
dv_vlc_map[i][((uint16_t)(-j))&0x1ff].vlc = dv_vlc_map[i][((uint16_t) (-j)) & 0x1ff].vlc = dv_vlc_map[i][j].vlc | 1;
dv_vlc_map[i][j].vlc | 1; dv_vlc_map[i][((uint16_t) (-j)) & 0x1ff].size = dv_vlc_map[i][j].size;
dv_vlc_map[i][((uint16_t)(-j))&0x1ff].size =
dv_vlc_map[i][j].size;
} }
#endif #endif
} }
......
...@@ -43,28 +43,28 @@ const uint8_t ff_dv_zigzag248_direct[64] = { ...@@ -43,28 +43,28 @@ const uint8_t ff_dv_zigzag248_direct[64] = {
/* unquant tables (not used directly) */ /* unquant tables (not used directly) */
const uint8_t ff_dv_quant_shifts[22][4] = { const uint8_t ff_dv_quant_shifts[22][4] = {
{ 3,3,4,4 }, { 3, 3, 4, 4 },
{ 3,3,4,4 }, { 3, 3, 4, 4 },
{ 2,3,3,4 }, { 2, 3, 3, 4 },
{ 2,3,3,4 }, { 2, 3, 3, 4 },
{ 2,2,3,3 }, { 2, 2, 3, 3 },
{ 2,2,3,3 }, { 2, 2, 3, 3 },
{ 1,2,2,3 }, { 1, 2, 2, 3 },
{ 1,2,2,3 }, { 1, 2, 2, 3 },
{ 1,1,2,2 }, { 1, 1, 2, 2 },
{ 1,1,2,2 }, { 1, 1, 2, 2 },
{ 0,1,1,2 }, { 0, 1, 1, 2 },
{ 0,1,1,2 }, { 0, 1, 1, 2 },
{ 0,0,1,1 }, { 0, 0, 1, 1 },
{ 0,0,1,1 }, { 0, 0, 1, 1 },
{ 0,0,0,1 }, { 0, 0, 0, 1 },
{ 0,0,0,0 }, { 0, 0, 0, 0 },
{ 0,0,0,0 }, { 0, 0, 0, 0 },
{ 0,0,0,0 }, { 0, 0, 0, 0 },
{ 0,0,0,0 }, { 0, 0, 0, 0 },
{ 0,0,0,0 }, { 0, 0, 0, 0 },
{ 0,0,0,0 }, { 0, 0, 0, 0 },
{ 0,0,0,0 }, { 0, 0, 0, 0 },
}; };
const uint8_t ff_dv_quant_offset[4] = { 6, 3, 0, 1 }; const uint8_t ff_dv_quant_offset[4] = { 6, 3, 0, 1 };
...@@ -301,7 +301,7 @@ const uint8_t ff_dv_vlc_run[NB_DV_VLC] = { ...@@ -301,7 +301,7 @@ const uint8_t ff_dv_vlc_run[NB_DV_VLC] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
127, 127,
}; };
const uint8_t ff_dv_vlc_level[NB_DV_VLC] = { const uint8_t ff_dv_vlc_level[NB_DV_VLC] = {
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment