-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Replay data channel recordings #2468
Replay data channel recordings #2468
Conversation
Added capability to replay data recordings from streaming plugin
Thanks for your contribution, @ricardo-salgado-tekever! Please make sure you sign our CLA, as it's a required step before we can merge this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! But I noticed several issues. You can find my comments inline.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the quick fixes! Added a few other notes.
That said, I think this still needs work: I don't see any change to how janus_recordplay_get_frames
processes frames, and I see the same method is used as it is for data channels. This means that the code will try to reorder frames working with a non-existing RTP header, which will not work, and will not time the messages correctly. Please see how janus-pp-rec.c
traverses data recordings in a different way (it should be easy enough to port as it's a separate check), by skipping to the right offset and most importantly using the time information in the mjr to time the messages properly.
Interestingly, even without changes to One more point, it looks like there is a bug there reading the timestamp: this
|
Now with a proper implementation on |
Once this one is merged - but not before we dot all the i's and cross all the t's - I have seek capability already working on the playout. It builds on this branch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added a small note inline: including the missing swap of sizeof(gint64), 1
addressed in the previous note, I think those are the last parts that need to be fixed before this is ready.
I'll make a couple of tests myself in the meanwhile to see if I spot anything else. Thanks!
If you play a recording with data, and then play a recording without data, Janus crashes here:
which is
This is very likely because The cleanup is missing at the end of
This should now include the same for |
One more note: you're never freeing |
Yeah, too much time spent on garbage-collected environments. Need to clean-up after myself. |
C is ruthless!! 🤭 |
Thanks for the quick fixes! I don't see anything else that needs to be addressed, so this can be merged 👍 |
Added capability to replay data recordings in recordplay plugin from streaming plugin.