主页 > 其他  > 

RISC-V平台编译state-threadx264ffmpegzlog

RISC-V平台编译state-threadx264ffmpegzlog

1.state-threads

源码下来之后 

直接 make linux-debug

目录下生成了对应的.a 和 .h文件 

gcc test.c -o test -l st -L .  

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <sys/socket.h> #include <netinet/in.h> #include <st.h> #define BACKLOG 5 #define IOBUFSIZE 8192 #define PORT 7474 static void *handle_request(void *arg) { st_netfd_t cli_nfd = (st_netfd_t) arg; struct pollfd pd; pd.fd = st_netfd_fileno(cli_nfd); pd.events = POLLIN; char buf[IOBUFSIZE]; int nw, nr; for ( ; ; ) { /*pd.revents = 0; if (st_poll(&pd, 1, ST_UTIME_NO_TIMEOUT) <= 0) { printf("st_poll<=0\n"); break; }*/ //if (pd.revents & POLLIN) { nr = (int) st_read(cli_nfd, buf, IOBUFSIZE, ST_UTIME_NO_TIMEOUT); if (nr <= 0)break; printf("[recv][%d] %s\n",nr,buf); nw = st_write(cli_nfd, buf, nr, ST_UTIME_NO_TIMEOUT); printf("[write] %d\n",nw); if (nw == nr)break; //} } done: st_netfd_close(cli_nfd); return NULL; } int main() { int sock, client_fd; struct sockaddr_in address; struct sockaddr_in cli_addr; socklen_t addrlen = sizeof(address); st_netfd_t cli_nfd, srv_nfd; int n =0; // 初始化StateThreads库 if (st_init() != 0) { perror("st_init"); return 0; } if ((sock = socket(PF_INET, SOCK_STREAM, 0)) < 0) { printf("socket"); exit(1); } n = 1; if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&n, sizeof(n)) < 0) { printf("setsockopt"); exit(1); } // 绑定socket到端口 address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(PORT); if (bind(sock, (struct sockaddr *)&address, sizeof(address)) < 0) { printf("bind"); exit(1); } listen(sock, 128); if ((srv_nfd = st_netfd_open_socket(sock)) == NULL) { printf("st_netfd_open"); exit(1); } printf("tcp srv start\n"); for ( ; ; ) { n = sizeof(cli_addr); cli_nfd = st_accept(srv_nfd, (struct sockaddr *)&cli_addr, &n,ST_UTIME_NO_TIMEOUT); if (cli_nfd == NULL) { printf("st_accept\n"); continue; } if (st_thread_create(handle_request, cli_nfd, 0, 0) == NULL) { printf("st_thread_create\n"); continue; } } close(sock); st_netfd_close(srv_nfd); return 0; }

用网络助手测试下正常

2.x264  

默认的官网的不支持risc-v平台  去下面链接下载支持此架构的

Jiayan Qian / x264-riscv-dev · GitLab (videolan.org)  

./configure \         --prefix=./ubuntu \         --enable-static \         --enable-shared \

 

如上图所示生成了对应的.a文件 和头文件

3.ffmpeg

 

执行 脚本 

 

打了一大串信息 

 

标签:

RISC-V平台编译state-threadx264ffmpegzlog由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“RISC-V平台编译state-threadx264ffmpegzlog