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

📄 pesin.cpp

📁 用于解析ts流中的各种业务信息表可以用于dvb中嘛流分析
💻 CPP
字号:
/* Copyright (C) 1995, Tektronix Inc. All Rights Reserved. * *   Usage Restrictions * * License is granted to copy, to use, and to make and to use derivative * works for research and evaluation purposes only. * *   Disclaimer of Warranty * * These software programs are available to the user without any license * fee or royalty on an "as is" basis.  Tektronix Inc. disclaims any and * all warranties, whether express, implied, or statuary, including any * implied warranties or merchantability or of fitness for a particular * purpose.  In no event shall the copyright-holder be liable for any  * incidental, punitive, or consequential damages of any kind whatsoever * arising from the use of these programs. * * This disclaimer of warranty extends to the user of these programs and * user's customers, employees, agents, transferees, successors, and * assigns. * * The Tektronix Inc. does not represent or warrant that the programs * furnished hereunder are free of infringement of any third-party * patents.*//* pes stream reader */#include "Decoder.H"#include "IPortFromFile.H"#include "Events.H" #include "Utilities.H"#include "PESConsumer.H"extern "C"{void exit (int);#include <stdio.h>}/*// Callbacksvoid cleanup (EventType, void*, void*);void print_pes (EventType, void*, void*);main (int argc, char* argv[]){  if ((argc < 2) || (argc > 3))    {      printf("syntax is decode <bitstream> <printflag>\n");      exit (0);    }  if (argc == 3) PRINTFLAG = FALSE;    // create an EventManager  EventManager* manager = new EventManager();  EM = manager;    // create a Decoder  Decoder* decoder = new Decoder(manager);    // build consumer, port and connect  PESConsumer* pcons  = new PESConsumer(decoder, new PES());  IPortFromFile* iport = new IPortFromFile(argv[1], NOCYCLE);  pcons->connect(iport);  pcons->pes_out_flag = NULL;  // register callbacks  manager->Register(PESHeaderParsed, print_pes, NULL);  manager->Register(Termination, cleanup, pcons);    // read some pes packets  for (;;)   {    pcons->read_partial(100);    // we assume here that the PES header has been read and parsed    // and that therefore pcons->pes has a length field.      int length = pcons->pes->get_length();    if (length < 100)      {	sys_halt("can't continue with this stream");      }    pcons->read_partial(length - 100);    pcons->set_cstate(CSTART);  }    printf("\ndone\n");}void print_pes (EventType t, void* client_data, void* call_data){  PES* pes = (PES*) call_data;  printf("    **** PES Packet Header Start ****\n");  pes->print();  printf("    **** PES Packet Header End ****\n\n");}void cleanup (EventType t, void* client_data, void* call_data){  PESConsumer* pcons = (PESConsumer*) client_data;  pcons->flush();}*/

⌨️ 快捷键说明

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