影石社招1.5年

提问环节:
1、说一下C++的三大特性
2、C++多态
3、讲一下虚函数指针和虚函数表、虚函数表在虚拟内存的哪个区
4、说一下用到的C++11/14/17的新特性
5、多线程同步的方式
6、用过哪些锁?
7、讲一下RAII
8、智能指针有哪些?有什么特点?
9、写一个简单的shared_ptr
10、shared_ptr的底层,在内存中是怎么布局的?
11、说一下shared_ptr的循环引用?怎么解决?weak_ptr如何创建和使用?
12、指向内存的shared_ptr都释放了,但还有一个weak_ptr指向这块内存,这块内存会释放吗?
13、weak_ptr也有计数吗?说一下
14、讲一下常见的几种设计模式和实现方法
15、单例模式的实现,以及单例模式的优缺点
16、设计模式的六大原则
17、聊一下Impl?
18、ffmpeg和gstreamer框架的对比和优缺点
19、说一下音视频同步的原则和做法
20、OpenGL渲染帧率如何确定?
21、如果显示器帧率是60帧,视频是150帧,应该怎么渲染
22、介绍一下你的码率控制模块的设计框架?码率控制模式如何选型?(cbr/abr/vbr)
23、介绍一下你是如何处理弱网卡顿的(时域svc + 记忆化滑动窗口预测)
24、如果网络持续恶化,你会立刻降码率吗?
25、介绍一下你的多路解码模块设计?内存池大概是怎么实现的?(多级分辨率链表 + LPU)
26、讲一下AI工具,如何使用和发布skills和mcp server
27、平时用AI开发多吗?都是怎么用AI的?
28、Qt主窗口用的QWidget还是QMainWindow?为什么?
29、共享屏幕看一下项目代码,看看你的代码习惯

反问环节:
Q1:您组里做什么业务呢?
A1:音视频SDK开发,涉及linux和windows端,这块跟你经历接近;除此之外还要在移动端APP做拼接、特效等功能,不过这些你过来后也可以学。
Q2:您是如何解决soc芯片编码能力不足,但需要给多路APP用户推流的问题?如果复用某几路流,码控不能兼容用户体验,您是如何思考的?
A2:我们业务是手机和相机局域网通信的,并且只推一路流(笑),不过你提的这个问题确实不好解决。
Q3:请您给一些关于我学习和成长的建议?
A3:了解基础技术的前提下,多学习和使用AI吧,AI更新太快,程序员都要被自己开发的AI干掉了(笑)
全部评论
前面打错,是LRU
点赞 回复 分享
发布于 04-09 23:57 广东
补充两题: 1. 问了对多进程和多线程的理解,顺便提到macOS偏好多进程开发的原因 2. 问了为什么基类析构函数一般做成虚函数,构造函数能不能做成虚函数,为什么?
点赞 回复 分享
发布于 04-09 12:21 广东

相关推荐

牛客28967172...:跟着卡子哥才是正道,灵茶属实不太行
点赞 评论 收藏
分享
1. 讲一下多路线程池的实现原理,怎么做线程同步?2. 生产者-消费者队列(有界队列)实例需要几个条件变量和锁来管理?(1个和2个都行,2个就是not_empty和not_full)3. 你提到无锁队列,讲一下实现方法?4. 为什么用atomic原子变量来实现无锁队列?了解atomic的底层原理吗,这样做会引入什么代价?5. 为什么atomic+自旋实现的无锁队列比有锁队列性能更优?6. 讲一下内存序有哪几种?分别有什么特性怎么使用?7. 为什么memory_order_acquire和memory_order_release 用于锁的获取和释放?8. 为什么要使用内存序?为什么执行顺序和代码顺序会出现不一致?9. 你提到编译器优化?还有其他原因吗?(CPU乱序,缓存一致性)10. 讲一下返回值优化?返回值优化的原理能展开说说吗?11. 讲一下你的解码帧内存池的实现原理和数据结构选型?12. 你提到你每个页设置的是64KB,为什么选这个大小?13. 如果你每个页拼接起来尾部有不足64KB的怎么办?(已经按公倍数选择了,解码帧分辨率都是64的倍数)14. 讲一下你为什么选LRU,假如你用来管理页的vector回收了一些页块回来,造成了外部碎片,该怎么处理?(硬控三分钟,给我整麻了)15. 聊聊webrtc和websocket的差异和优缺点,你认为他们分别适合什么样的业务场景,有什么优缺点?16. 手撕:跳跃游戏II
查看16道真题和解析
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务