void-packages/srcpkgs/rtmpdump/patches/fix-chunk-size.patch
Đoàn Trần Công Danh 103ab731ab srcpkgs/r*: convert patches to -Np1
* runit is kept at -Np0

```sh
git grep -l '^patch_args=-Np0' "srcpkgs/$1*/template" |
while read template; do
	for p in ${template%/template}/patches/*; do
		sed -i '
			\,^[+-][+-][+-] /dev/null,b
			/^[*-]\+ [0-9]\+\(,[0-9]\+\)\? [*-]\+$/b
			s,^[*][*][*] ,&a/,
			/^--- /{
				s,\(^--- \)\(./\)*,\1a/,
				s,[.-][Oo][Rr][Ii][Gg]\([	/]\),\1,
				s/[.-][Oo][Rr][Ii][Gg]$//
				s/[.]patched[.]\([^.]\)/.\1/
				h
			}
			/^+++ -/{
				g
				s/^--- a/+++ b/
				b
			}
			s,\(^+++ \)\(./\)*,\1b/,
		' "$p"
	done
	sed -i '/^patch_args=/d' $template
done
```
2021-06-20 13:17:29 +07:00

44 lines
1.2 KiB
Diff

--- a/librtmp/rtmp.c
+++ b/librtmp/rtmp.c
@@ -2077,6 +2077,29 @@ RTMP_SendClientBW(RTMP *r)
}
static int
+SendClientChunkSize(RTMP *r, int chunkSize)
+{
+ RTMPPacket packet;
+ char pbuf[256], *pend = pbuf + sizeof(pbuf);
+ int ret;
+
+ packet.m_nChannel = 0x02; /* control channel (invoke) */
+ packet.m_headerType = RTMP_PACKET_SIZE_LARGE;
+ packet.m_packetType = RTMP_PACKET_TYPE_CHUNK_SIZE;
+ packet.m_nTimeStamp = 0;
+ packet.m_nInfoField2 = 0;
+ packet.m_hasAbsTimestamp = 0;
+ packet.m_body = pbuf + RTMP_MAX_HEADER_SIZE;
+
+ packet.m_nBodySize = 4;
+
+ AMF_EncodeInt32(packet.m_body, pend, chunkSize);
+ ret = RTMP_SendPacket(r, &packet, FALSE);
+ r->m_outChunkSize = chunkSize;
+ return ret;
+}
+
+static int
SendBytesReceived(RTMP *r)
{
RTMPPacket packet;
@@ -3349,6 +3372,11 @@ HandleChangeChunkSize(RTMP *r, const RTMPPacket *packet)
r->m_inChunkSize = AMF_DecodeInt32(packet->m_body);
RTMP_Log(RTMP_LOGDEBUG, "%s, received: chunk size change to %d", __FUNCTION__,
r->m_inChunkSize);
+ if (r->Link.protocol & RTMP_FEATURE_WRITE)
+ {
+ RTMP_Log(RTMP_LOGDEBUG, "%s, updating outChunkSize too", __FUNCTION__);
+ SendClientChunkSize(r, r->m_inChunkSize);
+ }
}
}