关于android中ffmpeg的问题
在android中使用ffmpeg解码库的时候遇到如下问题,主要针对udp协议的视频流媒体:
当播放一个不存在的url地址的时候,会导致卡死现象,最终播放器被ANR机制强制杀死,对ffmpeg进行了下跟踪,发现是在/amffmpeg/libavformat/utils.c的try_get_mached_new_prot方法里,该方法在执行的时候会调用同目录下file_list2.c的url_is_file_list方法,这个方法又调用了probe_demux方法,这个方法在执行demux = probe_demux(lio, filename)的时候出现卡死现象
在调用上面代码之前,调用了udp.c里的udp_open方法,按照该方法的注释所言/* put it in UDP context, return non zero if error */,在open一个不存在的url地址的时候,应该返回一个非0的数,这样客户端就可以catch到错误进行处理了,但是实际上在调用该方法的时候返回了0,所以才执行了上面所说的代码出现了卡死的问题,我现在的想法是能不能在udp_open方法里调用ffmpeg的其他方法来判断该地址是否可以播放,由于刚接触ffmpeg,不太了解,还希望大神给予指导,谢谢!!