video: enhance GStreamer encode/decode test framework - #518
Conversation
8d9869d to
56f3538
Compare
Srikanth Muppandam (smuppand)
left a comment
There was a problem hiding this comment.
Move the functions out of run.sh to lib_gstreamer.sh. I see duplicates and still optimizations can be done.
The current commit carries ~1600 lines of code, split it into logical commits inside the same PR:
-
"gstreamer: add advanced video pipeline helpers"
- UVC discovery;
- stack-aware decoder arguments;
- advanced pipeline builders;
- common execution and validation helpers.
-
"video: add UVC and DRC GStreamer tests"
- UVC preview;
- DRC caps-transition validation;
- display prerequisites.
-
"video: add concurrent decode tests"
- H.264/H.265/MJPEG;
- dynamic session layout;
- concurrency-specific validation.
-
"video: add downstream advanced encode tests"
- smart encode;
- cyclic IR;
- slice MB;
- Rotate90;
- current-run artifact validation.
-
"docs: document advanced GStreamer video coverage"
- synchronized defaults;
- prerequisites;
- exact PASS/SKIP criteria;
- verified execution examples.
3534470 to
4ff8619
Compare
|
Srikanth Muppandam (@smuppand) , followed similar pattern like earlier all runner script related changes in one commit and helper function changes in another. addressed the review comments and some comments updated explicitly. |
| : >"$test_log" | ||
|
|
||
| # Build pipeline using library function with 2 sessions | ||
| pipeline=$(gstreamer_build_concurrency_decode_pipeline "mjpeg" "$mjpeg_clip" "2") |
There was a problem hiding this comment.
The helper’s third argument is video_stack, not session count, and the helper hardcodes sessions=8
Add an explicit session-count argument to gstreamer_build_concurrency_decode_pipeline, generate an appropriate two-session layout, and pass "$detected_stack" 2.
There was a problem hiding this comment.
session count want to limit to 8 sessions for h264, h265 and 2 sessions to mjpeg. made changes acc.
There was a problem hiding this comment.
session count want to limit to 8 sessions for h264, h265 and 2 sessions to mjpeg. made changes acc.
Add an explicit session-count argument to gstreamer_build_concurrency_decode_pipeline, validate it, generate the matching layout, and call MJPEG with "$detected_stack" "2".
| : >"$test_log" | ||
|
|
||
| # Build pipeline using library function with 2 sessions | ||
| pipeline=$(gstreamer_build_concurrency_decode_pipeline "mjpeg" "$mjpeg_clip" "2") |
There was a problem hiding this comment.
session count want to limit to 8 sessions for h264, h265 and 2 sessions to mjpeg. made changes acc.
Add an explicit session-count argument to gstreamer_build_concurrency_decode_pipeline, validate it, generate the matching layout, and call MJPEG with "$detected_stack" "2".
|
nitinn22 Please fix the shellcheck failed workflow. |
4ff8619 to
cc4fa57
Compare
|
addressed comments and shell check failures. |
cc4fa57 to
50d33bb
Compare
|
Signed-off-by: nitinn <nitinn@qti.qualcomm.com>
Signed-off-by: nitinn <nitinn@qti.qualcomm.com>
50d33bb to
15d3331
Compare
Srikanth Muppandam (smuppand)
left a comment
There was a problem hiding this comment.
Follow-up on UVC thread
This remains unresolved. Missing frame/FPS evidence still only produces a warning at line 1437, after which timeout can be accepted as PASS. Require positive frame or buffer activity and fail when it is absent.
Follow-up on DRC thread
This remains unresolved. The implementation only finds 1080p and 720p anywhere in combined console and dmesg output. It still does not prove an ordered 1080p→720p caps transition or require frame activity after the second caps event.
Follow-up on concurrency thread
This is only partially resolved. The decoder count is now strict, but it counts element names from verbose output. That proves construction, not that every branch negotiated caps and produced buffers. Require per-branch negotiated and active-buffer evidence.
Follow-up on Weston cleanup thread
This remains unresolved. run.sh cleanup still does not call camera_cleanup_wayland_environment. Also, weston_was_running is reset during every setup call, which can overwrite the suite’s original compositor state.
Follow-up on artifact-validation thread
This remains unresolved. gstreamer_validate_encode_output still returns success when gst-discoverer-1.0 is unavailable. Advanced encode tests must not PASS without validating codec, container, resolution, and duration.
Summary
Enhance the GStreamer video encode/decode test framework.
Changes
Validation