资源简介
MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流作业系统使用,例如Linux和其他类Unix系统、Windows及Mac OS X系统。
本代码经过测试可以编译通过。
代码片段和文件信息
/*
* This file is part of MPlayer.
*
* MPlayer is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License or
* (at your option) any later version.
*
* MPlayer is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with MPlayer; if not write to the Free Software Foundation Inc.
* 51 Franklin Street Fifth Floor Boston MA 02110-1301 USA.
*/
#include “config.h“
#include
#include
#include
#include
#include
#include “playtree.h“
#include “playtreeparser.h“
#include “stream/stream.h“
#include “libmpdemux/demuxer.h“
#include “asxparser.h“
#include “mp_msg.h“
#include “m_config.h“
#include “mpcommon.h“
////// List utils
void
asx_list_free(void* list_ptrASX_FreeFunc free_func) {
void** ptr = *(void***)list_ptr;
if(ptr == NULL) return;
if(free_func != NULL) {
for( ; *ptr != NULL ; ptr++)
free_func(*ptr);
}
free(*(void**)list_ptr);
*(void**)list_ptr = NULL;
}
/////// Attribs utils
char*
asx_get_attrib(const char* attribchar** attribs) {
char** ptr;
if(attrib == NULL || attribs == NULL) return NULL;
for(ptr = attribs; ptr[0] != NULL; ptr += 2){
if(strcasecmp(ptr[0]attrib) == 0)
return strdup(ptr[1]);
}
return NULL;
}
int
asx_attrib_to_enum(const char* valchar** valid_vals) {
char** ptr;
int r = 0;
if(valid_vals == NULL || val == NULL) return -2;
for(ptr = valid_vals ; ptr[0] != NULL ; ptr++) {
if(strcasecmp(valptr[0]) == 0) return r;
r++;
}
return -1;
}
#define asx_warning_attrib_required(pea) mp_msg(MSGT_PLAYTREEMSGL_WARN“At line %d : element %s don‘t have the required attribute %s“p->lineea)
#define asx_warning_body_parse_error(pe) mp_msg(MSGT_PLAYTREEMSGL_WARN“At line %d : error while parsing %s body“p->linee)
ASX_Parser_t*
asx_parser_new(void) {
ASX_Parser_t* parser = calloc(1sizeof(ASX_Parser_t));
return parser;
}
void
asx_parser_free(ASX_Parser_t* parser) {
if(!parser) return;
free(parser->ret_stack);
free(parser);
}
#define LETTER “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ“
#define SPACE “ \n\t\r“
int
asx_parse_attribs(ASX_Parser_t* parserchar* bufferchar*** _attribs) {
char *ptr1 *ptr2 *ptr3;
int n_attrib = 0;
char **attribs = NULL;
char *attrib *val;
ptr1 = buffer;
while(1) {
for( ; strchr(SPACE*ptr1) != NULL; ptr1++) { // Skip space
if(*ptr1 == ‘\0‘) break;
}
ptr3 = strchr(ptr1‘=‘);
if(ptr3 == NULL) break;
for(ptr2 = ptr3-1; strc
- 上一篇:des源码
- 下一篇:VideoEye 0.2 测试版
相关资源
- H5移动电商模板代码
- 连连看 cocos2dx 源代码
- 《C实用编程百例》源代码.rar
- 基于RS编码的视频源代码
- 使用Qt动画框架设计角色的二维动画二
- 使用Qt动画框架设计角色的二维动画演
- linux dhcpddhcp-4.2.5源代码
- 数据结构高一凡
- OpenGl三维建模源代码
- 嵌入式Linux应用程序开发详解教程含源
- FeiQ发布版源代码修复版(QT5).zip
- 周金平plantsimulation 教程源代码
- Linux Shell脚本攻略第3版pdf和源代码
- 服装网上购物商城源代码
- 网络入侵检测源代码
- 《x86汇编语言:从实模式到保护模式
- 泊松重建的工程源代码亲测可运行
- Realtek-RTD2660HDVer8.0-2019源代码
- 王者荣耀源码.rar
- 蓝牙协议及其源代码分析pdf 472页
- 胡广书现代信号处理PDF清晰版+源代码
- 实验四 源代码版本管理实验报告
- 基于web的会议管理系统源代码
- bash源代码
- 非常详细的Weka源代码分析集
- 编译原理课程设计源代码
- 李春葆 算法设计与分析第2版课件 、
- 进销存完整源代码
- .net新闻发布系统,完整源代码。
- 竹林蹊径-深入浅出Windows驱动开发源代
评论
共有 条评论