Conversation
…s on audio quality
| AQ_NORMAL = 1, | ||
| AQ_HIGH = 2 | ||
| AQ_HIGH = 2, | ||
| AQ_RAW = 3 |
There was a problem hiding this comment.
As I said in the discussion- introducing a message specifying Raw support would be the cleanest approach to avoid the noise.
There was a problem hiding this comment.
I think it should be possible to do within the existing PROTMESSID_NETW_TRANSPORT_PROPS. But I have never analysed the way the two ends negotiate, or even whether it is an actual negotiation as opposed to just a notification.
There was a problem hiding this comment.
But if that didn't work, yes, we would need a message exchange so that we had backward compatibility in both directions.
There was a problem hiding this comment.
I think it should be possible to do within the existing
PROTMESSID_NETW_TRANSPORT_PROPS. But I have never analysed the way the two ends negotiate, or even whether it is an actual negotiation as opposed to just a notification.
I managed to get rid of the noise.
I added a version check so the client knows if the server can handle raw audio and if not the client will fall back to opus. This is backwards compatible and the changes made only affect the client.
| // free audio modes | ||
| opus_custom_mode_destroy ( OpusMode ); | ||
| opus_custom_mode_destroy ( Opus64Mode ); | ||
| } |
There was a problem hiding this comment.
This seems to cause issues from time to time. After closing the client I sometimes get an error with free() complaining about wrong sizes. Needs further investigation. Some help here would be appreciated
|
I'd prefer not to check for the Jamulus version number but rather based on capabilities - we don't have 4.0.0 out yet and it might break during the dev process. |
I wanted to reuse information already available as much as possible so I just added the code where there were version checks already implemented. (For sequence number and pan feature) |
|
Tested it and yes, the noise would be unacceptable. What is our fallback if max is selected but the server doesn't support it? |
I just noticed that if you connect to a server with Max selected you get the noise unless you switch audio quality again while connected. The server code is fine and doesn't need changes, I misplaced the check for my introduced bRawAudioSupported in the client code. I'll have a closer look |
|
Adding a slot to the client to reinit when it receives the server version seems to have fixed the noise issue. |
|
We still get crashes on windows, especially when using more coplex setups including audio routing software. Linux, Mac and android builds work fine so far. Sounds great but still needs more testing and fixes |
Add a new "raw" audio quality setting
This PR adds uncompressed audio ("raw") to the quality settings so there is no Opus compression along the way
Discussion in #3654
This feature improves latency as well. I gained 2ms by using uncompressed audio while having a better audio quality.
This is work in progress, please help me test it
Checklist