cdsun的专栏

私信 关注
cdsun
码龄19年
  • 723
    被访问量
  • 1
    原创文章
  • 972,072
    作者排名
  • 0
    粉丝数量
  • 于 2002-03-23 加入CSDN
获得成就
  • 获得0次点赞
  • 内容获得0次评论
  • 获得6次收藏
荣誉勋章
TA的专栏
  • dsgsd
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

ffmpeg编译的android可用的so文件,多个版本

经过本人测试,可以调用并成功执行ffmpeg的命令 jni相关的c语言代码为 #include <string.h> #include <jni.h> #include <ffmpeg.h> #ifdef ANDROID #include <jni.h> #include <android/log.h> #define LOGE(format, ...) __android_log_print(ANDROID_LOG_ERROR, "(>_<)", format, ##__VA_ARGS__) #define LOGI(format, ...) __android_log_print(ANDROID_LOG_INFO, "(=_=)", format, ##__VA_ARGS__) #else #define LOGE(format, ...) LOGE("(>_<) " format "\n", ##__VA_ARGS__) #define LOGI(format, ...) LOGE("(^_^) " format "\n", ##__VA_ARGS__) #endif int ffmpegmain(int argc, char **argv); //Output FFmpeg's av_log() void custom_log(void *ptr, int level, const char* fmt, va_list vl){ //To TXT file FILE *fp=fopen("/storage/emulated/0/av_log.txt","a+"); if(fp){ vfprintf(fp,fmt,vl); fflush(fp); fclose(fp); } //To Logcat //LOGE(fmt, vl); } JNIEXPORT jint JNICALL Java_com_rinogame_ffmpegandroidtranscoder_MainActivity_ffmpegcore( JNIEnv * env, jobject thiz, jint cmdnum, jobjectArray cmdline) { //FFmpeg av_log() callback av_log_set_callback(custom_log); int argc=cmdnum; char** argv=(char**)malloc(sizeof(char*)*argc); int i=0; for(i=0;i<argc;i++) { jstring string=(*env)->GetObjectArrayElement(env,cmdline,i); const char* tmp=(*env)->GetStringUTFChars(env,string,0); argv[i]=(char*)malloc(sizeof(char)*1024); strcpy(argv[i],tmp); } ffmpegmain(argc,argv); for(i=0;i<argc;i++){ free(argv[i]); } free(argv); return 0; }
rar
发布资源于 5 年前

Java TCP/IP Socket编程(原书第2版)

Java TCP/IP Socket编程(原书第2版) 清晰版 目录为: 1.1 计算机网络、分组报文和协议 1.2 关于地址 1.3 关于名字 1.4 客户端和服务器 1.5 什么是套接字 1.6 练习 第2章 基本套接字 2.1 套接字地址 2.2 TCP套接字 2.2.1 TCP客户端 2.2.2 TCP服务器端 2.2.3 输入输出流 2.3 UDP套接字 2.3.1 DatagramPacket类 2.3.2 UDP客户端 2.3.3 UDP服务器端 2.3.4 使用UDP套接字发送和接收信息 2.4 练习 第3章 发送和接收数据 3.1 信息编码 3.1.1 基本整型 3.1.2 字符串和文本 3.1.3 位操作:布尔值编码 3.2 组合输入输出流 3.3 成帧与解析 3.4 Java特定编码 3.5 构建和解析协议消息 3.5.1 基于文本的表示方法 3.5.2 二进制表示方法 3.5.3 发送和接收 3.6 结束 3.7 练习 第4章 进阶 4.1 多任务处理 4.1.1 Java多线程 4.1.2 服务器协议 4.1.3 一客户一线程 4.1.4 线程池 4.1.5 系统管理调度:Executor接口 4.2 阻塞和超时 4.2.1 accept()、read()和receive() 4.2.2 连接和写数据 4.2.3 限制每个客户端的时间 4.3 多接收者 4.3.1 广播 4.3.2 多播 4.4 控制默认行为 4.4.1 Keep-Alive 4.4.2 发送和接收缓存区的大小 4.4.3 超时 4.4.4 地址重用 4.4.5 消除缓冲延迟 4.4.6 紧急数据 4.4.7 关闭后停留 4.4.8 广播许可 4.4.9 通信等级 4.4.10 基于性能的协议选择 4.5 关闭连接 4.6 Applet 4.7 结束 4.8 练习 第5章 NIO 5.1 为什么需要NIO 5.2 与Buffer一起使用Channel 5.3 Selector 5.4 Buffer详解 5.4.1 Buffer索引 5.4.2 创建Buffer 5.4.3 存储和接收数据 5.4.4 准备Buffer:clear()、flip()和rewind() 5.4.5 压缩Buffer中的数据 5.4.6 Buffer透视:duplicate()和slice()等 5.4.7 字符编码 5.5 流(TCP)信道详解 5.6 Selector详解 5.6.1 在信道中注册 5.6.2 选取和识别准备就绪的信道 5.6.3 信道附件 5.6.4 Selector小结 5.7 数据报(UDP)信道 5.8 练习 第6章 深入剖析 6.1 缓冲和TCP 6.2 死锁风险 6.3 性能相关 6.4 TCP套接字的生存周期 6.4.1 连接 6.4.2 关闭TCP连接 6.5 解调多路复用揭秘 6.6 练习
pdf
发布资源于 9 年前

sdfadsa

asdfasdfasdfasd
原创
479阅读
0评论
0点赞
发布博客于 15 年前