Added Multimedia Video and Display GStreamer test scripts#290
Added Multimedia Video and Display GStreamer test scripts#290smuppand merged 20 commits intoqualcomm-linux:mainfrom
Conversation
Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
…sing Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
There was a problem hiding this comment.
Please move the generic helpers currently defined in Video_Encode_Decode/run.sh into Runner/utils/lib_gstreamer.sh so other GST tests can reuse them:
get_resolution_params() ->gstreamer_resolution_to_wh()
get_encoder_element() / get_decoder_element() -> gstreamer_v4l2_{encoder,decoder}_for_codec()
get_file_extension() -> gstreamer_container_ext_for_codec() (or similar)
Extract pipeline string creation into library builders:
gstreamer_build_v4l2_encode_pipeline()
gstreamer_build_v4l2_decode_pipeline()
Move bitrate selection + file-size helper into lib (gstreamer_bitrate_for_resolution, gstreamer_file_size_bytes) to avoid re-implementations.
Keep .res emission + summary logic in run.sh. library functions should not write results directly.
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/Waylandsink_Playback.yaml
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/Waylandsink_Playback.yaml
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
…r V4L2 video helper functions from Video_Encode_Decode test to shared lib_gstreamer.sh for code reuse across all GStreamer tests Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
|
@nitinn22 Kindly close the comments where you've already addressed previous review feedback, so I can focus on the remaining ones. Also, please rebase your work on top of the main branch. Also Updated SPDX license identifiers from BSD-3-Clause-Clear to BSD-3-Clause per legal request. |
smuppand
left a comment
There was a problem hiding this comment.
README inconsistency (Waylandsink): help text says default test is “for 10s” but script default duration resolves to 30s. Update README/help examples.
README mismatch (Video): documentation lists encoded outputs like .h264/.h265, but the pipeline uses mp4mux and outputs .mp4. Update README to match reality.
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/Waylandsink_Playback.yaml
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
…video scripts based on review comments Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
…l request Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Video/Video_Encode_Decode/run.sh
Outdated
Show resolved
Hide resolved
…omments Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
smuppand
left a comment
There was a problem hiding this comment.
Better to address few before merge (non-blocking but important)
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
Runner/suites/Multimedia/GSTreamer/Display/Waylandsink_Playback/run.sh
Outdated
Show resolved
Hide resolved
…received Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
Signed-off-by: nitinn22 <nitinn@qti.qualcomm.com>
| while [ "$SEARCH" != "/" ]; do | ||
| if [ -f "$SEARCH/init_env" ]; then | ||
| INIT_ENV="$SEARCH/init_env" | ||
| break |
There was a problem hiding this comment.
If init_env is missing, .res stays empty.
| duration="${VIDEO_DURATION:-${RUNTIMESEC:-30}}" | ||
| pattern="${VIDEO_PATTERN:-smpte}" | ||
| width="${VIDEO_WIDTH:-1920}" | ||
| height="${VIDEO_HEIGHT:-1080}" |
There was a problem hiding this comment.
You validate VIDEO_DURATION, RUNTIMESEC, VIDEO_FRAMERATE, debug level — but not VIDEO_WIDTH / VIDEO_HEIGHT.
If someone passes VIDEO_WIDTH=1920x1080 (or any non-numeric), your basic sanity block can hit "integer expression expected"/ undefined behavior depending on the shell
| SEARCH="$SCRIPT_DIR" | ||
| while [ "$SEARCH" != "/" ]; do | ||
| if [ -f "$SEARCH/init_env" ]; then | ||
| INIT_ENV="$SEARCH/init_env" |
| # Validate environment variables if set | ||
| # Validate numeric parameters | ||
| for param in VIDEO_DURATION RUNTIMESEC VIDEO_FRAMERATE VIDEO_GST_DEBUG GST_DEBUG_LEVEL; do | ||
| val="${!param:-}" |
There was a problem hiding this comment.
Is a bashism, remove the loop and validate each env var explicitly or use a posix safe eval.
| echo "$TESTNAME SKIP" >"$RES_FILE" | ||
| exit 0 | ||
| fi | ||
| if [ -n "$2" ] && ! is_u32 "$2"; then |
| encoder=$(gstreamer_v4l2_encoder_for_codec "$codec") | ||
| if [ -z "$encoder" ]; then | ||
| log_warn "Encoder not available for $codec" | ||
| skip_count=$((skip_count + 1)) |
There was a problem hiding this comment.
remove the skip_count++ increments from the VP9 pre-step and let the actual decode test be the single source of skip accounting.
Specifically remove these (3 places):
when IVF not found after download attempt
when missing ivfparse/muxer
when conversion fails and you rm files
That keeps actual_total = pass+fail+skip aligned with executed tests.
…g as per repo standards Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
…ttern Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
…ner/utils/send-to-lava.sh Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
…yback.yaml Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
…unt logic for vp9 Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
…bm clip removed ivf dep, updated lib gstreamer with addon local clip function for vp9 test Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
…pendencies Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
Signed-off-by: Nitin Nakka <nitinn@qti.qualcomm.com>
The scripts support GStreamer level validation for video and display,
Video: H.264/H.265/VP9 encode/decode with V4L2
Display: Wayland compositor validation
More info in their corresponding readme files.