Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement av1 depacketizer #291

Merged
merged 1 commit into from
Feb 25, 2025
Merged

Implement av1 depacketizer #291

merged 1 commit into from
Feb 25, 2025

Conversation

JoeTurki
Copy link
Member

@JoeTurki JoeTurki commented Feb 9, 2025

Description

Adds AV1Depacketizer which implements the Depacketizer interface for AV1

NOTE: I believe this meets the spec, but I'm unsure how it will interact with the sample builder. I’ve only tested it in Chrome, where it seems to work, but I need to conduct more thorough testing before we merge. I'll set up a test environment for AV1 with different encoders and clients, run end-to-end tests on Pion, and also fix the AV1 Packetizer (I have a list of a few bugs to address).

Reference issue

#189

Copy link

codecov bot commented Feb 9, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 85.89%. Comparing base (74a4302) to head (48e175c).
Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #291      +/-   ##
==========================================
+ Coverage   85.18%   85.89%   +0.70%     
==========================================
  Files          25       26       +1     
  Lines        2788     2913     +125     
==========================================
+ Hits         2375     2502     +127     
+ Misses        354      352       -2     
  Partials       59       59              
Flag Coverage Δ
go 85.89% <100.00%> (+0.70%) ⬆️
wasm 85.30% <100.00%> (+0.73%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@JoeTurki JoeTurki force-pushed the feat/av1-depacketizer branch from 8b89a92 to 56225d1 Compare February 9, 2025 20:43
@JoeTurki JoeTurki changed the title [WIP] Import av1 depacketizer [WIP] Implement av1 depacketizer Feb 9, 2025
@Sean-Der
Copy link
Member

@JoeTurki I am in support of merging and testing + improving after! The faster others can use it the sooner we get good feedback

I saw the GStreamer devs point out some pion bugs. I bet if you @ them they would be willing to test.

@Sean-Der
Copy link
Member

Sean-Der commented Feb 10, 2025

Thank you so much for doing this. So much complexity I was feeling intimidated by it

@JoeTurki
Copy link
Member Author

JoeTurki commented Feb 10, 2025

@JoeTurki I am in support of merging and testing + improving after! The faster others can use it the sooner we get good feedback

I just want to set a real integration test to make sure then we good :) I'm just not sure about IsPartitionTail.

I saw the GStreamer devs point out some pion bugs. I bet if you @ them they would be willing to test.

Yeah I self assigned that Issue :) I didn't know that they will be willing to help, I played with that a bit last month, and it's on my todo list for the packetizer fix, I'll make the PR after this :)

@JoeTurki JoeTurki force-pushed the feat/av1-depacketizer branch from 56225d1 to 51b8061 Compare February 24, 2025 15:51
@JoeTurki JoeTurki changed the title [WIP] Implement av1 depacketizer Implement av1 depacketizer Feb 24, 2025
@JoeTurki JoeTurki requested a review from Sean-Der February 24, 2025 16:03
@JoeTurki
Copy link
Member Author

@Sean-Der hello this is ready now, it now reconstruct the OBUs with obu_size, I tested it with this pion/webrtc#3041 and ffplay, btw the jsfiddle in the save-to-disk-av1 is incorrect (it has "audio: true") can you please fix it if you can edit the link? :) I can make a new one too.

@Sean-Der
Copy link
Member

Amazing work @JoeTurki

I can't edit the jsfiddle :( mind just making a new one?

Do you have a LinkedIn yet? If not you should post about this (and I can re-share it). Best way to find work in the future :)

Adds AV1Depacketizer which implements the Depacketizer interface for AV1
@JoeTurki JoeTurki force-pushed the feat/av1-depacketizer branch from 51b8061 to 48e175c Compare February 25, 2025 06:00
@JoeTurki
Copy link
Member Author

JoeTurki commented Feb 25, 2025

@Sean-Der I added more tests mainly around non-standard packets (packets with obu_size) to make sure we get valid packets.

Thank you, I'll post about it after the packetizer, Been testing it, I need to write a lot of tests, I'll make the PR today or tomorrow.

Also I'll fix the jsfiddle and the AV1 examples after that.
So 1) the packetizer PR, then we'll release a new RTP version, then I'll merge the IVF writer, and make sure the reader is correct, and I'll test & fix all the av1 examples in the WebRTC package.

@JoeTurki JoeTurki linked an issue Feb 25, 2025 that may be closed by this pull request
@JoeTurki JoeTurki merged commit 48e175c into master Feb 25, 2025
15 checks passed
@JoeTurki JoeTurki deleted the feat/av1-depacketizer branch February 25, 2025 06:15
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.

AV1Packet incompatible with sample builder
2 participants