Skip to content
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

[Bug] GStreamer sample #1972

Merged
merged 7 commits into from
Apr 22, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,14 @@ To run:
./samples/kvsWebrtcClientViewerGstSample <channelName> <mediaType>
```

##### Note:
Our GStreamer samples leverage [MatroskaMux](https://gstreamer.freedesktop.org/documentation/matroska/matroskamux.html?gi-language=c) to receive media from its peer and save it to a file. However, MatroskaMux is designed for scenarios where the media's format remains constant throughout streaming. Unfortunately, this is not the case while using certain browsers as peers with ([AWS KVS JS SDK](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html)), so receiving media from the browsers andf writing it to filesink via MatroskaMux is not supported by our existing GStreamer samples. When the media's format changes mid-streaming (referred to as "caps changes"), MatroskaMux encounters limitations and is unable to handle these changes, resulting in an error message like:
niyatim23 marked this conversation as resolved.
Show resolved Hide resolved

```shell
matroskamux matroska-mux.c:1134:gst_matroska_mux_video_pad_setcaps:<mux> error: Caps changes are not supported by Matroska
```
To address this issue, users need to adapt the pipeline to utilize components capable of managing dynamic changes in media formats. This might involve integrating different muxers or customizing the pipeline to handle caps changes effectively.

#### Sample: Generating sample frames

##### H264
Expand Down
2 changes: 0 additions & 2 deletions samples/kvsWebRTCClientMasterGstSample.c
Original file line number Diff line number Diff line change
Expand Up @@ -326,8 +326,6 @@ INT32 main(INT32 argc, CHAR* argv[])

pSampleConfiguration->videoSource = sendGstreamerAudioVideo;
pSampleConfiguration->mediaType = SAMPLE_STREAMING_VIDEO_ONLY;
pSampleConfiguration->receiveAudioVideoSource = receiveGstreamerAudioVideo;
niyatim23 marked this conversation as resolved.
Show resolved Hide resolved

#ifdef ENABLE_DATA_CHANNEL
pSampleConfiguration->onDataChannel = onDataChannel;
#endif
Expand Down
Loading