Commit graph

196 commits

Author SHA1 Message Date
Barry
b44f78f19b update:视频传输和控制指令改为两个不同的socket videosocket负责视频接收 controlsocket负责指令发送 2019-06-18 20:25:38 +08:00
Barry
7220d91ed3 update:合并command命令 2019-06-18 16:37:12 +08:00
Barry
a70905f68e fix:修复文本注入bug 2019-06-18 15:55:27 +08:00
Barry
fc4f03d48f fix:server下拉菜单功能增加兼容性 2019-06-18 15:50:02 +08:00
Barry
4e928fd74f update:添加方法以记录错误而不抛出 2019-06-18 15:47:00 +08:00
Barry
ad74c0e15b fix: server checkstyle errors
Fix errors reported by:

    gradle -p server check
2019-06-18 15:43:53 +08:00
Barry
fd86b98a32 fix:Do not call codec.stop() on exception 2019-06-18 15:29:11 +08:00
Barry
2801a26737 update:stream放到单独模块 2019-06-18 15:21:09 +08:00
Barry
01121ff470 update:decoder and recorder接口只读变量增加const 2019-06-18 15:17:48 +08:00
Barry
5c196d9569 update:修改videobuffer提供帧的逻辑使得易于理解 2019-06-18 15:09:33 +08:00
Barry
090a5113d1 update:VideoForm成员变量m_decoder改为堆上创建 2019-06-18 14:53:42 +08:00
Barry
f401f2dcf2 update: VideoForm成员变量m_vb改为堆上创建 2019-06-18 14:49:18 +08:00
Barry
e61a09f477 Add stream layer
The decoder initially read from the socket, decoded the video and sent
the decoded frames to the screen:

              +---------+      +----------+
  socket ---> | decoder | ---> |  screen  |
              +---------+      +----------+

The design was simple, but the decoder had several responsabilities.

Then we added the recording feature, so we added a recorder, which
reused the packets received from the socket managed by the decoder:

                                    +----------+
                               ---> |  screen  |
              +---------+     /     +----------+
  socket ---> | decoder | ----
              +---------+     \     +----------+
                               ---> | recorder |
                                    +----------+

This lack of separation of concerns now have concrete implications: we
could not (properly) disable the decoder/display to only record the
video.

Therefore, split the decoder to extract the stream:

                                    +----------+      +----------+
                               ---> | decoder  | ---> |  screen  |
              +---------+     /     +----------+      +----------+
  socket ---> | stream  | ----
              +---------+     \     +----------+
                               ---> | recorder |
                                    +----------+

This will allow to record the stream without decoding the video.
2019-06-18 14:40:25 +08:00
Barry
2d6dfc09e1 fix:recording with old decoding/encoding API
The deprecated avcodec_decode_video2() should always the whole packet,
so there is no need to loop (cf doc/examples/demuxing_decoding.c in
FFmpeg).

This hack changed the packet size and data pointer. This broke recording
which used the same packet.
2019-06-15 18:33:08 +08:00
Barry
667b09259c update:VideoBuffer stop重命名为interrupt 2019-06-15 18:29:19 +08:00
Barry
83fbdb5c23 update:frame类重命名为videobuffer类 2019-06-15 18:25:32 +08:00
Barry
a451b0feee update:移除解码器中没用的mutex 2019-06-15 18:09:28 +08:00
Barry
743b2398c9 add:下拉通知栏 2019-06-15 18:07:16 +08:00
Barry
3bee801fd7 add:视频窗口始终在前 2019-06-15 07:56:06 +08:00
Barry
d7532cef33 update:固定尺寸 2019-06-15 07:34:36 +08:00
Barry
8d83585130 add:compat.h 2019-06-15 07:24:07 +08:00
Barry
70eccc0f61 add:录像支持mkv 2019-06-15 06:45:12 +08:00
Barry
0348fe15b5 fix:decoder内存泄漏 2019-06-12 09:14:44 +08:00
Barry
cf459bbd32 add:Rescale packet timestamp to container time base
Some containers force their own time base. For example, matroska
overwrite time_base to (AVRational) {1, 1000}.

Therefore, rescale our packet timestamps to the output stream time base.
2019-06-12 09:07:31 +08:00
Barry
247f8eb1d1 update:Write header file with correct extradata 2019-06-12 08:56:19 +08:00
Barry
43c1b6870f add:转发ffmpeg log 2019-06-12 08:08:26 +08:00
Barry
eded0d1f78 fix:decoderBuffer内存泄漏 2019-06-12 07:49:35 +08:00
Barry
39eea20b6c fix:incorrect comment 2019-06-12 07:07:10 +08:00
Barry
748ba63a64 add:增加bug备注 2019-05-07 23:38:10 +08:00
Barry
650419056a Merge branch 'master' of https://gitee.com/Barryda/QtScrcpy 2019-04-14 14:04:53 +08:00
Barry
771d14e825 update:add default port 2019-04-14 14:04:33 +08:00
rankun
56e1ce6200 fix:mac编译不过 2019-03-21 14:35:06 +08:00
Barry
6d216191d9 Merge branch 'master' of https://gitee.com/Barryda/QtScrcpy 2019-02-25 22:35:30 +08:00
Barry
437a58624f forward时防止早连接 2019-02-25 22:35:08 +08:00
rankun
7165c60cb3 update:mousetap重构 2019-02-18 13:27:54 +08:00
rankun
a53fe2ad04 update:qtquick可选 2019-02-18 12:46:38 +08:00
rankun
f8908549ce update:mac限制鼠标移动 2019-02-10 20:22:29 +08:00
rankun
2d94db6dbd update:mac不去掉标题栏 2019-02-04 18:43:16 +08:00
rankun
b879451402 update:全屏后设置焦点,防止工具栏抢焦点 2019-02-04 18:05:40 +08:00
rankun
b8ce7d6bd2 Merge branch 'master' of gitee.com:Barryda/QtScrcpy 2019-02-04 13:57:51 +08:00
rankun
9610545e97 update:全屏模式不显示工具窗口 2019-02-04 13:57:34 +08:00
Barry
de71c88b24 update:美化工具窗口 2019-01-27 20:02:17 +08:00
rankun
618e6a099b update:mac异形窗口+全屏解决 2019-01-27 19:32:02 +08:00
Unknown
1d54d9b385 update:更新ffmpeg编译参数详解 2019-01-27 18:10:19 +08:00
Unknown
3b6041d893 linux下重新编译ffmpeg来支持封装h264到mp4文件 2019-01-27 18:05:55 +08:00
Unknown
9506957da4 fix:避免子线程更新ui 2019-01-27 16:38:47 +08:00
Unknown
01898bfbda setFixedSize影响linux全屏,
fremlesswindow不影响linux全屏
2019-01-27 16:20:09 +08:00
Barry
5f1c120a89 update:视频窗口固定大小 2019-01-27 15:57:37 +08:00
rankun
7d06d4582a fix:mac下运行依赖ffmpeg dylib 2019-01-27 15:51:44 +08:00
rankun
df6681742b fix:mac上无边框窗口全屏有问题,暂时屏蔽 2019-01-27 15:43:06 +08:00