Commit 944721c1 authored by Aurelien Jacobs's avatar Aurelien Jacobs

add proper prefix to new mjpeg extern func/var

Originally committed as revision 9049 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 4922a5b0
...@@ -62,19 +62,19 @@ const unsigned char std_chrominance_quant_tbl[64] = { ...@@ -62,19 +62,19 @@ const unsigned char std_chrominance_quant_tbl[64] = {
/* Set up the standard Huffman tables (cf. JPEG standard section K.3) */ /* Set up the standard Huffman tables (cf. JPEG standard section K.3) */
/* IMPORTANT: these are only valid for 8-bit data precision! */ /* IMPORTANT: these are only valid for 8-bit data precision! */
const uint8_t bits_dc_luminance[17] = const uint8_t ff_mjpeg_bits_dc_luminance[17] =
{ /* 0-base */ 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 }; { /* 0-base */ 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 };
const uint8_t val_dc_luminance[] = const uint8_t ff_mjpeg_val_dc_luminance[] =
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
const uint8_t bits_dc_chrominance[17] = const uint8_t ff_mjpeg_bits_dc_chrominance[17] =
{ /* 0-base */ 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 }; { /* 0-base */ 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 };
const uint8_t val_dc_chrominance[] = const uint8_t ff_mjpeg_val_dc_chrominance[] =
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
const uint8_t bits_ac_luminance[17] = const uint8_t ff_mjpeg_bits_ac_luminance[17] =
{ /* 0-base */ 0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d }; { /* 0-base */ 0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d };
const uint8_t val_ac_luminance[] = const uint8_t ff_mjpeg_val_ac_luminance[] =
{ 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, { 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12,
0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07,
0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08,
...@@ -98,10 +98,10 @@ const uint8_t val_ac_luminance[] = ...@@ -98,10 +98,10 @@ const uint8_t val_ac_luminance[] =
0xf9, 0xfa 0xf9, 0xfa
}; };
const uint8_t bits_ac_chrominance[17] = const uint8_t ff_mjpeg_bits_ac_chrominance[17] =
{ /* 0-base */ 0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77 }; { /* 0-base */ 0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77 };
const uint8_t val_ac_chrominance[] = const uint8_t ff_mjpeg_val_ac_chrominance[] =
{ 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, { 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21,
0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71,
0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
...@@ -126,8 +126,9 @@ const uint8_t val_ac_chrominance[] = ...@@ -126,8 +126,9 @@ const uint8_t val_ac_chrominance[] =
}; };
/* isn't this function nicer than the one in the libjpeg ? */ /* isn't this function nicer than the one in the libjpeg ? */
void build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code, void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code,
const uint8_t *bits_table, const uint8_t *val_table) const uint8_t *bits_table,
const uint8_t *val_table)
{ {
int i, j, k,nb, code, sym; int i, j, k,nb, code, sym;
......
...@@ -204,19 +204,20 @@ typedef struct MJpegDecodeContext { ...@@ -204,19 +204,20 @@ typedef struct MJpegDecodeContext {
case 7: ret= (left + top)>>1; break;\ case 7: ret= (left + top)>>1; break;\
} }
extern const uint8_t bits_dc_luminance[]; extern const uint8_t ff_mjpeg_bits_dc_luminance[];
extern const uint8_t val_dc_luminance[]; extern const uint8_t ff_mjpeg_val_dc_luminance[];
extern const uint8_t bits_dc_chrominance[]; extern const uint8_t ff_mjpeg_bits_dc_chrominance[];
extern const uint8_t val_dc_chrominance[]; extern const uint8_t ff_mjpeg_val_dc_chrominance[];
extern const uint8_t bits_ac_luminance[]; extern const uint8_t ff_mjpeg_bits_ac_luminance[];
extern const uint8_t val_ac_luminance[]; extern const uint8_t ff_mjpeg_val_ac_luminance[];
extern const uint8_t bits_ac_chrominance[]; extern const uint8_t ff_mjpeg_bits_ac_chrominance[];
extern const uint8_t val_ac_chrominance[]; extern const uint8_t ff_mjpeg_val_ac_chrominance[];
void build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code, void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code,
const uint8_t *bits_table, const uint8_t *val_table); const uint8_t *bits_table,
const uint8_t *val_table);
#endif /* MJPEG_H */ #endif /* MJPEG_H */
...@@ -51,7 +51,7 @@ static int build_vlc(VLC *vlc, const uint8_t *bits_table, const uint8_t *val_tab ...@@ -51,7 +51,7 @@ static int build_vlc(VLC *vlc, const uint8_t *bits_table, const uint8_t *val_tab
assert(nb_codes <= 256); assert(nb_codes <= 256);
memset(huff_size, 0, sizeof(huff_size)); memset(huff_size, 0, sizeof(huff_size));
build_huffman_codes(huff_size, huff_code, bits_table, val_table); ff_mjpeg_build_huffman_codes(huff_size, huff_code, bits_table, val_table);
if(is_ac){ if(is_ac){
memmove(huff_size+16, huff_size, sizeof(uint8_t)*nb_codes); memmove(huff_size+16, huff_size, sizeof(uint8_t)*nb_codes);
...@@ -77,10 +77,14 @@ static int mjpeg_decode_init(AVCodecContext *avctx) ...@@ -77,10 +77,14 @@ static int mjpeg_decode_init(AVCodecContext *avctx)
s->first_picture = 1; s->first_picture = 1;
s->org_height = avctx->coded_height; s->org_height = avctx->coded_height;
build_vlc(&s->vlcs[0][0], bits_dc_luminance, val_dc_luminance, 12, 0, 0); build_vlc(&s->vlcs[0][0], ff_mjpeg_bits_dc_luminance,
build_vlc(&s->vlcs[0][1], bits_dc_chrominance, val_dc_chrominance, 12, 0, 0); ff_mjpeg_val_dc_luminance, 12, 0, 0);
build_vlc(&s->vlcs[1][0], bits_ac_luminance, val_ac_luminance, 251, 0, 1); build_vlc(&s->vlcs[0][1], ff_mjpeg_bits_dc_chrominance,
build_vlc(&s->vlcs[1][1], bits_ac_chrominance, val_ac_chrominance, 251, 0, 1); ff_mjpeg_val_dc_chrominance, 12, 0, 0);
build_vlc(&s->vlcs[1][0], ff_mjpeg_bits_ac_luminance,
ff_mjpeg_val_ac_luminance, 251, 0, 1);
build_vlc(&s->vlcs[1][1], ff_mjpeg_bits_ac_chrominance,
ff_mjpeg_val_ac_chrominance, 251, 0, 1);
if (avctx->flags & CODEC_FLAG_EXTERN_HUFF) if (avctx->flags & CODEC_FLAG_EXTERN_HUFF)
{ {
......
...@@ -67,22 +67,22 @@ int mjpeg_init(MpegEncContext *s) ...@@ -67,22 +67,22 @@ int mjpeg_init(MpegEncContext *s)
s->max_qcoeff= 1023; s->max_qcoeff= 1023;
/* build all the huffman tables */ /* build all the huffman tables */
build_huffman_codes(m->huff_size_dc_luminance, ff_mjpeg_build_huffman_codes(m->huff_size_dc_luminance,
m->huff_code_dc_luminance, m->huff_code_dc_luminance,
bits_dc_luminance, ff_mjpeg_bits_dc_luminance,
val_dc_luminance); ff_mjpeg_val_dc_luminance);
build_huffman_codes(m->huff_size_dc_chrominance, ff_mjpeg_build_huffman_codes(m->huff_size_dc_chrominance,
m->huff_code_dc_chrominance, m->huff_code_dc_chrominance,
bits_dc_chrominance, ff_mjpeg_bits_dc_chrominance,
val_dc_chrominance); ff_mjpeg_val_dc_chrominance);
build_huffman_codes(m->huff_size_ac_luminance, ff_mjpeg_build_huffman_codes(m->huff_size_ac_luminance,
m->huff_code_ac_luminance, m->huff_code_ac_luminance,
bits_ac_luminance, ff_mjpeg_bits_ac_luminance,
val_ac_luminance); ff_mjpeg_val_ac_luminance);
build_huffman_codes(m->huff_size_ac_chrominance, ff_mjpeg_build_huffman_codes(m->huff_size_ac_chrominance,
m->huff_code_ac_chrominance, m->huff_code_ac_chrominance,
bits_ac_chrominance, ff_mjpeg_bits_ac_chrominance,
val_ac_chrominance); ff_mjpeg_val_ac_chrominance);
s->mjpeg_ctx = m; s->mjpeg_ctx = m;
return 0; return 0;
...@@ -149,11 +149,15 @@ static void jpeg_table_header(MpegEncContext *s) ...@@ -149,11 +149,15 @@ static void jpeg_table_header(MpegEncContext *s)
ptr = pbBufPtr(p); ptr = pbBufPtr(p);
put_bits(p, 16, 0); /* patched later */ put_bits(p, 16, 0); /* patched later */
size = 2; size = 2;
size += put_huffman_table(s, 0, 0, bits_dc_luminance, val_dc_luminance); size += put_huffman_table(s, 0, 0, ff_mjpeg_bits_dc_luminance,
size += put_huffman_table(s, 0, 1, bits_dc_chrominance, val_dc_chrominance); ff_mjpeg_val_dc_luminance);
size += put_huffman_table(s, 0, 1, ff_mjpeg_bits_dc_chrominance,
size += put_huffman_table(s, 1, 0, bits_ac_luminance, val_ac_luminance); ff_mjpeg_val_dc_chrominance);
size += put_huffman_table(s, 1, 1, bits_ac_chrominance, val_ac_chrominance);
size += put_huffman_table(s, 1, 0, ff_mjpeg_bits_ac_luminance,
ff_mjpeg_val_ac_luminance);
size += put_huffman_table(s, 1, 1, ff_mjpeg_bits_ac_chrominance,
ff_mjpeg_val_ac_chrominance);
ptr[0] = size >> 8; ptr[0] = size >> 8;
ptr[1] = size; ptr[1] = size;
} }
......
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