mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-04 13:07:32 +00:00
6.2 KiB
6.2 KiB
libwebrtc technical debt
Unknown function info
- 385 exports (60 without a known name, bound by NID) (libwebrtc) - every function export of
libwebrtc.sprxfrom the firmware 13.60 export table that the next section does not implement, names from aerolib.csv only wheretools/nid_names.pycompute_nidreproduces the NID. Signatures, parameter layouts and behaviour are unknown; every export throws throughNotImplemented_nid_no_patch - 31 data exports (libwebrtc) - the module also exports 31 data objects (+qcl2IzxTzg, -ix-knPYqWA, 00mefEErs+Y, 5FM0YOa3NWc, 67nsSkXmJ7E, 7I2xDnqfDV4, 8Dzy4JayJSU, CVCDyAzGrhI, HpbtuVdvO-w, PGIpx6NnFLE, Q+xnDp4KI-s, QXDv9OpZNvM, aOOjLmup+u4, g5USRJNh3bU, hvpHGXjlpbk, iU6+qODNSjU, jpkYoOv34AM, lHLJlq3NEqE, lQJvoyxHov4, nUaORqH85DQ, o6LS+08kOUs, oh8srl3AcNE, oslHzys1vV0, sp5NqvqDdHw, t66Gw3OIpSo, tr8vseK8-ro, uSis0q+bv6k, uTz5pEKL+hM, uxkudCJIYJA, whHm70jlRXw, yW0sV3sCdPA); they are not defined, so imports of them stay unresolved until their layout is known
Public source implementations
- Source revision (libwebrtc) - the module's exact WebRTC revision is not identified. Its
rtc::names andInterleavedViewresampler overloads place it between M127 (branch-heads/6533) and M134 (branch-heads/6998), so the exports below follow code that is the same at both. Nothing is checked on the console. Closes when: the revision is identified and the exports are compared with the console. - absl::numbers_internal::FastIntToBuffer(int, char*) (libwebrtc) - follows the abseil both branches pin, 65ef38d368 and d212a71416: the decimal text and a NUL, returning a pointer to the NUL. For magnitudes from 10 to 99999999 its 8-byte store also zeroes the bytes after the digits up to 8 from the first digit. A null buffer, which abseil writes through, throws. Closes when: compared with the console.
- rtc::TimeMillis and rtc::TimeMicros (libwebrtc) - follow
TimeNanosand the POSIXSystemTimeNanosin time_utils.cc and system_time.cc, the same at both branches: the guestCLOCK_MONOTONICin nanoseconds, divided down. Whether the module is built withWEBRTC_EXCLUDE_SYSTEM_TIMEand a console clock of its own is unknown. No export sets a clock for testing, so theg_clockpath is left out. A failingclock_gettimethrows. Closes when: compared with the console. - rtc::ExpFilter::Reset and Apply (libwebrtc) - adapted from exp_filter.cc, with its WebRTC copyright notice and BSD licence at the top of the file, on the 12-byte
alpha_,filtered_andmax_layout ofexp_filter.h. -1 marks both an unset output and no maximum, so an output that lands on exactly -1 restarts the filter on the next sample, as upstream does. The last bit of a result can differ if the console build fuses the multiply-adds. A null filter throws. Closes when: compared with the console. - webrtc::rtcp::CommonHeader::Parse (libwebrtc) - adapted from common_header.cc, with its WebRTC copyright notice and BSD licence at the top of the file, on the 16-byte layout of
common_header.h: packet type, count or format and padding size at 0 to 2, payload size at 4 and payload pointer at 8. Its checks run in the same order, so a short buffer or a wrong version leaves the header untouched and the later failures leave the fields already parsed. TheRTC_LOG(LS_WARNING)message each failure logs upstream is not emitted. A null header, or a null buffer of 4 bytes or more, which upstream reads, throws. Closes when: the warnings are logged through libwebrtc's logging and the parse is compared with the console. - WebRtcOpus encoder functions (libwebrtc) - the 16
WebRtcOpus_*encoder exports are adapted from opus_interface.cc, with its WebRTC copyright notice and BSD licence at the top of the file. They encode through the bundled libopus 1.6.1, not WebRTC's pinned copy, so packet bytes can differ. Signatures match at both revisions; M127 only adds a DTX change behind theWebRTC-Audio-OpusAvoidNoisePumpingDuringDtxfield trial, which stays off becauseInitFieldTrialsFromStringthrows. Frames over 60 ms, up to 120 ms, throw: they depend onWEBRTC_OPUS_SUPPORT_120MS_PTIME. A null encoder or buffer inEncode, which upstream reads, throws. Closes when: the build flag is known and packets are compared with the console. - WebRtcVad_Create, WebRtcVad_Free, WebRtcVad_Init, WebRtcVad_set_mode and WebRtcVad_Process use the opaque-handle C API and validation rules from upstream WebRTC, with the signal-processing core from libfvad. PS5 signatures and classification parity are not measured; differences between the console core and this WebRTC-derived revision remain unverified. Handles are host allocations and expose no guest-visible object layout.