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

📄 main.cpp

📁 完整的RTP RTSP代码库
💻 CPP
字号:
#include "mpeg4ip.h"#include "mp4av.h"int main (int argc, char **argv){#define MAX_BUFFER 65536  uint8_t buffer[MAX_BUFFER];  uint32_t buffer_on, buffer_size;  uint64_t bytes = 0;  FILE *m_file;  argc--;  argv++;  m_file = fopen(*argv, FOPEN_READ_BINARY);  if (m_file == NULL) {    fprintf(stderr, "file %s not found\n", *argv);    exit(-1);  }  buffer_on = buffer_size = 0;  while (!feof(m_file)) {    if (buffer_on != 0) {      bytes += buffer_size - 4;      memmove(buffer, &buffer[buffer_size - 4], 4);      buffer_on = 4;    }    buffer_size = fread(buffer + buffer_on, 			1, 			MAX_BUFFER - buffer_on, 			m_file);    buffer_size += buffer_on;    buffer_on = 0;    while (buffer_on + 4 < buffer_size) {      uint32_t optr, scode;      if (MP4AV_Mpeg3FindNextStart(buffer + buffer_on,				   buffer_size - buffer_on - 4,				   &optr, 				   &scode) < 0) {	// nothing in buffer;	buffer_on = buffer_size;      } else {	buffer_on += optr;#define MPEG3_SEQUENCE_START_CODE        0x000001b3#define MPEG3_PICTURE_START_CODE         0x00000100#define MPEG3_GOP_START_CODE             0x000001b8#define MPEG3_EXT_START_CODE             0x000001b5	if (scode == MPEG3_PICTURE_START_CODE && buffer_on + 6 < buffer_size) {	  printf("%08x %8"U64F" type %u temp %u\n", 		  scode, 		 bytes + buffer_on,		 MP4AV_Mpeg3PictHdrType(buffer + buffer_on),		  MP4AV_Mpeg3PictHdrTempRef(buffer + buffer_on));	} else {	  printf("%08x %8"U64F"\n", scode, bytes + buffer_on);	}	buffer_on += 4;      }    }  }  fclose(m_file);  return 0;}

⌨️ 快捷键说明

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