日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解决vlc-android播放http视频退出问题

發布時間:2023/12/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决vlc-android播放http视频退出问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前用vlc-android播放http視頻,程序就自動退出了,嘗試用ndk-gdb調試,但是一調試,就報

?

/home/administrator/code/vlc-android/extras/package/android/vlc-android/obj/local/armeabi/gdb.setup:4: Error in sourced command file:
Remote communication error: Connection reset by peer.

到網上也沒找到解決方案,最后只用采用在c代碼中加入調試打印語句的方式,看究竟是哪里報錯,最后跟蹤到是調用poll函數引起,

最后采在ffmpeg源碼中找到一個poll函數的源碼,修改后加入到vlc-android中

int poll(struct pollfd *fds, nfds_t numfds, int timeout)

{

?? ?fd_set read_set;

?? ?fd_set write_set;

?? ?fd_set exception_set;

?? ?nfds_t i;

?? ?int n;

?? ?int rc;

#if HAVE_WINSOCK2_H

?? ?if (numfds >= FD_SETSIZE) {

?? ? ? ?errno = EINVAL;

?? ? ? ?return -1;

?? ?}

#endif

?? ?FD_ZERO(&read_set);

?? ?FD_ZERO(&write_set);

?? ?FD_ZERO(&exception_set);

?? ?n = -1;

?? ?for(i = 0; i < numfds; i++) {

?? ? ? ?if (fds[i].fd < 0)

?? ? ? ? ? ?continue;

#if !HAVE_WINSOCK2_H

?? ? ? ?if (fds[i].fd >= FD_SETSIZE) {

?? ? ? ? ? ?errno = EINVAL;

?? ? ? ? ? ?return -1;

?? ? ? ?}

#endif

?? ? ? ?if (fds[i].events & POLLIN) ?FD_SET(fds[i].fd, &read_set);

?? ? ? ?if (fds[i].events & POLLOUT) FD_SET(fds[i].fd, &write_set);

?? ? ? ?if (fds[i].events & POLLERR) FD_SET(fds[i].fd, &exception_set);

?? ? ? ?if (fds[i].fd > n)

?? ? ? ? ? ?n = fds[i].fd;

?? ?};

?? ?if (n == -1)

?? ? ? ?/* Hey!? Nothing to poll, in fact!!! */

?? ? ? ?return 0;

?? ?if (timeout < 0)

?? ? ? ?rc = select(n+1, &read_set, &write_set, &exception_set, NULL);

?? ?else {

?? ? ? ?struct timeval ? ?tv;

?? ? ? ?tv.tv_sec = timeout / 1000;

?? ? ? ?tv.tv_usec = 1000 * (timeout % 1000);

?? ? ? ?rc = select(n+1, &read_set, &write_set, &exception_set, &tv);

?? ?};

?? ?if (rc < 0)

?? ? ? ?return rc;

?? ?for(i = 0; i < numfds; i++) {

?? ? ? ?fds[i].revents = 0;

?? ? ? ?if (FD_ISSET(fds[i].fd, &read_set)) ? ? ?fds[i].revents |= POLLIN;

?? ? ? ?if (FD_ISSET(fds[i].fd, &write_set)) ? ? fds[i].revents |= POLLOUT;

?? ? ? ?if (FD_ISSET(fds[i].fd, &exception_set)) fds[i].revents |= POLLERR;

?? ?};

?? ?return rc;

}

測試播放網上的http視頻,視頻地址:http://forum.ea3w.com/coll_ea3w/attach/2008_10/12231788691.wmv


總結

以上是生活随笔為你收集整理的解决vlc-android播放http视频退出问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。