diff options
| author | Xiaoqing MA <[email protected]> | 2018-07-10 11:27:09 +0800 |
|---|---|---|
| committer | Xiaoqing MA <[email protected]> | 2018-07-10 11:27:09 +0800 |
| commit | 912d29a25efffe1274c291fe3e3b92edbd57aaee (patch) | |
| tree | 23135da88e6393587cc32ce1c4598e06e839717a | |
| parent | 84eb579e97421727dbff1c054d16a3de852a1faa (diff) | |
new ed4
| -rw-r--r-- | src/vdefine.c | 12 | ||||
| -rw-r--r-- | src/vdefine.h | 38 | ||||
| -rw-r--r-- | test/test.c | 124 | ||||
| -rw-r--r-- | test/test_dir.c | 150 |
4 files changed, 11 insertions, 313 deletions
diff --git a/src/vdefine.c b/src/vdefine.c index d7ac9c8..a1f1481 100644 --- a/src/vdefine.c +++ b/src/vdefine.c @@ -1,4 +1,3 @@ -#include "vdefine.h" #define AV_CONTAINER_MPEGTS 1 #define AV_CONTAINER_FLV 2 @@ -7,6 +6,17 @@ #define FIT_TIMES 1//#define FIT_TIMES 2 #define MAX_FLV_FRAME max_flv_frame; +#include "vdefine.h" + +const char *mp4_box_type_all[] = { "ftyp", "pdin", "moov", "mvhd", "trak", "tkhd", "tref", "edts", "elst", "mdia", "mdhd", +"hdlr", "minf", "vmhd", "smhd", "hmhd", "nmhd", "dinf", "dref", "stbl", "stsd", "stts", "ctts", "stsc", "stsz", +"stz2", "stco", "co64", "stss", "stsh", "padb", "stdp", "sdtp", "sbgp", "sgpd", "subs", "mvex", "mehd", "trex", +"ipmc", "moof", "mfhd", "traf", "tfhd", "trun", "sdtp", "sbgp", "subs", "mfra", "tfra", "mfro", "mdat", "free", +"skip", "udta", "cprt", "meta", "hdlr", "dinf", "dref", "ipmc", "iloc", "ipro", "sinf", "frma", "imif", "schm", +"schi", "iinf", "xml", "bxml", "pitm", "fiin", "paen", "fpar", "fecr", "segr", "gitn", "tsel", "meco", "mere" }; +int count_type = sizeof(mp4_box_type_all) / sizeof(char *); + + int is_mpeg_ts_each(const char *buff_each, size_t size_each, const char *buff, size_t size) { int ret_ts_each = 0; diff --git a/src/vdefine.h b/src/vdefine.h deleted file mode 100644 index 35c9549..0000000 --- a/src/vdefine.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef _VDEFINE_H -#define _VDEFINE_H - -#include <arpa/inet.h> -#include <stdlib.h> -#define _GNU_SOURCE -#define __USE_GNU -#include <string.h> -#include <stdio.h> -#include <math.h> -#include <sys/types.h> - -#include <sys/io.h> - -#include <arpa/inet.h> -const char *mp4_box_type_all[] = { "ftyp", "pdin", "moov", "mvhd", "trak", "tkhd", "tref", "edts", "elst", "mdia", "mdhd", -"hdlr", "minf", "vmhd", "smhd", "hmhd", "nmhd", "dinf", "dref", "stbl", "stsd", "stts", "ctts", "stsc", "stsz", -"stz2", "stco", "co64", "stss", "stsh", "padb", "stdp", "sdtp", "sbgp", "sgpd", "subs", "mvex", "mehd", "trex", -"ipmc", "moof", "mfhd", "traf", "tfhd", "trun", "sdtp", "sbgp", "subs", "mfra", "tfra", "mfro", "mdat", "free", -"skip", "udta", "cprt", "meta", "hdlr", "dinf", "dref", "ipmc", "iloc", "ipro", "sinf", "frma", "imif", "schm", -"schi", "iinf", "xml", "bxml", "pitm", "fiin", "paen", "fpar", "fecr", "segr", "gitn", "tsel", "meco", "mere" }; -int count_type = sizeof(mp4_box_type_all) / sizeof(char *); - -int is_mpeg_ts_each(const char *buff_each, size_t size_each, const char *buff, size_t size); -int is_mpeg_ts(const char* buff, size_t size); -void *memchr_flv(const char *buff_each, size_t size_each); -int is_flv_each(const char* buff_each, size_t size_each,const char *buff); -int is_flv(const char* buff, size_t size); -int is_mp4_part_spe(const char *buff);//, int count_type) -int c_is_mp3(char c); -int is_mp4_part(const char *buff_part); -void *memmem_mp4(const char *buff_each, size_t size_each); -int is_mp4_each(const char* buff_each, size_t size_each, const char *buff);//, int count_type) -int is_mp4(const char* buff, size_t size); -int AV_container_identify(const char* buff, size_t size); - - -#endif diff --git a/test/test.c b/test/test.c deleted file mode 100644 index 6dbc11e..0000000 --- a/test/test.c +++ /dev/null @@ -1,124 +0,0 @@ -#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; -} diff --git a/test/test_dir.c b/test/test_dir.c deleted file mode 100644 index b40f53b..0000000 --- a/test/test_dir.c +++ /dev/null @@ -1,150 +0,0 @@ -#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> -#define SIZE_FILE 50 -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[]) -{ - DIR *dirp; - struct dirent *dp; - char *vdir = argv[1]; - char *vfile_ori = (char *)malloc(SIZE_FILE); - memcpy(vfile_ori,vdir,strlen(vdir)); - strcat(vfile_ori, "/"); - char *vfile = (char *)malloc(SIZE_FILE); - //strcat(vdir,".dir"); - dirp = opendir(vdir); - struct stat info; - - 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; - int divide_h; - int divide_s; - int divide_e; - while ((dp = readdir(dirp)) != NULL) - { - memcpy(vfile,vfile_ori,SIZE_FILE); - strncat(vfile, dp->d_name, strlen(dp->d_name));//strcat(vfile,dp->d_name);//vfile = dp->d_name;//fileinfo->name;//&((fileinfo->name)[0]);//argv[1];// "0003.dat"; - - stat(vfile, &info); - if(S_ISDIR(info.st_mode)) - continue; - buff_inf_h = buff_get(vfile); - if (buff_inf_h->size == 0) - { - printf("read file failed of %s.\n",vfile); - return -1; - } - if (sig_choose_all == 0) - { - divide_h = atoi(argv[5]);//10; - divide_s = atoi(argv[6]);//0; - divide_e = atoi(argv[7]);//1; - - size = (buff_inf_h->size / divide_h)*(divide_e - divide_s); - //size = atoi(argv[7]); - //divide_e = (buff_inf_h->size / divide_h)*(divide_h-divide_s); - //size = size>divide_e?divide_e:size; - //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", 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", 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); - - free(vfile); - free(vfile_ori); - - return ret; -} |
