SRS is a simple, high-performance, AI-driven real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181, with codec support for H.264, H.265, AV1, VP9, AAC, Opus, and G.711.
This report summarizes scanner evidence for ossrs/srs, a C++ project with 29,406 GitHub stars. SynthScan examined 1,622,361 lines of code across 3899 source files, recording 4813 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 3.5 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 4412 finding(s).
Are imports declared and package/API names verified? 45 finding(s).
Are wrappers, guards, and repeated structures necessary? 415 finding(s).
Which changes need focused human review? 4813 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 4813 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cmd/integ/internal/server/env.go | 101 | // it doesn't name calls the mock at /hooks. | COMMENT |
| LOW | cmd/integ/internal/server/env.go | 121 | // of an origin cluster; 0 allocates one. | COMMENT |
| LOW | cmd/integ/internal/server/server.go | 821 | GopCacheMaxFrames int | COMMENT |
| LOW | cmd/integ/internal/server/server.go | 901 | return Config{Listeners: []Listener{RTMP, HTTPAPI}, Env: env} | COMMENT |
| LOW | cmd/integ/internal/server/server.go | 961 | TDRatio, AOFRatio float64 | COMMENT |
| LOW | cmd/integ/internal/server/server.go | 981 | FragmentsPerKey int | COMMENT |
| LOW | cmd/integ/internal/server/server.go | 1141 | // DTLSRole is the vhost's dtls_role, active or passive: the role SRS | COMMENT |
| LOW | cmd/integ/internal/server/server.go | 1521 | // DVR is a variant's DVR settings, for every vhost: SRS records the streams | COMMENT |
| LOW | cmd/integ/internal/server/cli.go | 21 | // talks to: its exit code and output. | COMMENT |
| LOW | cmd/integ/internal/server/heartbeat.go | 21 | // it; 0 leaves SRS's default. | COMMENT |
| LOW | cmd/integ/internal/hls/hls_test.go | 41 | #EXT-X-VERSION:3 | COMMENT |
| LOW | cmd/integ/internal/rtc/transport.go | 21 | "github.com/pion/webrtc/v4" | COMMENT |
| LOW | cmd/integ/internal/rtc/play.go | 261 | } | COMMENT |
| LOW | cmd/integ/internal/rtc/rtc.go | 41 | // set, the session posts its offer as JSON to SRS's legacy API, such as | COMMENT |
| LOW | cmd/integ/internal/rtc/rtc.go | 61 | // RTX offers RTX, RFC 4588, for each video codec: a publisher then sends | COMMENT |
| LOW | cmd/integ/internal/rtmp/client.go | 41 | // Options changes how a client connects. The zero value, or nil, is a | COMMENT |
| LOW | cmd/integ/cases/rtc_twcc_test.go | 21 | const ( | COMMENT |
| LOW | cmd/integ/cases/env_test.go | 41 | // its other cases has at most 2 connections at once, and the 2 of the | COMMENT |
| LOW | cmd/integ/cases/segment_timer_test.go | 41 | // end after 1s without a request. | COMMENT |
| LOW | cmd/integ/cases/segment_timer_test.go | 61 | // 120s, so a held stream keeps its files for the sessions. | COMMENT |
| LOW | cmd/integ/cases/convert_srt_test.go | 81 | func srtRealTime(c *check.C, srs *server.Server, path, file string, lead time.Duration) { | COMMENT |
| LOW | cmd/integ/cases/convert_gb_test.go | 21 | "srs-integ/internal/srt" | COMMENT |
| LOW | cmd/integ/cases/api_stats_test.go | 21 | "srs-integ/internal/mock" | COMMENT |
| LOW | cmd/integ/cases/caster_test.go | 141 | bad = append(bad, p) | COMMENT |
| LOW | cmd/integ/cases/caster_test.go | 181 | } | COMMENT |
| LOW | cmd/integ/cases/rtc_corrupt_test.go | 21 | // no known class. | COMMENT |
| LOW | cmd/integ/cases/forward_retry_test.go | 21 | const ( | COMMENT |
| LOW | cmd/integ/cases/forward_retry_test.go | 121 | } | COMMENT |
| LOW | cmd/integ/cases/convert_test.go | 141 | COMMENT | |
| LOW | cmd/integ/cases/convert_codec_test.go | 21 | // The codec paths of the conversion matrix that the cells don't show: a | COMMENT |
| LOW | cmd/integ/cases/hls_keys_test.go | 361 | rand.Read(b) | COMMENT |
| LOW | cmd/integ/cases/gb_test.go | 41 | // gbLead is how much media a GB publisher sends at once before real time: | COMMENT |
| LOW | cmd/integ/cases/hooks_reject_test.go | 61 | // name is the protocol and what it does, such as RtmpPublish. | COMMENT |
| LOW | cmd/perf/lag.go | 1 | package main | COMMENT |
| LOW | tools/pion-whip/interceptor.go | 21 | // wire, so it sees every NACK before the responder does. It never changes a | COMMENT |
| LOW | tools/pion-whep/interceptor.go | 21 | // through logf: | COMMENT |
| LOW | internal/bootstrap/proxy.go | 81 | newSignalHandler func() signalHandler | COMMENT |
| LOW | internal/bootstrap/proxy.go | 101 | newWebRTCProxyServer func(environment env.ProxyEnvironment, loadBalancer lb.OriginLoadBalancer) proxy.WebRTCProxyServer | COMMENT |
| LOW | internal/proxy/gen.go | 1 | // Copyright (c) 2026 Winlin | COMMENT |
| LOW | internal/proxy/rtmp.go | 141 | // proxy servers. | COMMENT |
| LOW | internal/proxy/http.go | 101 | type httpStreamProxyServer struct { | COMMENT |
| LOW | internal/proxy/http.go | 421 | // hlsPlayStream is an HLS stream proxy, which represents the stream level object. This means multiple HLS | COMMENT |
| LOW | internal/proxy/rtc.go | 41 | loadBalancer lb.OriginLoadBalancer | COMMENT |
| LOW | internal/proxy/rtc.go | 401 | } | COMMENT |
| LOW | internal/proxy/srt.go | 161 | // TODO: FIXME: Should cleanup the dead SRT connection. | COMMENT |
| LOW | internal/proxy/srt.go | 441 | // Handshake control packets (Control Type = 0x0000) are used to | COMMENT |
| LOW | internal/proxy/srt.go | 461 | // Encryption Field: 16 bits. Block cipher family and key size. The | COMMENT |
| LOW | internal/proxy/srt.go | 481 | // very first data packet to be sent. | COMMENT |
| LOW | internal/proxy/srt.go | 501 | // socket from which a handshake packet is issued. | COMMENT |
| LOW | internal/lb/gen.go | 1 | // Copyright (c) 2026 Winlin | COMMENT |
| LOW | internal/lb/mem.go | 21 | environment env.ProxyEnvironment | COMMENT |
| LOW | internal/rtmp/gen.go | 1 | // Copyright (c) 2026 Winlin | COMMENT |
| LOW | internal/rtmp/rtmp.go | 401 | return | COMMENT |
| LOW | internal/rtmp/rtmp.go | 421 | formatType1 | COMMENT |
| LOW | internal/rtmp/rtmp.go | 441 | // follows a Type 0 chunk, then timestamp delta for this Type 3 chunk is | COMMENT |
| LOW | internal/rtmp/rtmp.go | 461 | // fmt=3, 0xCX | COMMENT |
| LOW | internal/rtmp/rtmp.go | 481 | // so we must update the timestamp even fmt=3 for first packet. | COMMENT |
| LOW | internal/rtmp/rtmp.go | 521 | if _, err = io.ReadFull(v.r, p); err != nil { | COMMENT |
| LOW | internal/rtmp/rtmp.go | 541 | // If the timestamp is greater than or equal to 16777215 | COMMENT |
| LOW | internal/rtmp/rtmp.go | 581 | // extended timestamp on a Type-3 chunk (see the detection below). | COMMENT |
| 3924 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | trunk/3rdparty/srt-1-fit/CMakeLists.txt | 1016 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 169 | # ---------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 178 | # -------------------------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 480 | # ------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 529 | # --------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 575 | # ---------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 598 | # -------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 622 | # ------------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 646 | # ------------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 679 | # ------------------------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 691 | # -------------------------------------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 712 | # ---------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 731 | # -------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 740 | # ------------------------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 776 | # ----------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 789 | # ----------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 801 | # ----------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 812 | # --------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 838 | # --------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 886 | # ------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 924 | # ------------------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1014 | # -------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1030 | # -------------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1095 | # -------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1147 | # ------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1177 | # --------------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1207 | # ----------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1232 | # ------------------------------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1261 | # ---------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1282 | # ------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1295 | # ----------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1308 | # ---------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1333 | # ----------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1350 | # --------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1483 | # ----------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1495 | # --------------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1512 | # ------------------------------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1523 | # --------------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1646 | # ---------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1663 | # --------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1697 | # -------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1725 | # --------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1841 | # ------------------------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1877 | # ---------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1905 | # ------------------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1918 | # ------------------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1953 | # ----------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1979 | # ---------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1992 | # ------------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2012 | # ------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2057 | # ---------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2077 | # ------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2156 | # --------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2173 | # --------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2195 | # ------------------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2207 | # ----------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2227 | # ------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2248 | # ----------------------- | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2291 | # ------------------------ | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2328 | # ----------------------------- | COMMENT |
| 284 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skills/srs-support/SKILL.md | 45 | ### Step 1: Setup | COMMENT |
| LOW | skills/srs-support/SKILL.md | 61 | ### Step 2: Load Knowledge | COMMENT |
| LOW | skills/srs-support/SKILL.md | 78 | ### Step 3: Answer by Topic | COMMENT |
| LOW | skills/srs-support/SKILL.md | 135 | ### Step 4: Troubleshoot SRS | COMMENT |
| LOW | skills/srs-support/SKILL.md | 191 | ### Step 1: Setup | COMMENT |
| LOW | skills/srs-support/SKILL.md | 200 | ### Step 2: Load Knowledge | COMMENT |
| LOW | skills/srs-support/SKILL.md | 217 | ### Step 3: Answer by Topic | COMMENT |
| LOW | skills/srs-support/SKILL.md | 261 | ### Step 4: Troubleshoot Oryx | COMMENT |
| LOW⚡ | skills/srs-develop/references/learn-code.md | 7 | ## Step 1: Route and read documentation first | COMMENT |
| LOW⚡ | skills/srs-develop/references/learn-code.md | 13 | ## Step 2: Route to the responsible code | COMMENT |
| LOW⚡ | skills/srs-develop/references/learn-code.md | 20 | ## Step 3: Trace and reconcile the implementation | COMMENT |
| LOW⚡ | skills/srs-develop/references/learn-code.md | 27 | ## Step 4: Answer the question | COMMENT |
| LOW⚡ | skills/srs-develop/references/fix-a-bug.md | 53 | ## Step 1: Find or create the Truth Record | COMMENT |
| LOW⚡ | skills/srs-develop/references/fix-a-bug.md | 61 | ## Step 2: Maintainer review | COMMENT |
| LOW⚡ | skills/srs-develop/references/fix-a-bug.md | 67 | ## Step 3: Update the project (optional) | COMMENT |
| LOW⚡ | skills/srs-develop/references/fix-a-bug.md | 77 | ## Step 4: Update the GitHub issue Truth Record | COMMENT |
| LOW⚡ | skills/srs-develop/references/fix-a-bug.md | 85 | ## Step 5: Update the local issue record | COMMENT |
| LOW | skills/srs-develop/references/review-a-pr.md | 10 | ## Step 0: Select the repository and base | COMMENT |
| LOW⚡ | skills/srs-develop/references/review-a-pr.md | 22 | ## Step 1: Survey the changes | COMMENT |
| LOW⚡ | skills/srs-develop/references/review-a-pr.md | 31 | ## Step 2: Reproduce and fix the problem on the base | COMMENT |
| LOW⚡ | skills/srs-develop/references/review-a-pr.md | 41 | ## Step 3: Correct stale navigation docs | COMMENT |
| LOW⚡ | skills/srs-develop/references/review-a-pr.md | 47 | ## Step 4: Verify runtime changes | COMMENT |
| LOW⚡ | skills/srs-develop/references/review-a-pr.md | 54 | ## Step 5: Apply project version and changelog rules | COMMENT |
| LOW⚡ | skills/srs-develop/references/review-a-pr.md | 59 | ## Step 6: Update or comment on the PR | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 85 | ### Step 1: Route the Branch and Files (MANDATORY) | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 94 | ### Step 2: Understand the Image Path | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 101 | ### Step 3: Implement the Confirmed Change | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 108 | ### Step 4: Verify | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 123 | ### Step 1: Route the Product Area (MANDATORY) | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 132 | ### Step 2: Understand the Oryx Path | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 139 | ### Step 3: Implement the Confirmed Change | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 146 | ### Step 4: Verify | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 158 | ### Step 1: Route and Reproduce | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 165 | ### Step 2: Implement the Maintenance Fix | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 174 | ### Step 3: Verify | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 183 | ### Step 4: Verify on Windows | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 196 | ### Step 1: Route the Change (MANDATORY) | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 205 | ### Step 2: Implement in State Threads | COMMENT |
| LOW⚡ | skills/srs-develop/references/develop-code.md | 211 | ### Step 3: Verify State Threads | COMMENT |
| LOW | skills/srs-develop/references/develop-code.md | 33 | ### Step 1: Module Routing (MANDATORY) | COMMENT |
| LOW | skills/srs-develop/references/develop-code.md | 48 | ### Step 2: Understand the Module | COMMENT |
| LOW | skills/srs-develop/references/develop-code.md | 55 | ### Step 3: Implement and Verify | COMMENT |
| LOW | skills/srs-develop/references/develop-code.md | 66 | ### Step 1: Route and Understand | COMMENT |
| LOW | skills/srs-develop/references/develop-code.md | 72 | ### Step 2: Implement and Verify | COMMENT |
| LOW | skills/srs-develop/references/develop-code.md | 222 | ### Step 4: Sync and Verify SRS | COMMENT |
| LOW | skills/srs-develop/references/develop-code.md | 230 | ### Step 5: Verify State Threads on Windows | COMMENT |
| LOW | skills/srs-develop/scripts/srs-full-tier.sh | 140 | # Step 1: build. The OBS and Chrome Linux builds run beside the local one, since Docker copies only the tracked | COMMENT |
| LOW | skills/internal-obs-control/SKILL.md | 199 | ## Step 1: Preflight (always) | COMMENT |
| LOW | skills/internal-obs-control/SKILL.md | 225 | ## Step 2: Build the test setup | COMMENT |
| LOW | skills/internal-obs-control/SKILL.md | 316 | ## Step 3: Report | COMMENT |
| LOW | …/internal-docs-for-srs/references/proxy/proxy-usage.md | 10 | ## Step 1: Build and Start Proxy Server | COMMENT |
| LOW | …/internal-docs-for-srs/references/proxy/proxy-usage.md | 20 | ## Step 2: Start SRS Origin Server | COMMENT |
| LOW⚡ | …/internal-docs-for-srs/references/proxy/proxy-usage.md | 41 | ## Step 3: Verify SRS Registration | COMMENT |
| LOW⚡ | …/internal-docs-for-srs/references/proxy/proxy-usage.md | 50 | ## Step 4: Publish a Test Stream | COMMENT |
| LOW⚡ | …/internal-docs-for-srs/references/proxy/proxy-usage.md | 60 | ## Step 5: Verify Stream with ffprobe | COMMENT |
| LOW | …ferences/oryx/2023-09-10-Oryx-Record-Live-Streaming.md | 24 | ### Step 1: Create Oryx by One Click | COMMENT |
| LOW | …ferences/oryx/2023-09-10-Oryx-Record-Live-Streaming.md | 39 | ### Step 2: Publish a live stream to Oryx | COMMENT |
| LOW | …ferences/oryx/2023-09-10-Oryx-Record-Live-Streaming.md | 48 | ## Step 3: Record the Live Stream by Oryx | COMMENT |
| LOW | …ferences/oryx/2023-09-10-Oryx-Record-Live-Streaming.md | 59 | ## Step 4: Stop and Download MP4 File | COMMENT |
| LOW | …cs-for-srs/references/oryx/2022-04-09-Oryx-Tutorial.md | 113 | ## Step 2: Publish Stream using OBS | COMMENT |
| 146 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skills/srs-develop/scripts/srs-full-tier.sh | 140 | # Step 1: build. The OBS and Chrome Linux builds run beside the local one, since Docker copies only the tracked | COMMENT |
| LOW | trunk/3rdparty/openssl-1.1-fit/crypto/LPdir_unix.c | 68 | * small value (HP-UX offers 14), so we need to check if we got a result, and | COMMENT |
| LOW | trunk/src/utest/srs_utest_ai21.cpp | 2927 | // Step 1: Create and process AAC sequence header to initialize audio track | COMMENT |
| LOW | trunk/src/utest/srs_utest_ai21.cpp | 2953 | // Step 2: Create and process AAC raw data frame | COMMENT |
| LOW | trunk/src/utest/srs_utest_ai21.cpp | 2977 | // Step 3: Verify RTP packet was sent to target | COMMENT |
| LOW | trunk/src/utest/srs_utest_ai21.cpp | 3126 | // Step 1: Create and process H.264 sequence header to initialize video track | COMMENT |
| LOW | trunk/src/utest/srs_utest_ai21.cpp | 3152 | // Step 2: Create and process H.264 IDR frame | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai09.cpp | 2498 | // Step 1: avsync_time <= 0 with sync_state_ < 0 -> should trace and set sync_state_ = 0 | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai09.cpp | 2502 | // Step 2: avsync_time <= 0 with sync_state_ = 0 -> should not trace, return early | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai09.cpp | 2506 | // Step 3: avsync_time > 0 with sync_state_ < 1 -> should trace and set sync_state_ = 2 | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai09.cpp | 2514 | // Step 4: avsync_time > 0 with sync_state_ = 2 -> should not trace, process packet | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4581 | // Step 1: Send a keyframe to initialize the frame detector | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4585 | // Step 2: Send packets that form a complete frame | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4632 | // Step 1: Send initial keyframe to set up frame detector | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4640 | // Step 2: Send some non-keyframe packets to build up cache | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4652 | // Step 3: Set frame target to fail - this will cause packet_video_rtmp to fail | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4655 | // Step 4: Send a keyframe with sequence number that matches lost_sn_ | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4703 | // Step 1: Send initial keyframe with sequence 200 | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4711 | // Step 2: Send packet 201 (which matches the current lost_sn_) | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4716 | // Step 3: Skip packet 202 and send packet 203 with marker bit | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4722 | // Step 4: Set frame target to fail | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4725 | // Step 5: Send a keyframe with sequence 202 (the missing packet) | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4762 | // Step 1: Send a keyframe to initialize the frame detector | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4766 | // Step 2: Create a scenario where packet_video_rtmp will make recursive calls | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4830 | // Step 1: Send initial keyframe with sequence 300 | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4838 | // Step 2: Send packet 301 (which matches the current lost_sn_) | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4843 | // Step 3: Send packet 302 with marker bit to complete a frame | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4849 | // Step 4: Set frame target to fail - this will cause packet_video_rtmp to fail | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai08.cpp | 4852 | // Step 5: Send a keyframe with sequence 303 | COMMENT |
| LOW | trunk/src/utest/srs_utest_ai08.cpp | 4601 | // Step 3: Send the final packet with marker bit to complete the frame | COMMENT |
| LOW | trunk/src/utest/srs_utest_ai08.cpp | 4792 | // Step 3: Send a packet that will trigger frame processing and potentially recursive calls | COMMENT |
| LOW | trunk/src/utest/srs_utest_workflow_forward.cpp | 156 | // Step 1: Initialize forwarder with destination | COMMENT |
| LOW | trunk/src/utest/srs_utest_workflow_forward.cpp | 224 | // Step 2: Call on_publish to start forwarding | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_workflow_forward.cpp | 313 | // Step 1: Initialize forwarder with destination | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_workflow_forward.cpp | 317 | // Step 2: Call on_publish to start forwarding | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_manual_rtc_recv_track.cpp | 399 | // Step 1: Simulate lost packet by adding to NACK receiver | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_manual_rtc_recv_track.cpp | 406 | // Step 2: Simulate packet recovery (retransmission arrives) | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_manual_rtc_recv_track.cpp | 411 | // Step 3: Process the recovered packet | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_manual_rtc_recv_track.cpp | 414 | // Step 4: Verify the fix - packet should be removed from NACK receiver | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_manual_rtc_recv_track.cpp | 417 | // Step 5: Verify the fix - packet should be added to RTP queue (this was the bug) | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai13.cpp | 1721 | // Step 1: Close current ts segment | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai13.cpp | 1725 | // Step 2: Open new ts segment | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai13.cpp | 1729 | // Step 3: Flush video first after segment open | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai13.cpp | 1733 | // Step 4: Flush audio after video (to make iPhone happy) | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai14.cpp | 3702 | // Step 1: Cache a keyframe to establish that the stream has video | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai14.cpp | 3711 | // Step 2: Cache a few inter frames to build up the GOP | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai14.cpp | 3720 | // Step 3: Now simulate the scenario where video stops but audio continues | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai14.cpp | 3736 | // Step 4: Send ONE MORE audio packet to exceed the threshold | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai14.cpp | 3744 | // Step 5: Verify that the cache was cleared due to pure audio overflow | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai14.cpp | 3748 | // Step 6: Verify that the stream is now detected as pure audio | COMMENT |
| LOW⚡ | trunk/src/utest/srs_utest_ai14.cpp | 3752 | // Step 7: Verify that subsequent audio packets are NOT cached | COMMENT |
| LOW⚡ | trunk/src/kernel/srs_kernel_buffer.cpp | 495 | // Step 1: Count leading zero bits | COMMENT |
| LOW⚡ | trunk/src/kernel/srs_kernel_buffer.cpp | 505 | // Step 2: Calculate base value: (2^leadingZeroBits) - 1 | COMMENT |
| LOW⚡ | trunk/src/kernel/srs_kernel_buffer.cpp | 508 | // Step 3: Read suffix bits and add to base value | COMMENT |
| LOW⚡ | trunk/src/kernel/srs_kernel_buffer.cpp | 546 | // Step 1: Decode unsigned Exp-Golomb value | COMMENT |
| LOW⚡ | trunk/src/kernel/srs_kernel_buffer.cpp | 552 | // Step 2: Map unsigned code to signed value | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | skills/srs-develop/scripts/chrome-test-lib.sh | 2 | # Sourced Chrome test harness, compatible with Bash 3.2. Call init, start, the | COMMENT |
| MEDIUM | skills/srs-develop/scripts/chrome-test-lib-test.sh | 2 | # Regression checks for the sourced Chrome harness, with a fake node, npm and | COMMENT |
| MEDIUM | skills/srs-develop/scripts/obs-test-lib.sh | 2 | # Sourced OBS test harness, compatible with Bash 3.2. Call init, start, setup, | COMMENT |
| MEDIUM | skills/srs-develop/scripts/obs-test-lib-test.sh | 2 | # Regression checks for the sourced harness; --live also exercises real RTMP. | COMMENT |
| MEDIUM | trunk/research/players/js/adapter-7.4.0.js | 2073 | // This is an ugly hack, but at the same time is way more robust than | COMMENT |
| MEDIUM | trunk/3rdparty/srt-1-fit/srtcore/tsbpd_time.h | 90 | /// Essentially: getBaseTime(usPktTimestamp) + usPktTimestamp | COMMENT |
| MEDIUM | trunk/3rdparty/srt-1-fit/srtcore/tsbpd_time.h | 99 | /// Essentially: getPktBaseTime(usPktTimestamp) + m_tdTsbPdDelay + drift() | COMMENT |
| MEDIUM | trunk/3rdparty/srt-1-fit/srtcore/tsbpd_time.h | 130 | /// Essentially: getBaseTime(usPktTimestamp) + usPktTimestamp | COMMENT |
| MEDIUM | …/gtest-fit/googletest/include/gtest/gtest-death-test.h | 151 | // This implementation is *not* meant to be as highly tuned or robust | COMMENT |
| MEDIUM | …/gtest-fit/googletest/include/gtest/gtest-death-test.h | 222 | // In practice, this can be used to test functions that utilize the | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 331 | # Sed substitution that helps us do robust quoting. It backslashifies | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 5319 | # Sed substitution that helps us do robust quoting. It backslashifies | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 9271 | # This code stresses the "libraries are programs" paradigm to its | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/src/base/sysinfo.h | 59 | // On some platforms, this call will utilize the same, static buffer for | COMMENT |
| MEDIUM | trunk/3rdparty/openssl-1.1-fit/crypto/x86cpuid.pl | 213 | # Essentially there is only one use for this function. Under DJGPP: | COMMENT |
| MEDIUM | …rdparty/openssl-1.1-fit/crypto/perlasm/x86_64-xlate.pl | 1404 | # To facilitate composing of .pdata structures, auto-generated "gear" | COMMENT |
| MEDIUM⚡ | …party/openssl-1.1-fit/crypto/rc4/asm/rc4-md5-x86_64.pl | 22 | # below theoretical maximum, interleaving them would allow to utilize | COMMENT |
| MEDIUM | …y/openssl-1.1-fit/crypto/poly1305/asm/poly1305-mips.pl | 38 | # The return value is placed in $a0. Following coding rules facilitate | COMMENT |
| MEDIUM | …nk/3rdparty/openssl-1.1-fit/crypto/bn/asm/mips-mont.pl | 40 | # The return value is placed in $a0. Following coding rules facilitate | COMMENT |
| MEDIUM | …3rdparty/openssl-1.1-fit/crypto/sha/asm/sha512-mips.pl | 42 | # The return value is placed in $a0. Following coding rules facilitate | COMMENT |
| MEDIUM | …rty/openssl-1.1-fit/crypto/sha/asm/keccak1600-armv8.pl | 35 | # instructions effectively facilitate parallel hashing, which we don't | COMMENT |
| MEDIUM | …rty/openssl-1.1-fit/crypto/sha/asm/sha1-armv4-large.pl | 720 | # this fix-up provides Thumb encoding in conjunction with INST | COMMENT |
| MEDIUM⚡ | …3rdparty/openssl-1.1-fit/crypto/sha/asm/sha1-x86_64.pl | 25 | # capacity to fully utilize SHA-1 parallelism. Therefore this fresh | COMMENT |
| MEDIUM | …k/3rdparty/openssl-1.1-fit/crypto/sha/asm/sha1-mips.pl | 40 | # The return value is placed in $a0. Following coding rules facilitate | COMMENT |
| MEDIUM | …arty/openssl-1.1-fit/crypto/sha/asm/keccak1600-avx2.pl | 26 | # It makes other steps more intricate, but overall, is it a win? To be | COMMENT |
| MEDIUM⚡ | …ty/openssl-1.1-fit/crypto/aes/asm/aesni-sha1-x86_64.pl | 23 | # utilize processor resources better and achieve better performance. | COMMENT |
| MEDIUM | …ty/openssl-1.1-fit/crypto/aes/asm/aesni-sha1-x86_64.pl | 65 | # fully utilize parallelism, so stitching would not give any gain | COMMENT |
| MEDIUM⚡ | …/openssl-1.1-fit/crypto/aes/asm/aesni-sha256-x86_64.pl | 23 | # utilize processor resources better and achieve better performance. | COMMENT |
| MEDIUM | …nk/3rdparty/openssl-1.1-fit/crypto/aes/asm/aes-mips.pl | 48 | # The return value is placed in $a0. Following coding rules facilitate | COMMENT |
| MEDIUM | …/3rdparty/openssl-1.1-fit/engines/asm/e_padlock-x86.pl | 618 | # Essentially this variable belongs in thread local storage. | COMMENT |
| MEDIUM | trunk/3rdparty/signaling/www/demos/js/adapter-7.4.0.js | 2073 | // This is an ugly hack, but at the same time is way more robust than | COMMENT |
| MEDIUM | trunk/src/utest/srs_utest_ai13.cpp | 968 | muxer->hls_aof_ratio_ = 2.0; // Absolutely overflow at 2x fragment duration | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/release.yml | 234 | # Create main images for Docker | COMMENT |
| MEDIUM | skills/srs-develop/scripts/gb28181-create-session.sh | 2 | # Create an external-SIP GB28181 session through the SRS publish API without | COMMENT |
| MEDIUM | trunk/research/console/js/3rdparty/angular-resource.js | 295 | * # Creating a custom 'PUT' request | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1402 | # This file is a library for parsing options in your shell scripts along | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2594 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2604 | # This function implements the same check as func_lalib_p without | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2627 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2637 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2662 | # This function is only a basic sanity check; it will hardly flush out | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 2802 | # Create a libtool object file (analogous to a ".la" file), | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 7570 | # Create the object directory. | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 10249 | # Create the old-style object. | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 10269 | # Create an invalid libtool object if no PIC, so that we don't | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/packages/rpm.sh | 38 | # Create the directory where the input lives, and where the output should live | COMMENT |
| MEDIUM | trunk/3rdparty/gperftools-2-fit/packages/deb.sh | 41 | # Create a pristine directory for building the Debian package files | COMMENT |
| MEDIUM⚡ | …rdparty/openssl-1.1-fit/crypto/ec/asm/x25519-x86_64.pl | 20 | # This module implements radix 2^51 multiplication and squaring, and | COMMENT |
| MEDIUM⚡ | …ty/openssl-1.1-fit/crypto/poly1305/asm/poly1305-ppc.pl | 17 | # This module implements Poly1305 hash for PowerPC. | COMMENT |
| MEDIUM⚡ | …/openssl-1.1-fit/crypto/poly1305/asm/poly1305-armv8.pl | 17 | # This module implements Poly1305 hash for ARMv8. | COMMENT |
| MEDIUM⚡ | …penssl-1.1-fit/crypto/poly1305/asm/poly1305-sparcv9.pl | 17 | # This module implements Poly1305 hash for SPARCv9, vanilla, as well | COMMENT |
| MEDIUM⚡ | …/openssl-1.1-fit/crypto/poly1305/asm/poly1305-ppcfp.pl | 17 | # This module implements Poly1305 hash for PowerPC FPU. | COMMENT |
| MEDIUM⚡ | …openssl-1.1-fit/crypto/poly1305/asm/poly1305-x86_64.pl | 17 | # This module implements Poly1305 hash for x86_64. | COMMENT |
| MEDIUM⚡ | …/openssl-1.1-fit/crypto/poly1305/asm/poly1305-s390x.pl | 17 | # This module implements Poly1305 hash for s390x. | COMMENT |
| MEDIUM⚡ | …ty/openssl-1.1-fit/crypto/poly1305/asm/poly1305-x86.pl | 17 | # This module implements Poly1305 hash for x86. | COMMENT |
| MEDIUM⚡ | …/3rdparty/openssl-1.1-fit/crypto/aes/asm/aesv8-armx.pl | 17 | # This module implements support for ARMv8 AES instructions. The | COMMENT |
| MEDIUM⚡ | …rdparty/openssl-1.1-fit/crypto/aes/asm/aesni-x86_64.pl | 17 | # This module implements support for Intel AES-NI extension. In | COMMENT |
| MEDIUM⚡ | …k/3rdparty/openssl-1.1-fit/crypto/aes/asm/aesni-x86.pl | 17 | # This module implements support for Intel AES-NI extension. In | COMMENT |
| MEDIUM⚡ | …k/3rdparty/openssl-1.1-fit/crypto/aes/asm/aesp8-ppc.pl | 17 | # This module implements support for AES instructions as per PowerISA | COMMENT |
| MEDIUM | …k/3rdparty/openssl-1.1-fit/util/perl/TLSProxy/Proxy.pm | 111 | # Create the Proxy socket | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skills/internal-obs-control/scripts/obsws.py | 535 | def current_profile_and_collection(): | CODE |
| LOW⚡ | skills/internal-obs-control/scripts/test_obsws.py | 41 | def test_main_launch_preserves_and_lists_crash_sentinels(self): | CODE |
| LOW⚡ | skills/internal-obs-control/scripts/test_obsws.py | 49 | def test_instance_launch_clears_only_its_sentinels(self): | CODE |
| LOW⚡ | skills/internal-obs-control/scripts/test_obsws.py | 56 | def test_keep_sentinel_preserves_instance_recovery_state(self): | CODE |
| LOW⚡ | skills/internal-obs-control/scripts/test_obsws.py | 61 | def test_windows_quit_addresses_each_selected_pid(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 74 | def test_display_uuid_refused_before_connection(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 85 | def test_force_sends_display_uuid_request(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 95 | def test_other_properties_and_requests_still_work(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 124 | def test_custom_range_allocates_distinct_ports_under_lock(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 129 | def test_exhaustion_names_requested_range(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 145 | def test_relaunch_preserves_existing_port(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 152 | def test_invalid_ranges_fail_clearly(self): | CODE |
| LOW⚡ | skills/internal-obs-control/scripts/test_obsws.py | 218 | def test_instances_are_allowed(self): | CODE |
| LOW⚡ | skills/internal-obs-control/scripts/test_obsws.py | 222 | def test_config_is_the_portable_config_of_the_instance(self): | CODE |
| LOW⚡ | skills/internal-obs-control/scripts/test_obsws.py | 229 | def test_launch_links_the_install_and_starts_portable_obs_on_the_desktop(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 246 | def test_launch_without_a_desktop_session_fails_clearly(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 250 | def test_pid_check_reads_tasklist_and_never_signals(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 263 | def test_force_quit_uses_taskkill(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 275 | def test_instance_quit_closes_obs_from_the_desktop(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 294 | def test_remove_unlinks_the_install_before_deleting_the_instance(self): | CODE |
| LOW | skills/internal-obs-control/scripts/test_obsws.py | 306 | def test_remove_keeps_the_instance_when_a_link_stays(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 20 | def test_srt_explicit_streamid_and_passphrase(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 28 | def test_srt_url_streamid_forms(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 36 | def test_srt_url_streamid_overrides_explicit(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 42 | def test_srt_defaults_and_verify_overrides(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 50 | def test_rtmp_url_keeps_query_in_key(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 56 | def test_rtmp_separate_key_query_and_plain_url(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 64 | def test_srt_cli_accepts_options(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 106 | def test_missing_and_inactive_publish_exit_six(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 111 | def test_expect_inactive_success_and_failure(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 116 | def test_explicit_http_origin_and_api_whep(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 126 | def test_default_http_port_is_reported(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 132 | def test_setup_verify_uses_http_origin_and_exit_six(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 181 | def test_restart_stops_settles_and_starts(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 190 | def test_start_inactive_waits_for_stop_to_settle(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 195 | def test_silent_stalled_restart_reloads_then_retries(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 203 | def test_failed_start_with_new_logs_is_not_retried(self): | CODE |
| LOW⚡ | …ills/internal-obs-control/scripts/test_obs_srs_test.py | 207 | def test_reconnecting_active_output_is_not_reloaded(self): | CODE |
| LOW | trunk/research/players/js/adapter-7.4.0.js | 492 | function shimSenderReceiverGetStats(window) { | CODE |
| LOW | trunk/research/players/js/adapter-7.4.0.js | 604 | function shimAddTrackRemoveTrackWithNative(window) { | CODE |
| LOW | trunk/research/players/js/adapter-7.4.0.js | 2536 | function shimTrackEventTransceiver(window) { | CODE |
| LOW | trunk/research/players/js/adapter-7.4.0.js | 3061 | function isActionAllowedInSignalingState(action, type, signalingState) { | CODE |
| LOW | trunk/research/players/js/adapter-7.4.0.js | 3111 | function addTrackToStreamAndFireEvent(track, stream) { | CODE |
| LOW | trunk/research/players/js/adapter-7.4.0.js | 3117 | function removeTrackFromStreamAndFireEvent(track, stream) { | CODE |
| LOW | trunk/research/console/js/3rdparty/angular.js | 4328 | function completeOutstandingRequest(fn) { | CODE |
| LOW | trunk/research/console/js/3rdparty/angular.js | 6171 | function groupElementsLinkFnWrapper(linkFn, attrStart, attrEnd) { | CODE |
| LOW | trunk/research/console/js/3rdparty/angular.js | 6615 | function controllersBoundTransclude(scope, cloneAttachFn) { | CODE |
| LOW | trunk/research/console/js/3rdparty/angular.js | 6851 | function addTextInterpolateDirective(directives, text) { | CODE |
| LOW | trunk/research/console/js/3rdparty/angular.js | 6885 | function addAttrInterpolateDirective(node, directives, value, name) { | CODE |
| LOW | trunk/research/console/js/3rdparty/angular.js | 8151 | function createShortMethodsWithData(name) { | CODE |
| LOW | trunk/research/console/js/3rdparty/angular.js | 10804 | : function cspSafePromiseEnabledGetter(scope, locals) { | CODE |
| LOW | trunk/research/console/js/3rdparty/angular.js | 13150 | function isResourceUrlAllowedByPolicy(url) { | CODE |
| LOW | trunk/research/console/js/3rdparty/angular-resource.js | 460 | function defaultResponseInterceptor(response) { | CODE |
| LOW | trunk/3rdparty/signaling/www/demos/js/adapter-7.4.0.js | 492 | function shimSenderReceiverGetStats(window) { | CODE |
| LOW | trunk/3rdparty/signaling/www/demos/js/adapter-7.4.0.js | 604 | function shimAddTrackRemoveTrackWithNative(window) { | CODE |
| LOW | trunk/3rdparty/signaling/www/demos/js/adapter-7.4.0.js | 2536 | function shimTrackEventTransceiver(window) { | CODE |
| LOW | trunk/3rdparty/signaling/www/demos/js/adapter-7.4.0.js | 3061 | function isActionAllowedInSignalingState(action, type, signalingState) { | CODE |
| LOW | trunk/3rdparty/signaling/www/demos/js/adapter-7.4.0.js | 3111 | function addTrackToStreamAndFireEvent(track, stream) { | CODE |
| LOW | trunk/3rdparty/signaling/www/demos/js/adapter-7.4.0.js | 3117 | function removeTrackFromStreamAndFireEvent(track, stream) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tools/pion-whip/mp4.go | 172 | dec, _ := t.trak.Mdia.Minf.Stbl.Stts.GetDecodeTime(t.next) | CODE |
| CRITICAL | skills/internal-chrome-control/scripts/run.test.js | 319 | assert.ok(r.fake.state.options.args.includes('--allow-loopback-in-peer-connection'), r.fake.state.options.args.join(' | CODE |
| CRITICAL | skills/internal-chrome-control/scripts/run.test.js | 359 | assert.ok(!r.fake.state.options.args.includes('--allow-loopback-in-peer-connection')); | CODE |
| CRITICAL | trunk/research/players/js/jquery-1.12.2.min.js | 4 | return b?(parseFloat(Sa(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Pa(a,{marginLeft | CODE |
| CRITICAL | trunk/3rdparty/srt-1-fit/srtcore/group.cpp | 2999 | const int64_t drop_total = u.m_stats.sndr.dropped.total.count(); | CODE |
| CRITICAL | …k/3rdparty/signaling/www/demos/js/jquery-1.12.2.min.js | 4 | return b?(parseFloat(Sa(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Pa(a,{marginLeft | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 14506 | <div ng-init="friends = [{name:'John', phone:'555-1276'}, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 14508 | {name:'Mike', phone:'555-4321'}, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 14509 | {name:'Adam', phone:'555-5678'}, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 14510 | {name:'Julie', phone:'555-8765'}, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 14511 | {name:'Juliette', phone:'555-5678'}]"></div> | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 15305 | [{name:'John', phone:'555-1212', age:10}, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 15306 | {name:'Mary', phone:'555-9876', age:19}, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 15307 | {name:'Mike', phone:'555-4321', age:21}, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 15308 | {name:'Adam', phone:'555-5678', age:35}, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 15309 | {name:'Julie', phone:'555-8765', age:29}] | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 15364 | { name: 'John', phone: '555-1212', age: 10 }, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 15365 | { name: 'Mary', phone: '555-9876', age: 19 }, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 15366 | { name: 'Mike', phone: '555-4321', age: 21 }, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 15367 | { name: 'Adam', phone: '555-5678', age: 35 }, | CODE |
| LOW⚡ | trunk/research/console/js/3rdparty/angular.js | 15368 | { name: 'Julie', phone: '555-8765', age: 29 } | CODE |
| LOW | trunk/research/console/js/3rdparty/angular.js | 18606 | * {type: 'email', value: 'john.smith@example.org'} ]; | COMMENT |
| LOW | trunk/research/console/js/3rdparty/angular.js | 18614 | * this.contacts.push({type: 'email', value: 'yourname@example.org'}); | COMMENT |
| LOW | trunk/research/console/js/3rdparty/angular.js | 18642 | * .toBe('john.smith@example.org'); | COMMENT |
| LOW | trunk/research/console/js/3rdparty/angular.js | 18654 | * .toBe('yourname@example.org'); | COMMENT |
| LOW | trunk/research/console/js/3rdparty/angular.js | 18686 | * {type:'email', value:'john.smith@example.org'} ]; | COMMENT |
| LOW | trunk/research/console/js/3rdparty/angular.js | 18693 | * $scope.contacts.push({type:'email', value:'yourname@example.org'}); | COMMENT |
| LOW | trunk/research/console/js/3rdparty/angular.js | 18722 | * .toBe('john.smith@example.org'); | COMMENT |
| LOW | trunk/research/console/js/3rdparty/angular.js | 18734 | * .toBe('yourname@example.org'); | COMMENT |
| LOW | trunk/research/console/js/3rdparty/angular.js | 20911 | $scope.title = 'Lorem Ipsum'; | CODE |
| LOW | trunk/research/console/js/3rdparty/angular.js | 20912 | $scope.text = 'Neque porro quisquam est qui dolorem ipsum quia dolor...'; | CODE |
| LOW | trunk/3rdparty/openssl-1.1-fit/crypto/hmac/hmac.c | 217 | static const unsigned char dummy_key[1] = {'\0'}; | CODE |
| LOW | trunk/3rdparty/openssl-1.1-fit/crypto/hmac/hmac.c | 226 | key = dummy_key; | CODE |
| LOW | trunk/src/utest/srs_utest_manual_protocol3.cpp | 2732 | char dummy_data[] = {0x01, 0x02}; | CODE |
| LOW | trunk/src/utest/srs_utest_manual_protocol3.cpp | 2734 | HELPER_EXPECT_FAILED(hevc.vps_demux(dummy_data, -1, vps_output)); | CODE |
| LOW | trunk/src/utest/srs_utest_manual_protocol3.cpp | 2824 | char dummy_data[] = {0x01, 0x02}; | CODE |
| LOW | trunk/src/utest/srs_utest_manual_protocol3.cpp | 2826 | HELPER_EXPECT_FAILED(hevc.pps_demux(dummy_data, -1, pps_output)); | CODE |
| LOW⚡ | trunk/src/utest/srs_utest_ai22.cpp | 5178 | char dummy_data[100]; | CODE |
| LOW⚡ | trunk/src/utest/srs_utest_ai22.cpp | 5179 | memset(dummy_data, 0, sizeof(dummy_data)); | CODE |
| LOW⚡ | trunk/src/utest/srs_utest_ai22.cpp | 5180 | HELPER_EXPECT_SUCCESS(mock_fs->write(dummy_data, sizeof(dummy_data), NULL)); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | skills/internal-obs-control/scripts/obsws.py | 747 | except PermissionError: | CODE |
| HIGH | skills/internal-obs-control/scripts/obsws.py | 248 | except (OSError, OBSError): | CODE |
| HIGH | skills/internal-obs-control/scripts/obsws.py | 252 | except OSError: | CODE |
| HIGH | skills/internal-obs-control/scripts/obsws.py | 461 | except (OSError, subprocess.SubprocessError): | CODE |
| HIGH | skills/internal-obs-control/scripts/obsws.py | 1299 | except (OSError, subprocess.SubprocessError): | CODE |
| HIGH | skills/internal-obs-control/scripts/obsws.py | 228 | except OSError: | CODE |
| HIGH | skills/internal-obs-control/scripts/obsws.py | 1191 | except OSError: | CODE |
| HIGH | skills/internal-obs-control/scripts/obs_srs_test.py | 514 | except (urllib.error.URLError, OSError, ValueError): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | internal/rtmp/rtmp.go | 1777 | // that the playback of data is over as requested | COMMENT |
| HIGH | trunk/3rdparty/srt-1-fit/srtcore/group.h | 379 | /// the group data array as requested. | COMMENT |
| HIGH | trunk/src/protocol/srs_protocol_rtmp_stack.hpp | 1649 | // that the playback of data is over as requested | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | trunk/research/console/js/3rdparty/angular.js | 13578 | * That said, here's how you can completely disable SCE: | COMMENT |
| MEDIUM | trunk/research/console/js/3rdparty/angular.js | 13582 | * // Completely disable SCE. For demonstration purposes only! | COMMENT |
| MEDIUM | trunk/research/console/js/3rdparty/angular-resource.js | 270 | * It's worth noting that the success callback for `get`, `query` and other methods gets passed | COMMENT |
| MEDIUM | trunk/auto/utest.sh | 41 | # project, except GTEST_HEADERS, which you can use in your own targets | COMMENT |
| LOW | …unk/3rdparty/openssl-1.1-fit/crypto/md5/asm/md5-586.pl | 113 | # make sure to do 'D' first, not 'B', else we clash with | COMMENT |
| LOW | …unk/3rdparty/openssl-1.1-fit/crypto/md5/asm/md5-586.pl | 131 | # make sure to do 'D' first, not 'B', else we clash with | COMMENT |
| MEDIUM | trunk/src/app/srs_app_rtc_dtls.cpp | 573 | // sending out the ICE response in the start_active_handshake function. It's worth noting that | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | skills/internal-obs-control/scripts/obsws.py | 33 | obsws.py launch --instance $ID --wait 90 && obsws.py call GetVersion --instance $ID | STRING |
| HIGH | skills/internal-obs-control/scripts/obsws.py | 1118 | "(obsws.py quit && obsws.py launch). Saving the Tools > WebSocket Server Settings dialog would overwrite i | CODE |
| HIGH | skills/internal-obs-control/scripts/obs_srs_test.py | 305 | log("note: only one profile exists; encoder/output-mode changes apply after `obsws.py quit && obsws.py launch`") | CODE |
| HIGH | skills/internal-obs-control/scripts/obs_srs_test.py | 809 | log("deleted %s (OBS lists the name until `obsws.py quit%s && obsws.py launch%s`)" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skills/srs-develop/scripts/srs-utest-run.sh | 5 | # Usage: | COMMENT |
| LOW | skills/srs-develop/scripts/oryx-ci-test.sh | 37 | # Usage: | COMMENT |
| LOW | skills/srs-develop/scripts/srs-full-tier-test.sh | 8 | # Usage: | COMMENT |
| LOW | skills/srs-develop/scripts/srs-full-tier.sh | 8 | # Usage: | COMMENT |
| LOW | skills/srs-develop/scripts/srs-utest-coverage.sh | 7 | # Usage: | COMMENT |
| LOW | trunk/scripts/package.sh | 5 | # Usage: | COMMENT |
| LOW | …unk/3rdparty/gperftools-2-fit/src/base/stl_allocator.h | 54 | // Usage example: | COMMENT |
| LOW | trunk/3rdparty/gperftools-2-fit/src/base/vdso_support.h | 47 | // Example usage: | COMMENT |
| LOW | trunk/src/kernel/srs_kernel_buffer.hpp | 164 | // Usage example: | COMMENT |
| LOW | trunk/src/kernel/srs_kernel_buffer.hpp | 390 | // Usage example: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skills/srs-develop/scripts/full-tier-lock.sh | 35 | # Print the value of a key in the owner file. | COMMENT |
| LOW | trunk/scripts/clang_format.sh | 6 | # Check if clang-format is installed | COMMENT |
| LOW | trunk/scripts/clang_format.sh | 12 | # Check if the trunk directory exists | COMMENT |
| LOW | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 623 | # Set func_arith_result to the result of evaluating TERMs. | COMMENT |
| LOW | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 647 | # Set func_basename_result to FILE with everything up to and including | COMMENT |
| LOW | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 813 | # Set func_len_result to the length of STRING. STRING may not | COMMENT |
| LOW | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 1031 | # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. | COMMENT |
| LOW | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 4003 | # Check if any of the arguments is a wrapper script. | COMMENT |
| LOW | trunk/3rdparty/gperftools-2-fit/ltmain.sh | 9972 | # Loop over the list of objects to be linked. | COMMENT |
| LOW | trunk/3rdparty/gperftools-2-fit/packages/deb.sh | 10 | ## Set LIB to lib if exporting a library, empty-string else | COMMENT |
| LOW | trunk/3rdparty/openssl-1.1-fit/util/mkdef.pl | 130 | # Set this to make typesafe STACK definitions appear in DEF | COMMENT |
| LOW | trunk/3rdparty/openssl-1.1-fit/util/mkdef.pl | 1549 | #Check if a version is less than or equal to the current version. Its a fatal | COMMENT |
| LOW | …/external/perl/Text-Template-1.46/lib/Text/Template.pm | 528 | # Print result text instead of returning it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skills/internal-obs-control/scripts/obsws.py | 376 | CODE | |
| LOW | skills/internal-obs-control/scripts/obsws.py | 827 | CODE | |
| LOW | skills/internal-obs-control/scripts/obsws.py | 1019 | CODE | |
| LOW | skills/internal-obs-control/scripts/obsws.py | 1162 | CODE | |
| LOW | skills/internal-obs-control/scripts/obsws.py | 1246 | CODE | |
| LOW | skills/internal-obs-control/scripts/obsws.py | 1308 | CODE | |
| LOW | skills/internal-obs-control/scripts/obsws.py | 1353 | CODE | |
| LOW | skills/internal-obs-control/scripts/obs_srs_test.py | 170 | CODE | |
| LOW | skills/internal-obs-control/scripts/obs_srs_test.py | 403 | CODE | |
| LOW | skills/internal-obs-control/scripts/obs_srs_test.py | 682 | CODE | |
| LOW | skills/internal-obs-control/scripts/obs_srs_test.py | 790 | CODE | |
| LOW | trunk/3rdparty/srt-1-fit/scripts/srt-proxy.py | 37 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | trunk/3rdparty/srt-1-fit/srtcore/sync.h | 989 | /// In this implementation the ID is the pthread_t. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | trunk/gdb/srs.py | 32 | print('Error: prev=%s, this=%s, next=%s, v=%s'%(prev, pthis, pnext, v)) | CODE |
| MEDIUM | trunk/gdb/srs.py | 67 | print('Error: prev=%s, this=%s, next=%s'%(prev, pthis, pnext)) | CODE |
| LOW | trunk/3rdparty/srt-1-fit/scripts/srt-proxy.py | 113 | except Exception as e: | CODE |
| MEDIUM | trunk/3rdparty/srt-1-fit/scripts/srt-proxy.py | 37 | def start(self): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | trunk/3rdparty/srt-1-fit/srtcore/group.cpp | 3979 | // TODO: implement iterator over active links | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skills/internal-obs-control/scripts/obs_srs_test.py | 43 | CODE |