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

is_pod deprecated ! #124

Open
wants to merge 42 commits into
base: m125_release
Choose a base branch
from

Conversation

basharalbashier
Copy link

I was compiling this on linux and faced this issue: error: 'is_podwebrtc::CodecSpecificInfoVP9' is deprecated: use is_standard_layout && is_trivial instead [-Werror,-Wdeprecated-declarations]
static_assert(std::is_pod::value, "");

I resolve it by replacing is_pod with is_standard_layout and worked fine. I created this pull request to make allow contributors to review it.

ywh233 and others added 30 commits May 15, 2023 19:17
If the caller calls RegisterObserver() on the network thread while the
state is not kOpen but there are queued received data, those received
data will be immediately delivered to the observer before the state is
transitioned to kOpen, which may break the observer's assertions and
cause problems.

The problem turns out to be that, when SctpDataChannel::RegisterObserver
calls DeliverQueuedReceivedData(), the data will be passed to the
observer without checking the |state_| first, meanwhile
SctpDataChannel::UpdateState does effectively check the state and
null-check |observer_| before delivering the received data. This CL
fixes this by simply making DeliverQueuedReceivedData() also check
`state_ == kOpen`. In case the state transitions to kOpen after
RegisterObserver() is called, the first DeliverQueuedReceivedData()
call will be no-op, while the second DeliverQueuedReceivedData() call
will do the work.

(cherry picked from commit 2083894)

