mirror of https://git.ffmpeg.org/ffmpeg.git
Read and write extended timestamps for RTMP packets.
Extracted from patch by Sergiy in thread "[PATCH] rtmp-output" Originally committed as revision 20683 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
1ab21f1980
commit
59b6482a04
|
@ -111,6 +111,11 @@ int ff_rtmp_packet_read(URLContext *h, RTMPPacket *p,
|
||||||
extra = AV_RL32(buf);
|
extra = AV_RL32(buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (timestamp == 0xFFFFFF) {
|
||||||
|
if (url_read_complete(h, buf, 4) != 4)
|
||||||
|
return AVERROR(EIO);
|
||||||
|
timestamp = AV_RB32(buf);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (ff_rtmp_packet_create(p, channel_id, type, timestamp, data_size))
|
if (ff_rtmp_packet_create(p, channel_id, type, timestamp, data_size))
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -148,13 +153,15 @@ int ff_rtmp_packet_write(URLContext *h, RTMPPacket *pkt,
|
||||||
//TODO: header compression
|
//TODO: header compression
|
||||||
bytestream_put_byte(&p, pkt->channel_id | (mode << 6));
|
bytestream_put_byte(&p, pkt->channel_id | (mode << 6));
|
||||||
if (mode != RTMP_PS_ONEBYTE) {
|
if (mode != RTMP_PS_ONEBYTE) {
|
||||||
bytestream_put_be24(&p, pkt->timestamp);
|
bytestream_put_be24(&p, pkt->timestamp >= 0xFFFFFF ? 0xFFFFFF : pkt->timestamp);
|
||||||
if (mode != RTMP_PS_FOURBYTES) {
|
if (mode != RTMP_PS_FOURBYTES) {
|
||||||
bytestream_put_be24(&p, pkt->data_size);
|
bytestream_put_be24(&p, pkt->data_size);
|
||||||
bytestream_put_byte(&p, pkt->type);
|
bytestream_put_byte(&p, pkt->type);
|
||||||
if (mode == RTMP_PS_TWELVEBYTES)
|
if (mode == RTMP_PS_TWELVEBYTES)
|
||||||
bytestream_put_le32(&p, pkt->extra);
|
bytestream_put_le32(&p, pkt->extra);
|
||||||
}
|
}
|
||||||
|
if (pkt->timestamp >= 0xFFFFFF)
|
||||||
|
bytestream_put_be32(&p, pkt->timestamp);
|
||||||
}
|
}
|
||||||
url_write(h, pkt_hdr, p-pkt_hdr);
|
url_write(h, pkt_hdr, p-pkt_hdr);
|
||||||
while (off < pkt->data_size) {
|
while (off < pkt->data_size) {
|
||||||
|
|
Loading…
Reference in New Issue