profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/penguinol/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

penguinol/amphoradata.github.io 0

The Amphora Data Docs

penguinol/aredis 0

redis client for Python asyncio (has support for redis server, sentinel and cluster)

penguinol/coweb 0

Open Cooperative Web Framework

penguinol/docusaurus-search-local 0

Offline / Local Search for Docusaurus v2. Try it live at:

penguinol/libmediasoupclient 0

mediasoup client side C++ library

penguinol/LuaJIT 0

Mirror of the LuaJIT git repository

penguinol/LuaTinker 0

LUA to C++ Binding Library

penguinol/mediasoup 0

Cutting Edge WebRTC Video Conferencing

penguinol/moeSS 0

moe SS Front End for https://github.com/mengskysama/shadowsocks/tree/manyuser

push eventpenguinol/mediasoup

Junlong Zou

commit sha ede3644e3418a75752ec82f1e831e231ff926951

fix timestamp when simulcast consumer switching layers (#626)

view details

Iñaki Baz Castillo

commit sha 4a15f498ceb125a732a34b0f1afa4ec98d938d74

3.8.1

view details

penguinol

commit sha af07f5eca5d06df6a25f003c18b9a5862955616b

Merge remote-tracking branch 'upstream/v3' into v3

view details

push time in a month

push eventpenguinol/mediasoup

penguinol

commit sha e936d479486e1ff5a8bfdd03cb4d1b1d7f411847

Update SimulcastConsumer.cpp

view details

push time in a month

push eventpenguinol/mediasoup

penguinol

commit sha 1d76e8d0826a1abc2925acac6a73a627a5219683

packets may arrived disordered

view details

push time in a month

Pull request review commentversatica/mediasoup

fix timestamp when switching layers

 namespace RTC 				// https://en.wikipedia.org/wiki/Audio-to-video_synchronization#Recommendations 				static const uint32_t MaxExtraOffsetMs{ 75u }; +				// Outgoing packet matches the highest timestamp seen in the previous stream.+				// Apply an expected offset for a new frame in a 30fps stream.+				static const uint8_t MsOffset{ 33u }; // (1 / 30 * 1000).+ 				int64_t maxTsExtraOffset = MaxExtraOffsetMs * this->rtpStream->GetClockRate() / 1000;-				uint32_t tsExtraOffset =-				  this->rtpStream->GetMaxPacketTs() - packet->GetTimestamp() + tsOffset;+				uint32_t tsExtraOffset   = this->rtpStream->GetMaxPacketTs() - packet->GetTimestamp() ++				                         tsOffset + MsOffset * this->rtpStream->GetClockRate() / 1000;  				// NOTE: Don't ask for a key frame if already done.

Sorry, which condition do u mean?

penguinol

comment created time in a month

PullRequestReviewEvent

Pull request review commentversatica/mediasoup

fix timestamp when switching layers

 namespace RTC 			this->tsOffset = tsOffset;  			// Sync our RTP stream's sequence number.-			this->rtpSeqManager.Sync(packet->GetSequenceNumber() - 1);+			// If previous frame has not been sent completely when we switch layer,+			// We can tell libwebrtc that previous frame is uncompletely by skipping one RTP sequence num.+			// 'packet->GetSequenceNumber() -2' may increase SeqManager::base and increase the output+			// seqence num. +			// https://github.com/versatica/mediasoup/issues/408+			this->rtpSeqManager.Sync(packet->GetSequenceNumber() - (this->lastSentPacketHasMarker ? 1 : 2));

Yes, but it's better than a broken video

penguinol

comment created time in a month

PullRequestReviewEvent

Pull request review commentversatica/mediasoup

fix timestamp when switching layers

 namespace RTC 		// Process the packet. 		if (this->rtpStream->ReceivePacket(packet)) 		{+			this->lastSentPacketHasMarker = packet->HasMarker();

You are right, i'll fix it

penguinol

comment created time in a month

PullRequestReviewEvent

push eventpenguinol/mediasoup

penguinol

commit sha d4edf7980356337df8e0129f5b39fd1b7b6cb65e

fix format

view details

push time in a month

push eventpenguinol/mediasoup

penguinol

commit sha 522749bc8632c67b366fd14a284bd25afc8b1f08

fix format

view details

push time in a month

push eventpenguinol/mediasoup

Nazar Mokrynskyi

commit sha 158a1c9ea9da83c9b3007ef387a74d84b1e1a8a3

Minor tweaks around dominant speaker

view details

Nazar Mokrynskyi

commit sha 10a38f98ff11298dfbcb4e9ffa944f70b00a5a12

Improve handling of consumer closing after producer closing such that consumer doesn't prevent producer from being dropped

view details

Nazar Mokrynskyi

commit sha 58045409fc2585c2c3e00792fb8d21f91956fd46

Take current closed state into account before firing `*producer_closed` events

view details

Nazar Mokrynskyi

commit sha 3b6247a9e28589986171a6b476517a2647b3e189

Bump version and prepare changelog for new Rust release

view details

Nazar Mokrynskyi

commit sha b38e2a7bb4548094c5859d993dfbeb8f8c00480c

Merge pull request #631 from nazar-pc/rust-next New Rust release 0.8.4

view details

penguinol

commit sha a5573dfbef1ba6704c99eb9c5becfc152803d3ab

Merge remote-tracking branch 'upstream/v3' into v3

view details

push time in a month

push eventpenguinol/mediasoup

penguinol

commit sha de35fafd05cd73ae61abad530c12fff83ba90ed8

merge rtp seq patch see https://github.com/penguinol/mediasoup/commit/de2ed3f9a8a1a36e7ca5b392390fb44da30f4341

view details

push time in a month

CommitCommentEvent

push eventpenguinol/mediasoup

penguinol

commit sha d990e59f2de15a80b170e23a7872c1d9742584f1

fix secquence num discontiued problem and increase performance of seqManager

view details

penguinol

commit sha 591fd5d3694a9a81d0c205fb98f1af3a460d1d94

Merge pull request #1 from versatica/v3 merge

view details

penguinol

commit sha 47b0faf8f9ab1c040d18ab11bc24fa6acc2ba233

Update TestSeqManager.cpp

view details

penguinol

commit sha 77c89451ed651d3c6fe0c43b789f1686cfdca5a3

Update SeqManager.cpp

view details

penguinol

commit sha dfa944f1ddd0ae77c3ba14a8105b7558ff7dd4d7

Merge remote-tracking branch 'upstream/v3' into v3

view details

penguinol

commit sha f736c82b9a722869eca27acce843f90842a621aa

Update SeqManager.cpp

view details

penguinol

commit sha 7e6471c967fd68afef08cae474f6961d93a7c456

improve a little bit performance

view details

penguinol

commit sha e96af420424301a708a8dac199e7ef4398a022d5

Update SeqManager.cpp

view details

penguinol

commit sha 7966dda7dba99322ddbd04444550ac1850048438

fix format

view details

penguinol

commit sha 2dc6dc1cfc899406874443af5388be9b52e09910

rename dropped to droppedCount

view details

penguinol

commit sha 3e87c60acabcbdb1f75d317005551c1fe7084820

update format

view details

penguinol

commit sha 2b6ece937909fdcbf860867a5fd637b940fcd63f

Merge pull request #2 from versatica/v3 merge

view details

Junlong Zou

commit sha 87039fd360a63f3bca96d7ba22a40fe29ec432fd

Merge pull request #3 from versatica/v3 Merge

view details

penguinol

commit sha de2ed3f9a8a1a36e7ca5b392390fb44da30f4341

fix mosaics when swithcing layers

view details

Junlong Zou

commit sha e9f84c0a727d00cc9540bc153b589eca701305ad

Merge pull request #4 from versatica/v3 merge

view details

Junlong Zou

commit sha 7eeddaee59734c26d8ce9affaace46ab403456ae

Merge pull request #5 from versatica/v3 merge

view details

penguinol

commit sha 7b67f6731741b4bb0241f240a06b6563c918a88a

rename

view details

Junlong Zou

commit sha d9b468d9314c52f7616830d1267406dac49fbe87

Merge pull request #6 from versatica/v3 merge

view details

penguinol

commit sha 2004312029b71908a2d4c32bc0050141cbc7b5a0

increase performence of RateCalculator

view details

penguinol

commit sha bff3f07ba16ce0e4d3263fcc0ad9d4f8b19a4c00

Update RateCalculator.hpp

view details

push time in 2 months

push eventpenguinol/mediasoup

Philipp Hancke

commit sha ac6e2f67faf8799191e17c6485d8ee1315ae32d1

use openssl define for sha1 digest length

view details

Nazar Mokrynskyi

commit sha 3d3246ab87e9cbfc6f83dd5d388cfd23d992f096

Merge pull request #627 from fippo/sha-length use openssl define for sha1 digest length

view details

Nazar Mokrynskyi

commit sha f7d204d7643338d9df3f1f9c19b03d2af5172749

Fix minor memory leak caused by non-virtual destructor (#625)

view details

SteveMcFarlin

commit sha 34dcdcd157f8d6966d293e5b61272d1845688711

Dominant Speaker Event (#603) Implementation of Dominant Speaker Identification for Multipoint Videoconferencing by Ilana Volfin and Israel Cohen. This implementation uses the RTP Audio Level extension from RFC-6464 for the input signal

view details

Iñaki Baz Castillo

commit sha 639c22889effef273b46e706f0cdbda0ffa8af72

3.8.0

view details

Iñaki Baz Castillo

commit sha ce31fb42aa3afdc2bb6cc37b260394acff130d2f

fix CHANGELOG.md

view details

Nazar Mokrynskyi

commit sha 03d300fcbcf8c31d0ac59ca46659833739be9726

Move transport cloning into private module to make it unreachable externally

view details

Nazar Mokrynskyi

commit sha a055f06243a40c643e19c17f894a2a98b0860530

Add prelude module containing traits and structs that should be sufficient for most basic mediasoup-based apps

view details

Nazar Mokrynskyi

commit sha 65287c29607ad39757376ce396c22b70c9066b30

Update dependencies

view details

Nazar Mokrynskyi

commit sha 19d5c365e06c59c19ed276ca3782b46379c282e5

Make sure consumer and data consumer close after corresponding producer and data producer, avoiding unnecessary "Consumer not found" error in logs

view details

Nazar Mokrynskyi

commit sha 0d3f29251930b30099880a09360c2689e47bcf35

Move producer/data producer closing integration tests for consumers/data consumers to unit tests so that we can actually close producers using test-only library API

view details

Nazar Mokrynskyi

commit sha 625062b89b282db6236f31d14aca99ff83d839ff

Address new clippy lints

view details

Nazar Mokrynskyi

commit sha d0862bd0fbfd2167a87e4f0b8cdc60c6f111d7a4

Prepare new release

view details

Nazar Mokrynskyi

commit sha e6afe783df9e9200c2e449dc227cf696fbe2bf8d

Merge pull request #629 from nazar-pc/rust-next New Rust release 0.8.3

view details

penguinol

commit sha 89e46172846c94dcca83b904ababbebc2faff62f

Merge remote-tracking branch 'upstream/v3' into v3

view details

push time in 2 months

push eventpenguinol/mediasoup

Junlong Zou

commit sha 44ff4c70b0702d2a60eed61c0b941d19e0eeec1f

Update worker/src/RTC/SimulcastConsumer.cpp Co-authored-by: José Luis Millán <jmillan@aliax.net>

view details

push time in 2 months

push eventpenguinol/mediasoup

penguinol

commit sha 7ea22c693e1538deaa2e8a8e10de64976b8b2b0d

fix format

view details

push time in 2 months

pull request commentversatica/mediasoup

fix timestamp when switching layers

Thanks for this. So, does this PR also fix #408?

This can reduce the probability of #408. But the problem can't be completely solved with this fix. Skip on rtp secquence also helps.

penguinol

comment created time in 2 months

push eventpenguinol/mediasoup

penguinol

commit sha 8a923e20dbb5c7b0700c10cd08ba8b4542f566b2

update comment

view details

push time in 2 months

push eventpenguinol/mediasoup

penguinol

commit sha a2314891e12303178ec35e1422af3f0496e75d67

fix format

view details

push time in 2 months

issue commentversatica/mediasoup

Timestamp is not increased correctly when switching layers.

@penguinol, could you please try this change?

This is indeed a bug, we should be increasing the extraOffset instead of decreasing it. As per your given data in this issue, this should fix the issue.

diff --git a/worker/src/RTC/SimulcastConsumer.cpp b/worker/src/RTC/SimulcastConsumer.cpp
index af38255e8..93c466574 100644
--- a/worker/src/RTC/SimulcastConsumer.cpp
+++ b/worker/src/RTC/SimulcastConsumer.cpp
@@ -806,7 +806,7 @@ namespace RTC

                                        // Increase the timestamp offset for the whole life of this Producer stream
                                        // (until switched to a different one).
-                                       tsOffset -= tsExtraOffset;
+                                       tsOffset += tsExtraOffset;
                                }
                        }

Decreasing here means increasing timestamp, because uint32_t timestamp = packet->GetTimestamp() - this->tsOffset;

penguinol

comment created time in 2 months

push eventpenguinol/mediasoup

penguinol

commit sha 4c91aad73519c6242c67182f5b70c511af7f809b

fix format

view details

push time in 2 months

PR opened versatica/mediasoup

fix timestamp when switching layers

Fix #615

Previous code only add another 33ms when current Timestamp = MaxPacketTs. And when current Timestamp < MaxPacketTs, it add a tsExtraOffset and make current Timestamp + tsExtraOffset = MaxPacketTs.

We should also add a 33ms delay when current Timestamp < MaxPacketTs.

+5 -10

0 comment

1 changed file

pr created time in 2 months

push eventpenguinol/mediasoup

penguinol

commit sha 329cda8dea26d7727d12101b41b098af01ed96b8

fix timestamp when switching layers

view details

push time in 2 months

create barnchpenguinol/mediasoup

branch : fix-timestamp

created branch time in 2 months

push eventpenguinol/mediasoup

Nazar Mokrynskyi

commit sha ecf5b7883e0060ebee7c8b7c70eab5fb4c585b1f

Move header includes (#608)

view details

Iñaki Baz Castillo

commit sha a5d441eeb6b4191a7b04fd6ce328b42315f161f0

Update NPM deps

view details

José Luis Millán

commit sha e8debe2a51c47364fd31459e5df485d42d8aaede

3.7.19

view details

José Luis Millán

commit sha c424d3d553a78665df30d0e0f37f8f54477df52b

3.7.19

view details

Philipp Hancke

commit sha dac4570647d02c1b58982ca542f7d292db87ac45

fix typos (#610) vrypto->crypto GetHmacShA1->GetHmacShA1

view details

Iñaki Baz Castillo

commit sha d55a65cff60598b8b1aa73d24a51f43c2a13462a

Update libuv to v1.42.0 and update NPM deps

view details

Nazar Mokrynskyi

commit sha 237f7b2ac6aaf68868df413df523e5848a8a2a4e

Fix libuv 1.42.0 upgrade (#613)

view details

Nazar Mokrynskyi

commit sha d63758499e16e45894fc41bb765145aacae7bb04

Use non-ASM OpenSSL on Windows (#614)

view details

Yury Yaroshevich

commit sha 06f3bd00336cdf6b2e6769e5dabbf71c8d9d97e7

Fixed bool is serialized as string causing deserialization error in Rust. (#616)

view details

Nazar Mokrynskyi

commit sha 83addcaed0e7f51a0cf072e80b996efb883bbe21

New mediasoup-sys release (#617)

view details

Nazar Mokrynskyi

commit sha a5eaa6838f515347ede835ceffc5bd51254415b2

Fix stack buffer overflow in tests

view details

Nazar Mokrynskyi

commit sha ec42b2592fbd7c0161ed953e3c6105ad38e8c213

Merge pull request #621 from nazar-pc/fix-stack-overflow-in-tests Fix stack buffer overflow in tests

view details

penguinol

commit sha a5f8bc2bb89ee3914d6dcdcdb09c86827ba8cb3b

Merge remote-tracking branch 'upstream/v3' into v3

view details

push time in 2 months

issue commentversatica/mediasoup

Timestamp is not increased correctly when switching layers.

Excellent catch. Finally a good explanation for #408. Please let's some days to take a look to this, we won't forget.

Well, I think this is just one of the reasons which cause #408. Fix this will not fully resolve the problem.

I'm still applying https://github.com/penguinol/mediasoup/commit/de2ed3f9a8a1a36e7ca5b392390fb44da30f4341 on our product environment.

penguinol

comment created time in 2 months

issue openedversatica/mediasoup

Timestamp is not increased correctly when switching layers.

Look at picture below: image The packets on the left is received by mediasoup, and on the right is sent by mediasoup. The video source is a 2 spatial-layers simulcast stream.

seq = 13294, time = 2538709271 -> seq = 30856, time = 2538709271  offset 0
seq = 13295, time = 2538709271 -> seq = 30857, time = 2538709271  offset 0
seq = 13296, time = 2538709271 -> seq = 30858, time = 2538709271  offset 0
switch layer
seq = 26483, time = 2538709271 -> seq = 30859, time = 2538712241 offset 33 * 90
seq = 26484, time = 2538709271 -> seq = 30859, time = 2538712241 offset 33 * 90

The timestamp of the two stream is the same, so we set the offset to 33ms when switching layer. According to https://github.com/versatica/mediasoup/blob/237f7b2ac6aaf68868df413df523e5848a8a2a4e/worker/src/RTC/SimulcastConsumer.cpp#L792-L798

And then we switch layer again image

seq = 26660, time = 2539111121 -> seq = 31036, time = 2539114091 offset 33 * 90
seq = 26661, time = 2539111121 -> seq = 31037, time = 2539114091 offset 33 * 90
seq = 13429, time = 2539111121 -> not sps/pps, drop
switch layer
seq = 13430, time = 2539114001 -> seq = 31038, time = 2539114091 offset 1 * 90
seq = 13431, time = 2539114001 -> seq = 31039, time = 2539114091 offset 1 * 90

So we can see the timestamp of two stream is different, but is changed to the same value. Because of 2539114001 is less than 2539114091, we go into this if case https://github.com/versatica/mediasoup/blob/d63758499e16e45894fc41bb765145aacae7bb04/worker/src/RTC/SimulcastConsumer.cpp#L747-L750 And offset = 2539114091 - 2539114001 = 90 according to https://github.com/versatica/mediasoup/blob/d63758499e16e45894fc41bb765145aacae7bb04/worker/src/RTC/SimulcastConsumer.cpp#L758-L759

It lead to decode error on mac os, and is may be one of the causes of #408

created time in 2 months

issue commentversatica/mediasoup

There are mosaics on video when switching layers

No, I'm still carrying patch from #408 (comment) applied on top of every release of mediasoup. If this was resolved, the issue would have been closed.

I was asking because initially the issue was about H.264 codec, so I was curious if devs made a fix for VP8. Thank you for answer.

I'm not sure whether VP8 has the same problem, because we only use H.264. And recently we found some other problem that lead to decode error on Mac OS when switching layer, it's related to #431

penguinol

comment created time in 2 months