Skip to content

Conversation

mckees
Copy link
Contributor

@mckees mckees commented Jul 9, 2025

Description

This provider contains some tests for testing the media stack. The testing currently checks:

  • FFmpeg HW encode/decode in 4K and 1080p for AV1, VP9, and H264, MPEG-2, JPEG, and HEVC
  • FFmpeg HW decode in 4K and 1080p for VP8

Known issues:

  • We've only really fully tested this on Intel, and some work definitely needs to be done to extend support to other platforms. For instance, we are checking HW acceleration via libva traces, which only works if you're using libva.
  • I've been told that PE develops our providers in weird ways, so I presume that will need some addressing
  • Media files are currently stored on my people.canonical.com. We want to fix this but don't have a solid answer on how the checkbox team would like to handle that.

Resolved issues

N/A

Documentation

See README

Tests

Tests have been run on Tiger Lake, Alder Lake, and Raptor Lake devices

@fernando79513
Copy link
Collaborator

fernando79513 commented Jul 15, 2025

I would suggest splitting this PR into smaller ones. I am not sure what's the best way to do it, but I would keep them between 200/400 lines. This is of course an estimate, but it will help to focus the review efforts.
Maybe a good split could be the main structure, the checkbox-provider-media structure, and the different tests that you mention in the description, but I leave it up to you.

If you want some examples of how to structure your contrib provider, I suggest you to check the checkbox-dss-validation provider. It's not perfect, but it has passed through a stricter reviewing process than the ce-oem one.

As it is for you, it's also quite new to us to include external providers in checkbox from collaborators outside the team, so we are still looking for the best way to structure the work from collaborators so it can be easily merged into the main providers in the future.

@mckees
Copy link
Contributor Author

mckees commented Jul 15, 2025

@fernando79513 Can I submit with separate squashed commits instead? Seems like separate PRs would get pretty messy

@fernando79513
Copy link
Collaborator

We think it really helps with the review process to separate it into smaller PRs, so i'd encourage you to do it.
I can already tell this one is going to be a long one since there are a few jobs + resource jobs that should be moved to python scripts and we will probably have to rethink the way we are building the snap and adding the external dependencies.
At least I think you should create one with the main functionality of the provider and another one for the tests (or even one for each one of the test/plans)

@mckees
Copy link
Contributor Author

mckees commented Jul 16, 2025

@fernando79513 I shaved it down to basically just the minimum checkbox template we use and the ffmpeg testing (since it's a simpler case). There will be some extra lines due to the mediasource resource, but I think they should be fairly straighforward to review since there's not much logic there. So it's a little bulkier than requested, but I'm not sure how to shave it down much more without just removing resource items.

Also, I couldn't figure out how to make the provider findable as snapcraft doesn't seem to have access to /snap/checkbox-media/, where the provider lives. So I just copied it to /var/tmp/checkbox-providers to run it

Copy link
Collaborator

@fernando79513 fernando79513 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR and sorry for taking so long.
I've left some comments in the review, please ping me if you need further explanation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants