-
Notifications
You must be signed in to change notification settings - Fork 292
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Split video payload into multiple RTP messages when too big to fit into one #623
Conversation
I'd use What about the audio frame, will it always fit? |
71f5224
to
4df8a69
Compare
@nurupo ok, changed to UINT16_MAX. IIRC, yes, audio frames should always fit. |
Did you make sure |
Yup. |
I'm building Windows qTox v1.12.1 with your patch for anyone wanting to test this, will upload once they are done. You can build it yourself by following this and changing |
Great! I hope it works! |
4df8a69
to
8fe44ae
Compare
Here are the qTox Windows builds for testing (Apparently GitHub doesn't allow uploading 7z archives) |
its written in a most complex way. hard for me to understand |
8fe44ae
to
56dcbf1
Compare
this may not work because of: Line 190 in 0fce3fc
also this complex solution has the risk of intruducing new problems not yet found. |
No, that's how standard RTP works, increasing sequnum to monitor packet order. Also, it's super simple: split large payload into smaller chunks. The decoder then takes those chunks and creates an image out of them. |
its hard to say. it opens up for many new, not found bug. Line 314 in 0fce3fc
|
You do realize that sequence number has nothing to do with the issue in the first place? You do realize that sequence number is used for ordering packets and is defined by the standard to be 16-bit value? Why are you talking nonsense about this proposed fix that's infinitely better (does not all of the existing clients) than your solution? |
Reviewed 1 of 1 files at r1. Comments from Reviewable |
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed. Comments from Reviewable |
Would be nice if someone could test it. If someone who has video issues in the unpatched qTox 1.12.1 (the latest qTox stable release) could say if it works better in the patched qTox. |
If someone will have time tomorrow at ~20:00 - 22:00 UTC+0, we can test this patch over network (ToxId in GitHub bio) |
At zoff99's request, I just tested this branch and found that it's broken in I tested with https://github.com/zoff99/ToxCam/ branch '_video_test_01' to I haven't really looked into this issue and I don't know what to recommend, |
Glad that someone tested it. Sounds like this PR doesn't fix things then, more debugging/investigation is needed. |
@zugz Did you use the patched c-toxcore from this PR only as receiver? Because this fix can only work at the sender side. |
* Sunday, 2017-11-26 at 20:43 +0000 - sudden6 <notifications@github.com>:
@zugz Did you use the patched c-toxcore from this PR only as receiver?
Because this fix can only work at the sender side.
I used it on both sides. Just tested again to be sure - same results.
|
Trying it out myself. I also used toxcam branch '_video_test_01' compiled with this patch to send the video. And this is the result: https://streamable.com/215y8 @zugz Is that the expected result or? NOTE: In the video, there are some frames lost due to the screen recorder. |
* Sunday, 2017-11-26 at 21:43 +0000 - mannol <notifications@github.com>:
@zugz Is that the expected result or?
Weird. Yep, I believe that's how it should look. So I've no idea why it
doesn't work for me. I'd assume it was some unrelated problem with my
setup, except that zoff99's branch does work for me.
|
Reviewed 1 of 1 files at r1. Comments from Reviewable |
@mannol test again with also dont use qTox for the test, the received video window is to small to see if its crunched down or really full res |
@nurupo network test is failing. What do? |
No idea, you are asking the wrong person, I haven't been following toxcore development for at least a month or two now and back then everything was passing. |
There were some network refactors in toxcore recently, could be something to do with that, or could also be some issue on Travis's side. Ideally someone would debug why it's failing and fix it. I have also noticed it failing in the zoff's PR and have bugged @robinlinden about it since he has been keeping an eye on toxcore and merging PRs, but it seems like he doesn't know either. Out if curiosity, does the test fail locally for you? |
The network test passes locally for me, using the same flags that the clang travis does but with turned off format test: |
@zoff99 Probably, bug introduced by Travis |
its working now in circleCI. please don't change circleCI settings without first checking. |
@robinlinden @Diadlo @sudden6 wow 3 times LGTM without 1 single test. |
@zoff99 I presented an example of unpatched and patched versions on which there is a clear evidence of quality improvement.
And I'll say it again: there is a clear difference between unpatched and patched versions; the unpatched version is so bad that you can't see anything while the patched version is ok. |
I got around to testing this now too. Setup
Both PCs are connected over WLAN. The WLAN has a few percent packet loss, so I think this is a good simulation of a longer distance internet connection. Test1PC2 shares the screen (2960 x 1050) to PC1, PC2 is on c-toxcore master
Test2PC2 shares the screen (2960 x 1050) to PC1, PC2 is on c-toxcore with this PR
Test3PC2 shares the screen (2960 x 1050) to PC1, PC2 is on c-toxcore with #622
ConclusionThis PR gives better results than #622, but does not completely fix the problem. I think this PR should still be merged since it improves the situation without breaking the protocol and the complete fix most likely needs this anyway. |
@zoff99 I tested this PR before LGTMing it and it does work better than the current video sending code. |
ade444b
to
b15d809
Compare
This is the implementation of the [proposed fix](#620 (comment)) for [this issue](#620).
b15d809
to
e996a03
Compare
Fixes #620
This is the implementation of the proposed fix for this issue.
Haven't tried it myself yet but, it's simple enough to work. NOTE: this fix does not break the protocol.
This change is