Files
AnyPS5/docs/dev/debt/libwebrtc.md
T

4.0 KiB

libwebrtc technical debt

Unknown function info

  • 408 exports (60 without a known name, bound by NID) (libwebrtc) - every function export of libwebrtc.sprx from the firmware 13.60 export table that the next section does not implement, names from aerolib.csv only where tools/nid_names.py compute_nid reproduces the NID. Signatures, parameter layouts and behaviour are unknown; every export throws through NotImplemented_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 and InterleavedView resampler 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::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_ and max_ layout of exp_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. The RTC_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.