No-Try: True
Bug: chromium:1442696
Change-Id: If25ce6a038d704939b1a8ae73d7ced110448b050
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/304687
Reviewed-by: Tomas Gunnarsson <[email protected]>
Commit-Queue: Tomas Gunnarsson <[email protected]>
Cr-Original-Commit-Position: refs/heads/main@{#40036}
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/305380
Reviewed-by: Mirko Bonadei <[email protected]>
Cr-Commit-Position: refs/branch-heads/5735@{webrtc-sdk#1}
Cr-Branched-From: df7df19-refs/heads/main@{#39949}
… one

which avoids an infinitely growing SDP if the remote end rejects
the datachannel section. This will reactivate the m-line even if
all datachannels are closed.

BUG=chromium:1442604
(cherry picked from commit 522380f)

No-Try: True
Change-Id: If60f93b406271163df692d96102baab701923602
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/304241
Reviewed-by: Harald Alvestrand <[email protected]>
Commit-Queue: Philipp Hancke <[email protected]>
Reviewed-by: Henrik Boström <[email protected]>
Cr-Original-Commit-Position: refs/heads/main@{#40029}
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/305420
Commit-Queue: Harald Alvestrand <[email protected]>
Reviewed-by: Mirko Bonadei <[email protected]>
Cr-Commit-Position: refs/branch-heads/5735@{webrtc-sdk#2}
Cr-Branched-From: df7df19-refs/heads/main@{#39949}
This is required for ReportTransportStats since iterating over the
transceiver list from the network thread is not safe.

(cherry picked from commit dba22d3)

No-Try: true
Bug: chromium:1446274, webrtc:12692
Change-Id: I7c514df9f029112c4b1da85826af91217850fb26
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/307340
Reviewed-by: Harald Alvestrand <[email protected]>
Commit-Queue: Tomas Gunnarsson <[email protected]>
Cr-Original-Commit-Position: refs/heads/main@{#40197}
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308001
Reviewed-by: Mirko Bonadei <[email protected]>
Cr-Commit-Position: refs/branch-heads/5735@{webrtc-sdk#3}
Cr-Branched-From: df7df19-refs/heads/main@{#39949}
while not really covered by
  https://www.rfc-editor.org/rfc/rfc5576.html#section-4.2
and using the same SSRC for RTX and primary payload may work
since payload type demuxing *could* be used is not a good idea.
This also applies to flexfec's FEC-FR.

For the nonstandard SIM ssrc-group duplicates make no sense.
This rejects duplicates for unknown ssrc-groups as well.

BUG=chromium:1454860

(cherry picked from commit 6a38a3e)

No-Try: true
Change-Id: I3e86101dbd5d6c4099f2fdb7b4a52d5cd0809c5f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308820
Reviewed-by: Taylor Brandstetter <[email protected]>
Reviewed-by: Harald Alvestrand <[email protected]>
Commit-Queue: Philipp Hancke <[email protected]>
Cr-Original-Commit-Position: refs/heads/main@{#40292}
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309601
Cr-Commit-Position: refs/branch-heads/5735@{webrtc-sdk#4}
Cr-Branched-From: df7df19-refs/heads/main@{#39949}
* Add Apache-2.0 license and some notes to README.md.
* Add user link.
* update.

Updated readme detailing changes from original (webrtc-sdk#42)

Adding membrane framework (webrtc-sdk#51)

Co-authored-by: David Zhao <[email protected]>
allow listen-only mode in AudioUnit, adjust when category changes (webrtc-sdk#2)

release mic when category changes (webrtc-sdk#5)

Change defaults to iOS defaults (webrtc-sdk#7)

Sync audio session config (webrtc-sdk#8)

feat: support bypass voice processing for iOS. (webrtc-sdk#15)

Remove MacBookPro audio pan right code (webrtc-sdk#22)

fix: Fix can't open mic alone when built-in AEC is enabled. (webrtc-sdk#29)

feat: add audio device changes detect for windows. (webrtc-sdk#41)

fix Linux compile (webrtc-sdk#47)

AudioUnit: Don't rely on category switch for mic indicator to turn off (webrtc-sdk#52)

Stop recording on mute (turn off mic indicator) (webrtc-sdk#55)

Cherry pick audio selection from m97 release (webrtc-sdk#35)

[Mac] Allow audio device selection (webrtc-sdk#21)

RTCAudioDeviceModule.outputDevice / inputDevice getter and setter (webrtc-sdk#80)

Co-authored-by: Hiroshi Horie <[email protected]>
Co-authored-by: David Zhao <[email protected]>
Simulcast support for iOS SDK (webrtc-sdk#4)

Support for simulcast in Android SDK (webrtc-sdk#3)

include simulcast headers for mac also (webrtc-sdk#10)

Fix simulcast using hardware encoder on Android (webrtc-sdk#48)

Co-authored-by: Hiroshi Horie <[email protected]>
Co-authored-by: Angelika Serwa <[email protected]>
Start/Stop receiving stream method for VideoTrack (webrtc-sdk#25)

Properly remove observer upon deconstruction (webrtc-sdk#26)

feat: Expose setCodecPreferences/getCapabilities for android. (webrtc-sdk#61)

fix: add WrappedVideoDecoderFactory.java. (webrtc-sdk#74)

Exposing Adapter types in PeerConnectionFactory (webrtc-sdk#78)

Co-authored-by: davidliu <[email protected]>
Co-authored-by: Mohamed Risaldar UT <[email protected]>
[Mac/iOS] feat: Add RTCYUVHelper for darwin. (webrtc-sdk#28)

Cross-platform `RTCMTLVideoView` for both iOS / macOS (webrtc-sdk#40)

rotationOverride should not be assign (webrtc-sdk#44)

[ObjC] Expose properties / methods required for AV1 codec support (webrtc-sdk#60)

Workaround: Render PixelBuffer in RTCMTLVideoView (webrtc-sdk#58)

Improve iOS/macOS H264 encoder (webrtc-sdk#70)

fix: fix video encoder not resuming correctly upon foregrounding (webrtc-sdk#75).

Co-authored-by: Hiroshi Horie <[email protected]>
[Mac] feat: Support screen capture for macOS. (webrtc-sdk#24) (webrtc-sdk#36)
fix: Get thumbnails asynchronously. (webrtc-sdk#37)
fix: Use CVPixelBuffer to build DesktopCapture Frame, fix the crash caused by non-CVPixelBuffer frame in RTCVideoEncoderH264 that cannot be cropped. (webrtc-sdk#63)
Fix the crash when setting the fps of the virtual camera. (webrtc-sdk#62)
feat: Frame Cryptor (aes gcm/cbc). (webrtc-sdk#54)
feat: key ratchet/derive. (webrtc-sdk#66)
fix: skip invalid key when decryption failed. (webrtc-sdk#81)

Co-authored-by: Théo Monnom <[email protected]>
Added yuv_helper (webrtc-sdk#57)

ABGRToI420, ARGBToI420 & ARGBToRGB24 (webrtc-sdk#65)

Co-authored-by: Théo Monnom <[email protected]>
Co-authored-by: Hiroshi Horie <[email protected]>
* audio renderer protocol

* basic set up

* progress

* update header year

* impl

* stereo

* fail gracefully

* minor fix

* doc

* optimize AudioStreamBasicDescription

* logging

* minor refactoring

* weak reference to delegates

* fix timestamp computation

* change swift delegate signature

* use os_unfair_lock instead

* avoid deadlock
…tc-sdk#85)

* apm

* progress

* expose raw buffer

* config

* runtime delegate update

* always create audio processing adapter

* delegate nullable

* dynamic delegate update thread safety

* fix delegate life cycle when swapped

* refactor

* avoid crash when no apm is passed in

* format

* make delegate weak & docs

* fix memory issue
 * Improve e2ee, add setSharedKey to KeyProvider.

 * update.

 * reset has_valid_key after RatchetKey.

 * update.

 * clone key_handler from share_key for each participant.

 * add RatchetSharedKey and ExportSharedKey.

 * make KeyProvider::SetSharedKey only valid when KeyProviderOptions::shared_key == true.

 * remove unused enum.
Use UIInterfaceOrientation instead of UIDeviceOrientation for RTCVideoFrame's rotation
* Initial draft

* Working impl

* doc and cleanup

* doc update
 * add failure tolerance for framecryptor.

 * add failureTolerance for android/objc.

 * fix: make H264's unencrypted_bytes consistent with js-sdk.

 * add SetSifTrailer.
 * add scalabilityMode for AV1.

 * fix bug for scalability-mode.

 * add scalability-mode support for VP9.

 * wip: ScalabilityModes for android.

 * update.

 * wip.

 * wip.

 * wip.

 * wip.

 * done.

 * fix

 * update.
* Improve e2ee, add setSharedKey to KeyProvider.

* update.

* reset has_valid_key after RatchetKey.

* update.

* clone key_handler from share_key for each participant.

* add RatchetSharedKey and ExportSharedKey.

* make KeyProvider::SetSharedKey only valid when KeyProviderOptions::shared_key == true.

* remove unused enum.

* Fix memory leak when creating audio CMSampleBuffer webrtc-sdk#86

* add scalabilityMode for AV1.

* fix bug for scalability-mode.

* add scalability-mode support for VP9.

* add failure tolerance for framecryptor.

* add failureTolerance for android/objc.

* fix: make H264's unencrypted_bytes consistent with js-sdk.

* wip: ScalabilityModes for android.

* update.

* wip.

* wip.

* wip.

* wip.

* Fix camera rotation (webrtc-sdk#92)

Use UIInterfaceOrientation instead of UIDeviceOrientation for RTCVideoFrame's rotation

* done.

* fix

* update.

* Expose audio sample buffers for Android (webrtc-sdk#89)

* Initial draft

* Working impl

* doc and cleanup

* doc update

* add SetSifTrailer.

* fix h264 freeze.

---------

Co-authored-by: Hiroshi Horie <[email protected]>
Co-authored-by: davidliu <[email protected]>
* fix: send framecyrotor events from signaling thread. (WIP)

* replace std::shared_ptr to rtc::scoped_refptr.

* create framecryptor with signaling_thread.

* null check.

* fix.

* fix.
* other improvements for E2EE.

* fix log.

* update.

* fix.

* revert changes.

* clang-format.
* RTCVideoRendererAdapter

* RTCDisplayLinkTimer

* RTCNetworkMonitor

* RTCMTLVideoView

* RTCMTLRGBRenderer

* progress

* fix

* ObjCAudioDeviceDelegate

* remaining types

* fix macos

* revert prefix

* prefix string references

* fix RTCMTLVideoView symbols
* feat: add external audio processor for android.

* update.

* update.

* update.

* add null ptr check.

* rename files.

* fix typo.

* some comment.

* update.
davidliu and others added 11 commits April 3, 2024 00:22
* Allow ice gathering on any address ports

Some VPNs use 0.0.0.0 mask which will be ignored by the default gathering.
This flag allows those to be picked up as a last resort.

* fixes

* set explicit default in RTCConfiguration
* Add key ring size to keyProviderOptions.

* add discard_frame_when_cryptor_not_ready to KeyProviderOptions.

* update.
* add PrivacyInfo.xcprivacy to darwin frameworks.

* Fix some function naming of yuv helper.

* revert changes.
* add PrivacyInfo.xcprivacy to darwin frameworks.

* update.
Looks like Xcode requires `NSPrivacyCollectedDataTypes` key.

![LiveKitExample (macOS)-PrivacyReport 2024-04-25
18-38-31](https://github.com/webrtc-sdk/webrtc/assets/548776/03b26039-893f-4e69-8358-73863d704ebd)
Needed to do audio mode changes on react native
Some devices, such as `.builtInTripleCamera`, have a zoom factor of 2.0
for the normal zoom. This adjustment changes it to 2.0 instead of 1.0.
Without this adjustment, when using `.builtInTripleCamera`, it will
appear zoomed out.
`unlockForConfiguration` before `[captureSession startRunning]` to
reduce start glitch.
Expose `+defaultZoomFactorForDeviceType:` method.
Initial zoom factor was incorrect for devices such as
AVCaptureDeviceTypeBuiltInDualCamera.
### Improvements

* nil checks
* Thread safety 
* Fix typo for `RTCCryptorAlgorithm`

### Breaking changes

* `RTCCyrptorAlgorithm` renamed to `RTCCryptorAlgorithm`
* Initialization of RTCFrameCryptor could return nil.
@davidliu
Copy link
Contributor

davidliu commented Jun 14, 2024

You'll want to create a fresh PR based off of the m125_release branch. It's hard to tell what your PR changes.

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.

9 participants