Refactor: Move demuxer-related options from global ccx_options to ccx_demuxer struct
Maintainer thường phản hồi trong vòng 2 ngày
@ansh27singh đang làm issue này rồi.
Từ ngày 21/2/2026.
- #2102 của @AhmedAlian7 — đã đóng, không merge
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- c
- Lĩnh vực
- audio-video-rtc
Hướng nghiên cứu
Bắt đầu với struct ccx_demuxer trong src/lib_ccx/ccx_demuxer.h và phần khởi tạo của nó trong src/lib_ccx/ccx_demuxer.c. Theo dõi init_demuxer() và các hàm bị ảnh hưởng trong src/lib_ccx/file_functions.c, sau đó xác minh rằng bốn tùy chọn được khởi tạo trên demuxer và không còn được đọc từ ccx_options toàn cục ở đó.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problem
Several functions in src/lib_ccx/file_functions.c rely on the global ccx_options struct for configuration values, specifically:
ccx_options.live_streamccx_options.buffer_inputccx_options.input_sourceccx_options.binary_concat
This creates tight coupling between the demuxer logic and global application state.
Current Behavior
Functions such as:
buffered_read_opt()switch_to_next_file()ccx_demuxer_open()ccx_demuxer_close()
directly access the global ccx_options struct instead of receiving configuration through the demuxer context.
Why This Is Problematic
- Testability — Functions relying on globals are difficult to unit test in isolation.
- Encapsulation — The demuxer's behavior depends on external state it does not own.
- Thread safety — Global state increases the risk of race conditions in multi-threaded scenarios.
- Library reuse — Tight coupling makes
lib_ccxharder to use as a standalone library.
Proposed Solution
- Add
live_stream,buffer_input,input_source, andbinary_concatfields tostruct ccx_demuxer. - Initialize these fields from
ccx_optionsduring demuxer initialization (e.g., ininit_demuxer()). - Update affected functions to read configuration from the demuxer context (
ctx->) instead of the globalccx_options.
Affected Files
src/lib_ccx/ccx_demuxer.hsrc/lib_ccx/ccx_demuxer.csrc/lib_ccx/file_functions.c
- Ngôn ngữ chính
- C
- Star
- 913
- Fork
- 603
- Merge trung bình
- 1 ngày 10 giờ
- Pull request đã merge (30 ngày)
- 24
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của CCExtractor/ccextractor
-
[Security] Heap buffer overflow (OOB read past GPAC sample buffer) in process_avc_sample() at mp4.c:99 when parsing a crafted MP4 fileCó thể đã có người làm @yasar710 đã nhận 4 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
CCExtractor/ccextractor#2449 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[BUG] DVB subtitle decoder: heap-buffer-overflow write in dvbsub_parse_clut_segment via unbounded entry_idCó thể đã có người làm @Aditya-Saroha đã nhận 6 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
CCExtractor/ccextractor#2440 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Heap OOB read in parse_ad_cdp: cc_count not bounded by packet lengthCó thể đã có người làm @Aditya-Saroha đã nhận 6 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
CCExtractor/ccextractor#2425 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[BUG] Heap buffer overflow in parse_PMT with C0/C1 section lengthCó thể đã có người làm @kun-codes đã nhận 16 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
CCExtractor/ccextractor#2419 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[BUG] Filename sequence expansion (`+`) panics on numeric values exceeding `i32::MAX`Có thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
CCExtractor/ccextractor#2402 ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của CCExtractor/ccextractor
Issue tương tự
-
[yugabyted] xcluster set_up and add_to_replication fail for database names containing - . or (Đang mởkind/bug priority/medium qa_automation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
yugabyte/yugabyte-db#37324 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
meshcore-dev/MeshCore#3781 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 80/100
ly05010419/MacNativeGames#1897 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area: metrics area: tracing contribfest enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
open-telemetry/opentelemetry-ebpf-instrumentation#4188 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày