strcasecmp


热门范文 2019-08-15 04:48:11 热门范文
[摘要]strcasecmp一:c 语言实现strcasecmp define __tolower(c)    (((A

【www.shanpow.com--热门范文】

strcasecmp一:c 语言实现strcasecmp


#define __tolower(c)    ((("A" <= (c))&&((c) <= "Z")) ? ((c) - "A" + "a") : (c))
int strcasecmp(const char *s1, const char *s2){    const unsigned char *p1 = (const unsigned char *) s1;    const unsigned char *p2 = (const unsigned char *) s2;    int result = 0;    if (p1 == p2)    {        return 0;    }    while ((result = __tolower(*p1) - __tolower(*p2)) == 0)    {        if (*p1++ == "\0")        {            break;        }    p2++;    }    return result;}

strcasecmp二:Android

数据流的封装一、
由数据源DataSource生成MediaExtractor。
通过MediaExtractor::Create(dataSource)来实现。Create方法通过两步来生成相应的MediaExtractor:
1、通过dataSource->sniff来探测数据类型
2、生成相应的Extractor: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG4)
 
|| !strcasecmp(mime, "audio/mp4")) {
 
return new MPEG4Extractor(source);
 
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_MPEG)) {
 
return new MP3Extractor(source, meta);
 
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_NB)
 
