diff options
Diffstat (limited to 'test/test.c')
| -rw-r--r-- | test/test.c | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/test/test.c b/test/test.c new file mode 100644 index 0000000..6dbc11e --- /dev/null +++ b/test/test.c @@ -0,0 +1,124 @@ +#include "vdefine.h" +#define SIZE_BUFF 16*16*16*16*16*16*16*16-1//6*16*16*16*16*16 +#include <dirent.h> +#include <sys/stat.h> +#include <unistd.h> +typedef struct buff_inf_h +{ + char *buff; + size_t size; +}buff_inf; + +buff_inf *buff_get(char *vfile) { + buff_inf *buff_inf_h = (buff_inf *)malloc(sizeof(buff_inf)); + + FILE *fr = NULL; + char *buff_ori = (char *)malloc(sizeof(char *)*SIZE_BUFF);//CH + char *buff = buff_ori;//CH + memset(buff, 0, sizeof(buff)); + if ((fr = fopen(vfile, "rb")) == NULL) + { + perror("fopen error:"); + buff_inf_h->buff = NULL; + buff_inf_h->size = 0; + return buff_inf_h;//-1; + } + size_t i = 0;//unsigned int i = 0;//size_t i = 0; + //int j = 0; + while (!feof(fr)) + { + fread(buff, 1, 1, fr); + buff += 1; + i++; + } + buff_inf_h->buff = (char *)malloc(sizeof(char *) * (i-1));//(i-2)); + memcpy(buff_inf_h->buff, buff - i, i-1);//i-2); + buff_inf_h->size = i-1;//i - 2; + //buff_inf_h.buff = buff - i; + //buff_inf_h.size = i; + free(buff_ori);//CH--free(buff - i);//? + buff_ori = NULL; + fclose(fr); + return buff_inf_h; + +} +int main(int argc, char *argv[]) +{ + char *vfile = argv[1]; + buff_inf *buff_inf_h; + //CH--char *buff;// = (char *)malloc(sizeof(char *)*size);//; + int ret; + int ret_sig = atoi(argv[2]); + int sig_show_all = atoi(argv[3]); + int sig_choose_all = atoi(argv[4]); + size_t size; + + buff_inf_h = buff_get(vfile); + if (buff_inf_h->size == 0) + { + printf("read file failed.\n"); + return -1; + } + if (sig_choose_all == 0) + { + int divide_h = 10; + int divide_s = 0; + int divide_e = 1; + + size = (buff_inf_h->size / divide_h)*(divide_e - divide_s); + + //CH--buff = (char *)malloc(sizeof(char *)*size); + //CH--memcpy(buff, buff_inf_h->buff + (buff_inf_h->size / divide_h)*divide_s, size); + + //printf("buff_whole is %p.\n", buff_inf_h->buff); + //printf("buff_inf_h.size/divide_h is %x.\n", buff_inf_h->size / divide_h); + //printf("buff starts from(>=) %p.\n", buff); + //printf("buff ends at(<) %p.\n", buff + size - 1);//+size + ret = AV_container_identify(buff_inf_h->buff + (buff_inf_h->size / divide_h)*divide_s, size);;//CCH--ret = AV_container_identify(buff, size);//CH--(const char *)? + //CH--free(buff); + //CH--buff = NULL; + //printf("define : %d.\n", ret); + //printf("size of whole buff is %d.\n", buff_inf_h->size);//size - 1 + //printf("size of chosen buff is %d.\n", size); + } + else + ret = AV_container_identify(buff_inf_h->buff, buff_inf_h->size); + if (sig_show_all == 0) + { + if (ret != ret_sig) + { + printf("-----------------data of [%s] is kind of [%d].\n",vfile,ret);// dp->d_name, ret); + //printf("define : %d.\n", ret); + printf("size of whole buff is %d.\n", buff_inf_h->size); + if (sig_choose_all == 0) + printf("size of chosen buff is %d.\n", size); + + } + } + else + { + printf("-----------------data of [%s] is kind of [%d].\n", vfile, ret);// dp->d_name, ret); + printf("size of whole buff is %d.\n", buff_inf_h->size); + if (sig_choose_all == 0) + printf("size of chosen buff is %d.\n", size); + } + free(buff_inf_h->buff);//CH-- + buff_inf_h->buff = NULL;//CH-- + free(buff_inf_h);//CH-- + buff_inf_h = NULL;//CH-- + /* + free(buff); + + free(buff_inf_h->buff); + buff_inf_h = NULL; + free(buff_inf_h); + return ret; + */ + + //CH--free(buff_inf_h->buff); + //CH--buff_inf_h = NULL; + //CH--free(buff_inf_h); + + + return ret; +} |
