⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cc

📁 传输流分析
💻 CC
📖 第 1 页 / 共 3 页
字号:
                                                        vpts = ntohl(*((unsigned int *)                                                                       pes.P()->pts));                                                        break;                                                }                                                if (apts && vpts)                                                        cout << pos << " "                                                        << apts << " " << vpts                                                        << endl;                                        }                                }                        }                        break;                default:                        err++;                        break;                }        } else                err++;        if (argc == 3 || argc == 4) {                int i=0;                int pes=0;                if (argc == 3) {                        switch (progn) {                        case pes2ts2_: {                                        pes_to_ts2( STDIN_FILENO, STDOUT_FILENO,                                                    strtol(argv[1],(char **)NULL, 0),                                                    strtol(argv[2],(char **)NULL, 0));                                        cerr << endl;                                }                                break;                        case extract_pes_payload_:                        case pes2vid_es_:                        case pes2aud_es_:                                pes = 1;                        case extract_pes_:                        case pes2vid_:                        case pes2aud_: {                                        istringstream arg(argv[2]);                                        int id = -1;                                        if ((fd = open(argv[1],O_RDONLY|O_LARGEFILE))                                                        <0) {                                                perror(argv[1]);                                                exit(1);                                        }                                        arg >> hex >> id;                                        switch(progn) {                                        case pes2vid_es_:                                        case pes2vid_:                                                switch(id) {                                                case AUDIO_STREAM_S ... AUDIO_STREAM_E:                                                case VIDEO_STREAM_S ... VIDEO_STREAM_E:                                                        break;                                                default:                                                        cerr << "Not a valid video id" << endl;                                                        exit(1);                                                }                                                break;                                        case pes2aud_:                                        case pes2aud_es_:                                                switch(id) {                                                case AUDIO_STREAM_S ... AUDIO_STREAM_E:                                                        break;                                                default:                                                        cerr << "Not a valid audio id" << endl;                                                }                                                break;                                        default:                                                break;                                        }                                        arg >> hex >> id;                                        extract_from_pes(fd, STDOUT_FILENO, id, pes);                                        break;                                }                        case ts2es_:                                if ((fd = open(argv[1],O_RDONLY|O_LARGEFILE)) <0) {                                        perror(argv[1]);                                        exit(1);                                }                                ts2es(fd, strtol(argv[2],(char **)NULL,0));                                break;                        case pes_repack_: {                                        uint8_t buf[SIZE];                                        int count = 1;                                        int size = strtol(argv[2],(char **)NULL,0);                                        //				p2p p;                                        ipack p;                                        if (argc > 3) {                                                usage(progn);                                                exit(1);                                        }                                        if ((fd = open(argv[1],O_RDONLY|O_LARGEFILE))                                                        <0) {                                                perror(argv[1]);                                                exit(1);                                        }                                        if (fd != STDIN_FILENO)                                                cerr << "Reading " << argv[1] << endl;                                        else                                                exit(1);                                        cerr << "Repacking int size " << size << endl;                                        //				init_p2p(&p, write_it, size);                                        init_ipack(&p, size, write_it2, 0);                                        while (count > 0) {                                                count = read(fd,buf,SIZE);                                                instant_repack(buf,count,&p);                                        }                                }                                return 0;                        }                }                if (argc == 4) {                        if ((fd = open(argv[1],O_RDONLY|O_LARGEFILE)) < 0) {                                perror(argv[1]);                                exit(1);                        }                } else {                        i=1;                        fd = STDIN_FILENO;                }                switch (progn) {                case ts2pes_:                        ts_to_pes(fd,strtol(argv[2-i],(char **)NULL, 0),                                  strtol(argv[3-i],(char **)NULL, 0),0);                        break;                case ts2ps_:                        ts_to_pes(fd,strtol(argv[2-i],(char **)NULL, 0),                                  strtol(argv[3-i],(char **)NULL, 0),1);                        break;                case pes_demux_: {                                fda_out = open(argv[2],O_WRONLY|O_CREAT|O_TRUNC                                               |O_LARGEFILE,                                               S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|                                               S_IROTH|S_IWOTH);                                fdv_out = open(argv[3],O_WRONLY|O_CREAT|O_TRUNC                                               |O_LARGEFILE,                                               S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|                                               S_IROTH|S_IWOTH);                                if(fda_out < 0 || fdv_out < 0) {                                        cerr << "Error opening output files" << endl;                                        exit(1);                                }                                cerr << "Opening " << argv[2] << " for audio" << endl;                                cerr << "Opening " << argv[3] << " for video" << endl;                                pes_dmx( fd, fda_out, fdv_out, 0);                        }                        break;                case ts_demux_: {                                fda_out = open(argv[2],O_WRONLY|O_CREAT|O_TRUNC                                               |O_LARGEFILE,                                               S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|                                               S_IROTH|S_IWOTH);                                fdv_out = open(argv[3],O_WRONLY|O_CREAT|O_TRUNC                                               |O_LARGEFILE,                                               S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|                                               S_IROTH|S_IWOTH);                                if(fda_out < 0 || fdv_out < 0) {                                        cerr << "Error opening output files" << endl;                                        exit(1);                                }                                cerr << "Opening " << argv[2] << " for audio" << endl;                                cerr << "Opening " << argv[3] << " for video" << endl;                                ts_demux(fd,fdv_out,fda_out,0,0,0);                        }                        break;                case ts_es_demux_: {                                fda_out = open(argv[2],O_WRONLY|O_CREAT|O_TRUNC                                               |O_LARGEFILE,                                               S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|                                               S_IROTH|S_IWOTH);                                fdv_out = open(argv[3],O_WRONLY|O_CREAT|O_TRUNC                                               |O_LARGEFILE,                                               S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|                                               S_IROTH|S_IWOTH);                                if(fda_out < 0 || fdv_out < 0) {                                        cerr << "Error opening output files" << endl;                                        exit(1);                                }                                cerr << "Opening " << argv[2] << " for audio" << endl;                                cerr << "Opening " << argv[3] << " for video" << endl;                                ts_demux(fd, fdv_out, fda_out, 0, 0, 1);                        }                        break;                case es_demux_: {                                fda_out = open(argv[2],O_WRONLY|O_CREAT|O_TRUNC                                               |O_LARGEFILE,                                               S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|                                               S_IROTH|S_IWOTH);                                fdv_out = open(argv[3],O_WRONLY|O_CREAT|O_TRUNC                                               |O_LARGEFILE,                                               S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|                                               S_IROTH|S_IWOTH);                                if(fda_out < 0 || fdv_out < 0) {                                        cerr << "Error opening output files" << endl;                                        exit(1);                                }                                cerr << "Opening " << argv[2] << " for audio" << endl;                                cerr << "Opening " << argv[3] << " for video" << endl;                                cerr << "VPTS - APTS = "                                <<	pes_dmx(fd, fda_out, fdv_out, 1)/90000.                                //<< es_demux(fd, fdv_out, fda_out)/90000.                                << "s" << endl;                        }                        break;                case pes2ts2_: {                                pes_to_ts2( fd, STDOUT_FILENO,                                            strtol(argv[2-i],(char **)NULL, 0),                                            strtol(argv[3-i],(char **)NULL, 0));                                cerr << endl;                        }                        break;                case split_mpg_:                        close(fd);                        split_mpg(argv[1],strtol(argv[2],(char **)NULL,0)*1024*1024);                        break;                case cut_mpg_:                        close(fd);                        cut_mpg(argv[1],strtol(argv[2],(char **)NULL,0));                        break;                }        } else                err++;        if (err == 2)                usage(progn);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -