summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaoqing MA <[email protected]>2018-07-10 11:27:09 +0800
committerXiaoqing MA <[email protected]>2018-07-10 11:27:09 +0800
commit912d29a25efffe1274c291fe3e3b92edbd57aaee (patch)
tree23135da88e6393587cc32ce1c4598e06e839717a
parent84eb579e97421727dbff1c054d16a3de852a1faa (diff)
new ed4
-rw-r--r--src/vdefine.c12
-rw-r--r--src/vdefine.h38
-rw-r--r--test/test.c124
-rw-r--r--test/test_dir.c150
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;
-}