Skip to content

Implement av1 depacketizer#291

Merged
JoTurk merged 1 commit intomasterfrom
feat/av1-depacketizer
Feb 25, 2025
Merged

Implement av1 depacketizer#291
JoTurk merged 1 commit intomasterfrom
feat/av1-depacketizer

Conversation

@JoTurk
Copy link
Copy Markdown
Member

@JoTurk JoTurk 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

@codecov
Copy link
Copy Markdown

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.

@JoTurk JoTurk force-pushed the feat/av1-depacketizer branch from 8b89a92 to 56225d1 Compare February 9, 2025 20:43
@JoTurk JoTurk changed the title [WIP] Import av1 depacketizer [WIP] Implement av1 depacketizer Feb 9, 2025
@Sean-Der
Copy link
Copy Markdown
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
Copy Markdown
Member

Sean-Der commented Feb 10, 2025

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

@JoTurk
Copy link
Copy Markdown
Member Author

JoTurk 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 :)

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

JoTurk commented Feb 24, 2025

@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
Copy Markdown
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
@JoTurk JoTurk force-pushed the feat/av1-depacketizer branch from 51b8061 to 48e175c Compare February 25, 2025 06:00
@JoTurk
Copy link
Copy Markdown
Member Author

JoTurk 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.

@JoTurk JoTurk linked an issue Feb 25, 2025 that may be closed by this pull request
@JoTurk JoTurk merged commit 48e175c into master Feb 25, 2025
15 checks passed
@JoTurk JoTurk deleted the feat/av1-depacketizer branch February 25, 2025 06:15
@jech
Copy link
Copy Markdown
Member

jech commented Feb 26, 2025

Cool.

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

3 participants