解决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

1812247_130369999999g7.png


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464984.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

受保护的属性无法直接读取

转载于:https://www.cnblogs.com/xiaobiaomei/p/9645795.html

MDK530编译出现ARM版本不符问题

1、用最新版的MDK530编译原来的代码出现问题&#xff1a;错误&#xff1a;“35; pragma import”是ARM编译器5的扩展&#xff0c;ARM编译器6不支持它[-Warmcc pragma import] 在仙女棒里面将ARM6修改为ARM5&#xff1a; 与此同时&#xff0c;在sys.c里面__asm void MSR_MSP(u3…

存储器Flash页、扇区、块的区别

作者 | strongerHuang微信公众号 | 嵌入式专栏大家都知道Flash是用于存储数据的存储器&#xff0c;但很多读者看到页(Page)、扇区(Sector)、块(Block)等这些单位时一脸懵逼&#xff0c;这到底是什么&#xff0c;有什么区别&#xff1f;下面就来讲讲关于Flash内部结构组织以及相…

volatile用法

许多程序员无法正确的理解C语言关键字volatile。这并不奇怪&#xff0c;大多数C原因书籍不过一两句一带而过。本文将告诉你如何正确使用它。 在C/C嵌入式代码中&#xff0c;你是否经历过下面的情况&#xff1a; ● 代码执行正常–直到你打开了编译器优化 ● 代码执行正常–直…

Linux 终端(TTY)

TTY 是 Teletype 或 Teletypewriter 的缩写&#xff0c;原来是指电传打字机&#xff0c;后来这种设备逐渐键盘和显示器取代。不管是电传打字机还是键盘显示器&#xff0c;都是作为计算机的终端设备存在的&#xff0c;所以 TTY 也泛指计算机的终端(terminal)设备。为了支持这些 …

印象笔记 MAC安装使用旧版本

印象笔记终于支持markdown了&#xff0c;赞&#xff01;第一个beta版用起来非常不错。提示更新安装新版本后保存markdown一直提示 “Note content is invalid.”&#xff0c;无法保存&#xff0c;无奈下只能安装旧版本印象笔记markdown 密码:wa23安装旧版本后&#xff0c;打开印…

你打开的那些网页,大概率是被监控了

你有没有这样的经历&#xff1a;当用手机搜索一件物品时&#xff0c;APP很快就会给你精准推荐这件物品。这并不是APP有多懂你&#xff0c;而是你的隐私已被APP监视了。哪怕你用的是“清理历史记录切换无痕模式”&#xff0c;后台依然可以记录你的搜索……还有&#xff0c;长夜漫…

操作系统常见面试题

1.进程的常见状态&#xff1f;以及各种状态之间的转换条件&#xff1f; 就绪&#xff1a;进程已处于准备好运行的状态&#xff0c;即进程已分配到除CPU外的所有必要资源后&#xff0c;只要再获得CPU&#xff0c;便可立即执行。执行&#xff1a;进程已经获得CPU&#xff0c;程序…

加强型的记录集权限(数据集权限、约束表达式设置功能)实现方法界面参考...

1。功能要求相对复杂的信息管理系统&#xff0c;有比较严格的权限管理设置的需求。例如业务管理系统中的一个角色只能查看金额小于500万的合同&#xff0c;而且只能看自己所在部门的合同&#xff0c;系统要求限制条件能灵活设置过滤所能看到的&#xff0c;所能操作的数据项&…

性能强悍的MCU,主频干到GHz

目前有两款高性能MCU印象深刻&#xff0c;不是多核心就是主频上1GHz。这也许是为了满足一些高数据吞吐量但仍需高实时性的需求吧。比如机械臂。一、第一款是来自于TI的Sitara AM2x&#xff0c;如型号为AM2434的单片机&#xff0c;拥有四个800MHz的核心&#xff0c;官方称为双核…

Unity3D_(游戏)控制物体的上、下、左、右移动

通过键盘上↑、↓、←、→实现对物体的控制 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Gary_Text : MonoBehaviour {public Transform WuTi;public float speed 1;// Use this for initializationvoid Start () {}// Upda…

糟糕的C语言睡眠排序算法

不知道大家知道这个算法没有&#xff0c;就是靠睡觉完成排序的。比如数字1 4 3&#xff0c;第一个数字1的时候&#xff0c;创建一个线程&#xff0c;然后让线程休眠1个时间单位&#xff0c;依次是 4 和 3个单位。因为睡眠的时间不同&#xff0c;线程醒的时间也不同。3会比4先醒…

写给小白看的,逆向工程怎么上路?

什么是逆向工程大家好&#xff0c;我是写代码的篮球&#xff0c;这篇文章转自小白哥的文章。给大家出一道思考题&#xff1a;用C语言设计一个程序&#xff0c;验证输入的密码是否是“12345678”&#xff0c;如果验证成功&#xff0c;就输出“success”&#xff0c;如果验证失败…

线程、同步与锁——Mutex想说爱你不容易

除了Lock&#xff08;&#xff09;、Monitor之外&#xff0c;我们最长用的就是Mutex了&#xff0c;但是玩不好Mutex就总会造成死锁或者AbandonedMutexException&#xff08;我就玩的不怎么好&#xff0c;在并发性访问测试的时候总是遇到关于Mutex的问题&#xff0c;各位线虫见笑…

STM32F4 串口DMA

串口DMA方式收发 笔者使用的是STM32F407VET6&#xff0c;共包含6路串口&#xff0c;页尾处程序已将全部串口的DMA收发配置完成&#xff0c;本文仅以串口1为例进行讲解。&#xff08;查看代码可直接跳至第二节或页尾处下载&#xff09; 1 STM32F4 DMA 简介 DMA&#xff0c;全称为…

由马化腾谈“微博修改功能”,看什么是优秀的产品经理

我仔细阅读过马化腾的的简历&#xff0c;他是一位技术出身的企业家。也是腾讯最大的产品经理,大家都知道产品经理的对产品的重要性那是不言而喻的&#xff0c;而产品是公司的灵魂。 今天早上起床&#xff0c;看到马化腾先生更新的微博。有位网络公司的CTO建议腾讯微博加一个修改…

flask 必知必会

在局域网中让其它电脑访问我的网站 from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return hello worldif __name__ __main__:app.run(debugTrue,host0.0.0.0,port9000) 转载于:https://www.cnblogs.com/wuheng-123/p/9665004.html

KEIL编译生成bin文件,并输出内存使用情况

一、STM32CubeMX生成的代码输出bin文件 输出bin文件&#xff1a; Run#1框填入的是&#xff1a;fromelf.exe空格–bin空格-o空格"$LL.bin"空格"#L"。“–bin”是两根英文短杆。 fromelf.exe --bin -o "$LL.bin" "#L"编译的时候&#x…

建议去华为

提问&#xff1a;老师&#xff0c;您好&#xff01;我现在手里有两个offer&#xff0c;正在艰难抉择中&#xff0c;一个是小米的相机图像调校工程师&#xff08;camera tuning&#xff09;&#xff0c;工作地在深圳&#xff0c;工资是12k*14&#xff0c;还有大概700元的餐补&am…

快学好这个去给学妹修热水器

作者&#xff1a;晓宇&#xff0c;排版&#xff1a;晓宇微信公众号&#xff1a;芯片之家&#xff08;ID&#xff1a;chiphome-dy&#xff09;2021年6月25号晚上9点&#xff0c;中国南方某一线城市&#xff0c;小张正在看着前阵子新出的电影误杀2&#xff0c;窗外&#xff0c;疲…