Comments (2)
Could you highlight what your application looks like? The API in our sample is invoked twice. Once to get the size:
CHK_STATUS(serializeSessionDescriptionInit(&offerSessionDescriptionInit, NULL, &buffLen));
buffLen is initialized to 0 in the viewer sample. In the function, the second parameter is NULL, which means nothing gets copied into sessionDescriptionJSON
as part of SNPRINTF. The check CHK(sessionDescriptionJSON == NULL)
evaluates to TRUE leading to the rest of the logic to happen. Once the size is retrieved, the next call is made:
SignalingMessage message;
CHK_STATUS(serializeSessionDescriptionInit(&offerSessionDescriptionInit, message.payload, &buffLen));
In this call, the SDK serializes the SDP.
Could you attach logs and how you are invoking the APIs in your application?
from amazon-kinesis-video-streams-webrtc-sdk-c.
@disa6302
Hi, I have not modify the code in sample and just run kvsWebRTCClientViewer.exe, and it occur STATUS_BUFFER_TOO_SMALL
and go to CleanUp.
The point of the question is :
“ the second parameter is NULL, which means nothing gets copied into sessionDescriptionJSON as part of SNPRINTF ”
This has worked in Linux or Other Platform, but in Windows with gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project), it is not work.
while ((next = STRNCHR(curr, (UINT32) (tail - curr), '\n')) != NULL) {
lineLen = (UINT32) (next - curr);
if (lineLen > 0 && curr[lineLen - 1] == '\r') {
lineLen--;
}
amountWritten =
SNPRINTF(sessionDescriptionJSON + *sessionDescriptionJSONLen, sessionDescriptionJSON == NULL ? 0 : inputSize - *sessionDescriptionJSONLen,
"%*.*s%s", lineLen, lineLen, curr, SESSION_DESCRIPTION_INIT_LINE_ENDING);
CHK(sessionDescriptionJSON == NULL || ((inputSize - *sessionDescriptionJSONLen) >= amountWritten), STATUS_BUFFER_TOO_SMALL);
*sessionDescriptionJSONLen += amountWritten;
curr = next + 1;
}
in the code, sessionDescriptionJSON is NULL, but *sessionDescriptionJSONLen will increase after "*sessionDescriptionJSONLen += amountWritten", and it will make the first parameter of SNPRINTF is "NOT NULL",
firstly , the memory address is invalided.
secondly, in windows, it will return -1 (UINT32_MAX),
these will make the problem.
the debug information as follow :
so , i do a little change as follow and it worked :
SNPRINTF(sessionDescriptionJSON == NULL ? NULL :
sessionDescriptionJSON + *sessionDescriptionJSONLen, sessionDescriptionJSON == NULL ? 0 : inputSize - *sessionDescriptionJSONLen,
"%*.*s%s", lineLen, lineLen, curr, SESSION_DESCRIPTION_INIT_LINE_ENDING);
from amazon-kinesis-video-streams-webrtc-sdk-c.
Related Issues (20)
- [Bug]: Network filter does not apply to socket routing HOT 1
- [Bug]: resolveStunIceServerIp Ignores Command Line AWS Region, Uses Environment Variable Instead HOT 1
- [Feature request]: Need to build the kvsdk package with OpenWrt HOT 3
- [Documentation]: README.md should mention the supported video codecs for WebRTC ingestion HOT 2
- [Bug]: Memory leak for WebRTC SDK 1.10.2 when testing sample code HOT 28
- [Bug]: kvsWebrtcClientMasterGstSample receive audio not work HOT 1
- [Bug]: KVS SDK RTP retransmitter bug HOT 2
- [Bug]: [2024/05/23 15:19:40:0909] W: [wsicli|5a|WS/h1/default/m-579da5db.kinesisvideo.ap-southeast-]: lws_client_ws_upgrade: got bad HTTP response '403' 2024-05-23 15:19:40.091 VERBOSE lwsWssCallbackRoutine(): WSS callback with reason 1 2024-05-23 15:19:40.091 WARN lwsWssCallbackRoutine(): Client connection failed. Connection error string: HS: ws upgrade response not 101 HOT 8
- softphone signaling server HOT 4
- [Bug]: how to ensure the functon "wakeLwsServiceEventLoop " thread safety,because of "lws_callback_on_writable" is not thread-safe HOT 1
- [Bug]: how to ensure the functon "wakeLwsServiceEventLoop " thread safety,because of "lws_callback_on_writable" is not thread-safe
- [Bug]: decryptSrtcpPacket(): Decrypting rtcp packet failed with error code 9 on srtp session HOT 4
- [Bug]: TURN_STATE_GET_CREDENTIALS fails after update from 1.7.2. to 1.10.2 of the SDK HOT 17
- [Bug]: Windows build fails at openssl HOT 1
- [Bug]: Seemingly SessionDescription creation bug HOT 1
- [Feature request]: Reduce the time it takes to connect to live view. HOT 1
- [Bug]: Close peer connection:ERROR fromCheckConnectionIceAgentState(): operation returned status code: 0x5a00000d HOT 4
- [Bug]: 1.10.2, kvsWebrtcClientMasterGstSample continually increases CPU usage HOT 7
- [Bug]: Wrong SDP answer when the codec doesn't match with viewer
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from amazon-kinesis-video-streams-webrtc-sdk-c.