aure 发表于 2021-8-21 12:43:15

libffrtsp.so

本帖最后由 aure 于 2021-8-21 12:47 编辑

之前提供的libffrtsp.so是gcc-arm-6.3.1工具链编译的,由于我的工程使用的是gcc-arm-8.3,在链接libffrtsp.so是出错。请问下能提供下gcc-arm-8.3编译的libffrtsp.so或源码吗?
libffrtsp.so: undefined reference to `operator delete[](void*)@GLIBCXX_3.4'
libffrtsp.so: undefined reference to `operator new(unsigned int)@GLIBCXX_3.4'
libffrtsp.so: undefined reference to `vtable for __cxxabiv1::__class_type_info@CXXABI_1.3'
libffrtsp.so: undefined reference to `operator delete(void*, unsigned int)@CXXABI_1.3.9'
libffrtsp.so: undefined reference to `__cxa_end_cleanup@CXXABI_1.3'
libffrtsp.so: undefined reference to `__gxx_personality_v0@CXXABI_1.3'
libffrtsp.so: undefined reference to `vtable for __cxxabiv1::__si_class_type_info@CXXABI_1.3'
libffrtsp.so: undefined reference to `operator new[](unsigned int)@GLIBCXX_3.4'

799959745 发表于 2021-8-21 14:10:22

试一下这个,是用 SDK_PATH/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf 编译出来的

aure 发表于 2021-8-21 14:14:03

这个可以用了。还想请问下,这个能提供源码吗?我想要修改下参数,在FFRtspGet中加入用户参数(void *user_data),用于在C++调用中加入this指针对象

799959745 发表于 2021-8-21 15:16:18

源码不开放的哦

aure 发表于 2021-8-21 16:37:09

本帖最后由 aure 于 2021-8-21 17:04 编辑

799959745 发表于 2021-8-21 15:16
源码不开放的哦
那能实现一下这个吗?在callback中加入用户参数?还有就是想请教一下,callback中的最后一个参数为vdec通道号,这个是怎么填写进去的?是根据count这参数来的吗?count==1,那么vdec_chn=0;count == 2,那么vdec_chn == 0、vdec_chn == 1这样的吗?如果是这样的话,能否增加一个channel参数来指定呢?
structFFRTSPGet {   int count;
   structFFRTSPGet_URL_INFO ffrtsp_get_info[MAXFFRTSPChn];
   int (*callback)(u_int8_t*,unsigned,bool*,int);
};


板蓝根 发表于 2021-8-21 17:06:08

本帖最后由 板蓝根 于 2021-8-21 17:12 编辑

aure 发表于 2021-8-21 16:37
那能实现一下这个吗?在callback中加入用户参数?还有就是想请教一下,callback中的最后一个参数为vdec通 ...
diff --git a/ffrtsp/ffrtsp.hh b/ffrtsp/ffrtsp.hh
index 654c1be..025d6eb 100644
--- a/ffrtsp/ffrtsp.hh
+++ b/ffrtsp/ffrtsp.hh
@@ -25,8 +25,9 @@ struct FFRTSPGet_URL_INFO {

struct FFRTSPGet {
    int count;
+   void * user_data;
    structFFRTSPGet_URL_INFO ffrtsp_get_info;
-   int (*callback)(u_int8_t*,unsigned,bool*,int);
+   int (*callback)(u_int8_t*,unsigned,bool*,int,void*);
};



这是 Callback 函数,为什么需要填写呢?这只是为了多码流获取的时候区分具体哪条码流。

aure 发表于 2021-8-21 17:13:03

板蓝根 发表于 2021-8-21 17:06
diff --git a/ffrtsp/ffrtsp.hh b/ffrtsp/ffrtsp.hh
index 654c1be..025d6eb 100644
--- a/ffrtsp/ffrt ...

首先,非常感谢。还有就是想请教一下,callback中的最后一个参数为vdec通道号,这个是怎么填写进去的?是根据count这参数来的吗?count==1,那么vdec_chn=0;count == 2,那么vdec_chn == 0、vdec_chn == 1这样的吗?如果是这样的话,能否增加一个channel参数来指定呢?
structFFRTSPGet {   int count;
   structFFRTSPGet_URL_INFO ffrtsp_get_info;
   int (*callback)(u_int8_t*,unsigned,bool*,int);
};

板蓝根 发表于 2021-8-21 17:22:19

本帖最后由 板蓝根 于 2021-8-21 17:23 编辑

这是 Callback 函数,为什么需要填写呢?这只是为了多码流获取的时候区分具体哪条码流。
count 是码流总数
callback 最后一个参数:接口会根据 count 创建多条线程,谁最快就是0,第二就是1,第三就是2.。。。。。以此类推,这个不需要自己填,内部接口在 rtsp 注册的时候分配的。用户可以以此区分码流,来喂入不同的解码通道

aure 发表于 2021-8-21 17:29:01

板蓝根 发表于 2021-8-21 17:22
这是 Callback 函数,为什么需要填写呢?这只是为了多码流获取的时候区分具体哪条码流。
count 是码流总数 ...
好的,了解。就是根据传入的count个RTSP流URL,然后根据count来创建count个线程,然后解码通道就是0 ~ count-1。这样的对吧

goodman 发表于 2021-8-28 15:00:05

这个rtsp的效率怎嘛样
页: [1] 2 3
查看完整版本: libffrtsp.so