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

📄 testsdp.c

📁 Session Description Protocol parse code
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include <unistd.h>#include "sdp.h"static int testLoadFile(const char* filename, char** buffer, int* size){	FILE*        fp;	struct stat  info;	if (!filename) 		return -1;	if (stat(filename, &info) || ((fp = fopen(filename, "rb")) == NULL)) {		fprintf(stderr, "ERROR: cannot open file : %s\n", strerror(errno));		return -1;	}	if ( ((*buffer = malloc(info.st_size)) == NULL)  || 			(fread(*buffer, info.st_size, 1, fp) != 1))  {            fprintf(stderr, "%s:%d, ERROR: out of memory\n", __FUNCTION__, __LINE__);	    if (*buffer) {		    free(*buffer);		    *buffer = NULL;	    }	}	*size = info.st_size;	if (fp) fclose(fp);	return 0;}int main (int argc, char** argv){	int          i, total, num;	char*        buffer;	time_t       start, end;	sdp_desc_t*  sdp;	if (argc != 2) {		fprintf(stderr, "Usage: <program> file\n");		return -1;	}	buffer = NULL;	total  = 0;	if (testLoadFile(argv[1], &buffer, &total) == -1)		return -1;	sdp = sdp_parse(buffer, total );	fprintf(stderr, "The sdp session level:\n");	fprintf(stderr, "\tThe sdp session name is: %s\n", 			sdp_get_sessionName(sdp));	start = sdp_get_startTime(sdp);	end   = sdp_get_endTime(sdp);	num   = sdp_get_mediaNum(sdp);	if (start && end) {		fprintf(stderr, "\tThe sdp start time is: %s", ctime(&start));		fprintf(stderr, "\tThe sdp end time is: %s", ctime(&end));	} else {		fprintf(stderr, "\tThe sdp end time is: %ld\n", start);		fprintf(stderr, "\tThe sdp end time is: %ld\n", end);	}	fprintf(stderr, "\tThe sdp session has %d media.\n", num);	fprintf(stderr, "\n");	fprintf(stderr, "\n");	for (i = 0; i < num; i++) {		fprintf(stderr, "The sdp media level %d:\n", i);		fprintf(stderr, "\tThe meida %d description is: %s\n", 				i, sdp_get_mediaDesc(sdp, i));		fprintf(stderr, "\tThe media %d address is: %s\n", 				i, sdp_get_mediaAddr(sdp, i));		fprintf(stderr, "\tThe media %d protocol is: %s\n", 				i, sdp_get_mediaProt(sdp, i));		fprintf(stderr, "\tThe media %d type is: %s\n", 				i, sdp_get_mediaType(sdp, i));		fprintf(stderr, "\tThe media %d port is: %d\n", 				i, sdp_get_mediaPort(sdp, i));		fprintf(stderr, "\tThe media %d codec is: %d\n", 				i, sdp_get_mediaCodec(sdp, i));		fprintf(stderr, "\n");	}	sdp_destroy(sdp);	if (buffer) free(buffer);	return 0;}

⌨️ 快捷键说明

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