|| !strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_WB)) {
 
return new AMRExtractor(source);
 
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_WAV)) {
 
return new WAVExtractor(source);
 
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_OGG)) {
 
return new OggExtractor(source);
 
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MATROSKA)) {
 
return new MatroskaExtractor(source);
 
} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG2TS)) {
 
return new MPEG2TSExtractor(source);
 
} 二、
接下来,通过以下代码把音视频轨道分离: 1
2
3
4
5
6
7
8
9
10
11 if (!haveVideo && !strncasecmp(mime, "video/", 6)) {
 
setVideoSource(extractor->getTrack(i));
 
haveVideo = true;
 
} else if (!haveAudio && !strncasecmp(mime, "audio/", 6)) {
 
setAudioSource(extractor->getTrack(i));
 
haveAudio = true; 生成mVideoTrack和mAudioTrack两个MediaSource。
三、
到目前为止我们得到的这两个MediaSource只具有parser功能,没有decode功能。还需要对这两个MediaSource做进一步的包装: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 mVideoSource = OMXCodec::Create(
 
mClient.interface(), mVideoTrack->getFormat(),
 
false, // createEncoder
 
mVideoTrack,
 
NULL, flags);
 
mAudioSource = OMXCodec::Create(
 
mClient.interface(), mAudioTrack->getFormat(),
 
false, // createEncoder
 
mAudioTrack); 这回又获取了两个MediaSource。它们具有parse和decode功能。当调用MediaSource.start()方法后,它的内部就会开始从数据源获取数据并解析,等到缓冲区满后便停止。在AwesomePlayer里就可以调用MediaSource的read方法读取解码后的数据。
对于mVideoSource来说:
读取的数据。 1 mVideoSource->read(&mVideoBuffer, &options) 交给显示模块进行渲染。 1 mVideoRenderer->render(mVideoBuffer); 对mAudioSource来说:
用mAudioPlayer对mAudioSource进行封装,然后由mAudioPlayer负责读取数据和播放控制。
AwesomePlayer流程URI,FD

DataSource

MediaExtractor
|
mVideoTrack mAudioTrack//音视频数据流

mVideoSource mAudioSource//音视频解码器
| |
mVideoBuffer mAudioPlayer
上面示意了数据由源到最终解码后的流程。
1、设置DataSource,数据源可以两种URI和FD。URI可以http://,rtsp://等。FD是一个本地文件描述符,能过FD,可以找到对应的文件。
2、由DataSource生成MediaExtractor。通过sp extractor = MediaExtractor::Create(dataSource);来实现。 MediaExtractor::Create(dataSource)会根据不同的数据内容创建不同的数据读取对象。
3、通过调用setVideoSource由MediaExtractor分解生成音频数据流(mAudioTrack)和视频数据流(mVideoTrack)。
4、 onPrepareAsyncEvent()
如果DataSource是URL的话,根据地址获取数据,并开始缓冲,直到获取到mVideoTrack和mAudioTrack。
mVideoTrack和mAudioTrack通过调用initVideoDecoder()和initAudioDecoder()来生成mVideoSource和mAudioSource这两个音视频解码器。
然后调用postBufferingEvent_l()提交事件开启缓冲。数据缓冲的执行函数是onBufferingUpdate()。
缓冲区有足够的数据可以播放时,调用play_l()开始播放。play_l()中关键是调用了postVideoEvent_l(),提交了 mVideoEvent。这个事件执行时会调用函数onVideoEvent()。这个函数通过调用 mVideoSource->read(&mVideoBuffer, &options)进行视频解码。音频解码通过mAudioPlayer实现。
视频解码器解码后通过mVideoSource->read读取一帧帧的数据,放到mVideoBuffer中,最后通过mVideoRenderer->render(mVideoBuffer)把视频数据发送到显示模块。
当需要暂停或停止时,调用cancelPlayerEvents来提交事件用来停止解码,还可以选择是否继续缓冲数据。

strcasecmp三:PHP通过IP 获取 地理位置(实例)


发布:JB02   来源:脚本学堂     【大 中 小】
分享一例php代码,实现通过IP地址获取访问者的地理位置,在php编程中经常用到,有需要的朋友参考下吧。本节内容:PHP通过IP获取地理位置
例子: 
复制代码代码示例:
<?php//取得访问者的物理地址function get_client_dizhi($ip){
$doc = new DOMDocument();$doc->load("http://www.youdao.com/smartresult-xml/search.s?type=ip&q=".$ip); //读取xml文件$humans = $doc->getElementsByTagName( "smartresult" ); //取得humans标签的对象数组foreach( $humans as $human ){$names = $human->getElementsByTagName( "product" ); //取得name的标签的对象数组$name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name>$sexs = $human->getElementsByTagName( "location" );$sex = $sexs->item(0)->nodeValue;}return $sex;
}//获取IP地址// 获取客户端IP地址function get_client_ip(){   if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))       $ip = getenv("HTTP_CLIENT_IP");   else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))       $ip = getenv("HTTP_X_FORWARDED_FOR");   else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))       $ip = getenv("REMOTE_ADDR"); // www.jbxue.com   else if (isset($_SERVER["REMOTE_ADDR"]) && $_SERVER["REMOTE_ADDR"] && strcasecmp($_SERVER["REMOTE_ADDR"], "unknown"))       $ip = $_SERVER["REMOTE_ADDR"];   else       $ip = "unknown";   return($ip);}
$ip=get_client_ip();$dizhi=get_client_dizhi($ip);
附,新浪、有道、腾讯的Ip地址查询接口。
1,新浪 IP 地址查询接口:http://counter.sina.com.cn/ip?ip=139.256.0.9接口形式:http;返回内容:javascript 片段;查询地址:可以指定 IP 地址;
2,有道 IP 地址查询接口:http://www.youdao.com/smartresult-xml/search.s?type=ip&q=116.230.0.9接口形式:http;返回内容:xml 片段;查询地址:可以指定 IP 地址;
3,腾讯 IP 地址查询接口:http://fw.qq.com/ipaddress接口形式:http;返回内容:javascript 片段;查询地址:不可以可以指定 IP 地址;
>>> 您可能感兴趣的文章:PHP获取访问者IP地址的二种方法php 操作IP地址库QQWry.dat的实例分享php获取真实ip地址的实例分享php 客户端IP地址的六种获取方法php 判断来访IP地址是国内还是国外的php 获取客户端IP地址、地理信息、浏览器信息、本地真实IP的代码php记录访问者IP地址的代码php根据IP地址获取当前地理位置接口php获取客户端IP地址的四种方法
>>> 延伸阅读:php获取网站地理位置及操作系统信息的代码分享php通过IP获取地理位置的实例参考php 获取用户真实IP与地理位置(淘宝IP接口)的实现代码php 获取客户端IP地址、地理信息、浏览器信息、本地真实IP的代码php根据IP地址获取当前地理位置接口

本文来源:https://www.shanpow.com/news/414077/

《strcasecmp.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

相关阅读
  • 《中国九年义务教育歌》 《中国九年义务教育歌》
  • 员工作业效率算法说明 员工作业效率算法说明
  • 补入党介绍人证明 补入党介绍人证明
  • 严字当头确保全面从严治党主体责任落地落实 严字当头确保全面从严治党主体责任落地落实
  • 被巡察单位党组工作汇报材料 被巡察单位党组工作汇报材料
  • 疫情防控党课讲稿大全 疫情防控党课讲稿大全
  • 疫情防控事迹材料 疫情防控先进个人事迹材料 疫情防控事迹材料 疫情防控先进个人事迹材料
  • 大学生读书笔记1000字 大学生读书笔记1000字
为您推荐