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

Sample TWCC implementation #1957

Merged
merged 11 commits into from
May 1, 2024
Merged

Sample TWCC implementation #1957

merged 11 commits into from
May 1, 2024

Conversation

disa6302
Copy link
Contributor

@disa6302 disa6302 commented Mar 27, 2024

Issue #, if available:

What was changed?

  • Added TWCC sample to integrate with gstreamer pipelines

Why was it changed?

  • To provide an example demonstration of TWCC usage

How was it changed?

  • Included a new structure to store twcc metadata in sample
  • Using g_object_set and g_object_get to change bitrate

What testing was done for the changes?

  • Used tc on ubuntu with testsrc to introduce packet loss % at specified times to confirm better playback quality (less freezing, faster recovery because of adaptive bitrate) compared to when not using TWCC.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@codecov-commenter
Copy link

codecov-commenter commented Mar 27, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 88.70%. Comparing base (b8fee3a) to head (73871ee).
Report is 7 commits behind head on develop.

❗ Current head 73871ee differs from pull request most recent head 33db3e3. Consider uploading reports for the commit 33db3e3 to get more accurate results

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #1957      +/-   ##
===========================================
+ Coverage    79.99%   88.70%   +8.71%     
===========================================
  Files           49       46       -3     
  Lines        13885    12481    -1404     
===========================================
- Hits         11107    11071      -36     
+ Misses        2778     1410    -1368     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@disa6302 disa6302 marked this pull request as ready for review March 27, 2024 19:39
@disa6302 disa6302 force-pushed the twcc-sample branch 2 times, most recently from 3487d34 to 9c2d65a Compare March 27, 2024 20:51
samples/Common.c Outdated Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
samples/Samples.h Outdated Show resolved Hide resolved
samples/Samples.h Outdated Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
samples/Samples.h Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
@disa6302 disa6302 force-pushed the twcc-sample branch 2 times, most recently from bb39239 to c6fc6e6 Compare March 28, 2024 00:12
samples/Common.c Outdated Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
samples/Samples.h Outdated Show resolved Hide resolved
@disa6302 disa6302 force-pushed the twcc-sample branch 2 times, most recently from b7dedfd to 08156ff Compare April 4, 2024 12:54
README.md Outdated Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
samples/Samples.h Outdated Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
hassanctech
hassanctech previously approved these changes Apr 30, 2024
Copy link
Contributor

@hassanctech hassanctech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

samples/Common.c Outdated Show resolved Hide resolved
samples/kvsWebRTCClientMasterGstSample.c Show resolved Hide resolved
samples/kvsWebRTCClientMasterGstSample.c Show resolved Hide resolved
@disa6302 disa6302 force-pushed the twcc-sample branch 2 times, most recently from 9339c17 to e2e7d1d Compare April 30, 2024 23:01
sirknightj
sirknightj previously approved these changes Apr 30, 2024
Copy link
Contributor

@unicornss unicornss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add the scenarios that were used to test this sample? It will be helpful if you can add any statistics or graphs from those testing.

README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
samples/Common.c Outdated Show resolved Hide resolved
Copy link
Contributor

@hassanctech hassanctech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@disa6302 disa6302 merged commit b3522a6 into develop May 1, 2024
31 checks passed
@disa6302 disa6302 deleted the twcc-sample branch May 1, 2024 17:28
disa6302 added a commit that referenced this pull request May 1, 2024
* encoder bitrate change based on twcc

* Change to 5% inc and dec

* modify percentages

* ema based calc

* EMa fix

* Nits

* Readme

* flip

* memset remove

* Readme update, move enable flags to createSampleConfiguration

* Add codecov token
niyatim23 pushed a commit that referenced this pull request May 1, 2024
* encoder bitrate change based on twcc

* Change to 5% inc and dec

* modify percentages

* ema based calc

* EMa fix

* Nits

* Readme

* flip

* memset remove

* Readme update, move enable flags to createSampleConfiguration

* Add codecov token
@niyatim23 niyatim23 mentioned this pull request May 1, 2024
niyatim23 pushed a commit that referenced this pull request May 2, 2024
* encoder bitrate change based on twcc

* Change to 5% inc and dec

* modify percentages

* ema based calc

* EMa fix

* Nits

* Readme

* flip

* memset remove

* Readme update, move enable flags to createSampleConfiguration

* Add codecov token
@niyatim23 niyatim23 mentioned this pull request May 2, 2024
niyatim23 added a commit that referenced this pull request May 9, 2024
* Add H265 and AAC frames (#1962)

* aac and h265 frames

* update readme

* update cmake with h265 and aac

* clang formay

* [Sample] GStreamer media receiver (#1963)

* create the gst receiver

* fix ci

* cmake flag

* clang format, add cmake flag in ci

* install gstreamer on ci

* use macos12

* use defined values

* indent

* clang-format

* readme and commentsa

* clang :(

* install glib to fix ci

* -DCOMPILER_WARNINGS=FALSE to fix the CI

* fix macos version for clang

* address comments and cleanup

* new viewer with gst

* clang-format

* missing null check

* address comments

* -DCOMPILER_WARNINGS=TRUE

* clang-format

* gst_init_check

* fix CI

* fix CI

* [Bug] GStreamer sample (#1972)

* gst-sample-fix

* modify the message

* fix windows

* set to null

* fix pts and eos in sample

* unused var removed

* move null init

* Version check job (#1974)

* Version check job

* Working Version check template

* Retest with dev

* Version lint

* Version lint

* use new frames (#1978)

* Sample TWCC implementation (#1957)

* encoder bitrate change based on twcc

* Change to 5% inc and dec

* modify percentages

* ema based calc

* EMa fix

* Nits

* Readme

* flip

* memset remove

* Readme update, move enable flags to createSampleConfiguration

* Add codecov token

* [Feature] Add H265 support with SDP, RTP payloader-deplayloader (#1965)

* Add RtpH265Payloader.c and RtpH265Payloader.h

* Add support for H265 in PeerConnection/SessionDescription

* Add support for H265 in PeerConnection/PeerConnection

* Add support for H265 in PeerConnection/Rtp

* Add support for H265 in samples/Common.c

* Add support for H265 in samples/kvsWebRTCClientMaster.c

* rtp, sdp fix, flag removed, clang fixed, windows build fixed, new test added

* test fix

* cleanup

* cleanup

* remove #if 0

* clang

* presentation ts fix

* clang-format fix

* PKG_CONFIG_PATH in kvscommon

* missing bracket

* fix all builds

* ci

* cleanup

* fix windows build, rename h265 defs

* remove duplicate line from h264 and h265

* sample changes

* address comments

* clang-format

* gst sample

* cleanup args

* clang-format

* cleanup

* add sdp tests

* address comments

* address commentas

* set default payload type only once

* address comments

* fix height and width

* sdp change

---------

Co-authored-by: Hongli Wang <hongliwo@amazon.com>

* Version bump, fix tests, remove enableIceStats

* Remove AAC related changes

* Remove AAC frames

* Clang format

* fix kvsWebrtcClientMasterGstSample.c name in CMakeLists

---------

Co-authored-by: Divya Sampath Kumar <disa6302@colorado.edu>
Co-authored-by: Hongli Wang <hongliwo@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants