?? djpg_src.c
字號:
/*
*********************************************************************
* File name: djpg.c
* Version: 5.0(release v1.0) Date: Jan 12, 2006
* Author: xiezm Email: xiezm@wxintech.cn
* Company: Wuxi Intech co., ltd.
*
* Project: Jpeg Decoder for Trio
*********************************************************************
*/
#define DJPG_GLOBALS
#include "cf6_chess.h"
#ifdef WIN32
#include <stdio.h>
#include <stdlib.h>
#endif
#include "djpg.h"
void system_initial(void)
{
bitstream_init();
parse_initial();
}
#ifdef WIN32
int main(int argc, char **argv)
{
int i;
if ((INPUT = fopen(argv[1], "rb")) == NULL)
{
fprintf(stderr, "Error: Can't open file specified %s \n",argv[1]);
exit(0);
}
if ((BMP = fopen(argv[2], "wb")) == NULL)
{
fprintf(stderr, "Error: Can't open file specified %s \n",argv[2]);
exit(0);
}
if ((OUTPUT = fopen(argv[3], "wt")) == NULL)
{
fprintf(stderr, "Error: Can't open file specified %s \n",argv[3]);
exit(0);
}
#else
int main()
{
int i;
#endif
system_initial();
parse_header();
decode_initial();
#ifdef WIN32
output_header();
#endif
if((2==Vi[0])&&(2==Hi[0]))
{
for(i=1;i<=num_mcu;i++)
{
decode_mcu_2x2();
#ifdef WIN32
output_mcu();
#endif
if(dri_rst_interval)
{
if((!(i%dri_rst_interval)) && (i<num_mcu))
{
restart_decode();
}
}
}
}
else if((1==Vi[0])&&(2==Hi[0]))
{
for(i=1;i<=num_mcu;i++)
{
decode_mcu_2x1();
#ifdef WIN32
output_mcu();
#endif
if(dri_rst_interval)
{
if((!(i%dri_rst_interval)) && (i<num_mcu))
{
restart_decode();
}
}
}
}
else if((2==Vi[0])&&(1==Hi[0]))
{
for(i=1;i<=num_mcu;i++)
{
decode_mcu_1x2();
#ifdef WIN32
output_mcu();
#endif
if(dri_rst_interval)
{
if((!(i%dri_rst_interval)) && (i<num_mcu))
{
restart_decode();
}
}
}
}
else if((1==Vi[0])&&(1==Hi[0]))
{
for(i=1;i<=num_mcu;i++)
{
decode_mcu_1x1();
#ifdef WIN32
output_mcu();
#endif
if(dri_rst_interval)
{
if((!(i%dri_rst_interval)) && (i<num_mcu))
{
restart_decode();
}
}
}
}
else
{
error(99);
}
#ifdef WIN32
write_to_bmp();
#endif
//check EOI
drop_bits(bits_left%8);
if((0x00ff == get_bits(8)) && (0x00d9 == get_bits(8)))
{
#ifdef WIN32
fprintf(stderr, "bingo!");
fclose(INPUT);
fclose(OUTPUT);
fclose(BMP);
#endif
return 1;
}
else
{
error(98);
}
return 0;
}
void error(int eflag)
{
#ifdef WIN32
fprintf(stderr, "error: %d", eflag);
fclose(INPUT);
fclose(OUTPUT);
fclose(BMP);
exit(0);
#else
error_flag = eflag;
while(1);
#endif
}
/********************End of file*************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -