comparison dnxhdenc.c @ 8302:f54976d6a8a5 libavcodec

Move get_pixels_8x4 before init func to avoid useless forward declaration.
author bcoudurier
date Fri, 12 Dec 2008 00:12:59 +0000
parents d574d49316db
children bf6a78c6697b
comparison
equal deleted inserted replaced
8301:d574d49316db 8302:f54976d6a8a5
31 31
32 int dct_quantize_c(MpegEncContext *s, DCTELEM *block, int n, int qscale, int *overflow); 32 int dct_quantize_c(MpegEncContext *s, DCTELEM *block, int n, int qscale, int *overflow);
33 33
34 #define LAMBDA_FRAC_BITS 10 34 #define LAMBDA_FRAC_BITS 10
35 35
36 static av_always_inline void dnxhd_get_pixels_8x4(DCTELEM *restrict block, const uint8_t *pixels, int line_size)
37 {
38 int i;
39 for (i = 0; i < 4; i++) {
40 block[0] = pixels[0]; block[1] = pixels[1];
41 block[2] = pixels[2]; block[3] = pixels[3];
42 block[4] = pixels[4]; block[5] = pixels[5];
43 block[6] = pixels[6]; block[7] = pixels[7];
44 pixels += line_size;
45 block += 8;
46 }
47 memcpy(block , block- 8, sizeof(*block)*8);
48 memcpy(block+ 8, block-16, sizeof(*block)*8);
49 memcpy(block+16, block-24, sizeof(*block)*8);
50 memcpy(block+24, block-32, sizeof(*block)*8);
51 }
52
36 static int dnxhd_init_vlc(DNXHDEncContext *ctx) 53 static int dnxhd_init_vlc(DNXHDEncContext *ctx)
37 { 54 {
38 int i, j, level, run; 55 int i, j, level, run;
39 int max_level = 1<<(ctx->cid_table->bit_depth+2); 56 int max_level = 1<<(ctx->cid_table->bit_depth+2);
40 57
326 bits += ctx->vlc_bits[(level<<1)|!!run_level]+ctx->run_bits[run_level]; 343 bits += ctx->vlc_bits[(level<<1)|!!run_level]+ctx->run_bits[run_level];
327 last_non_zero = i; 344 last_non_zero = i;
328 } 345 }
329 } 346 }
330 return bits; 347 return bits;
331 }
332
333 static av_always_inline void dnxhd_get_pixels_8x4(DCTELEM *restrict block, const uint8_t *pixels, int line_size)
334 {
335 int i;
336 for (i = 0; i < 4; i++) {
337 block[0] = pixels[0]; block[1] = pixels[1];
338 block[2] = pixels[2]; block[3] = pixels[3];
339 block[4] = pixels[4]; block[5] = pixels[5];
340 block[6] = pixels[6]; block[7] = pixels[7];
341 pixels += line_size;
342 block += 8;
343 }
344 memcpy(block , block- 8, sizeof(*block)*8);
345 memcpy(block+ 8, block-16, sizeof(*block)*8);
346 memcpy(block+16, block-24, sizeof(*block)*8);
347 memcpy(block+24, block-32, sizeof(*block)*8);
348 } 348 }
349 349
350 static av_always_inline void dnxhd_get_blocks(DNXHDEncContext *ctx, int mb_x, int mb_y) 350 static av_always_inline void dnxhd_get_blocks(DNXHDEncContext *ctx, int mb_x, int mb_y)
351 { 351 {
352 const uint8_t *ptr_y = ctx->thread[0]->src[0] + ((mb_y << 4) * ctx->m.linesize) + (mb_x << 4); 352 const uint8_t *ptr_y = ctx->thread[0]->src[0] + ((mb_y << 4) * ctx->m.linesize) + (mb_x << 4);