Commit 3c3b8003 authored by Martin Storsjö's avatar Martin Storsjö

rtmpproto: Simplify code for copying data into the output packet

Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent 857e6667
...@@ -2933,7 +2933,7 @@ static int rtmp_write(URLContext *s, const uint8_t *buf, int size) ...@@ -2933,7 +2933,7 @@ static int rtmp_write(URLContext *s, const uint8_t *buf, int size)
{ {
RTMPContext *rt = s->priv_data; RTMPContext *rt = s->priv_data;
int size_temp = size; int size_temp = size;
int pktsize, pkttype; int pktsize, pkttype, copy;
uint32_t ts; uint32_t ts;
const uint8_t *buf_temp = buf; const uint8_t *buf_temp = buf;
uint8_t c; uint8_t c;
...@@ -2950,8 +2950,8 @@ static int rtmp_write(URLContext *s, const uint8_t *buf, int size) ...@@ -2950,8 +2950,8 @@ static int rtmp_write(URLContext *s, const uint8_t *buf, int size)
if (rt->flv_header_bytes < RTMP_HEADER) { if (rt->flv_header_bytes < RTMP_HEADER) {
const uint8_t *header = rt->flv_header; const uint8_t *header = rt->flv_header;
int copy = FFMIN(RTMP_HEADER - rt->flv_header_bytes, size_temp);
int channel = RTMP_AUDIO_CHANNEL; int channel = RTMP_AUDIO_CHANNEL;
copy = FFMIN(RTMP_HEADER - rt->flv_header_bytes, size_temp);
bytestream_get_buffer(&buf_temp, rt->flv_header + rt->flv_header_bytes, copy); bytestream_get_buffer(&buf_temp, rt->flv_header + rt->flv_header_bytes, copy);
rt->flv_header_bytes += copy; rt->flv_header_bytes += copy;
size_temp -= copy; size_temp -= copy;
...@@ -2994,15 +2994,10 @@ static int rtmp_write(URLContext *s, const uint8_t *buf, int size) ...@@ -2994,15 +2994,10 @@ static int rtmp_write(URLContext *s, const uint8_t *buf, int size)
ff_amf_write_string(&rt->flv_data, "@setDataFrame"); ff_amf_write_string(&rt->flv_data, "@setDataFrame");
} }
if (rt->flv_size - rt->flv_off > size_temp) { copy = FFMIN(rt->flv_size - rt->flv_off, size_temp);
bytestream_get_buffer(&buf_temp, rt->flv_data + rt->flv_off, size_temp); bytestream_get_buffer(&buf_temp, rt->flv_data + rt->flv_off, copy);
rt->flv_off += size_temp; rt->flv_off += copy;
size_temp = 0; size_temp -= copy;
} else {
bytestream_get_buffer(&buf_temp, rt->flv_data + rt->flv_off, rt->flv_size - rt->flv_off);
size_temp -= rt->flv_size - rt->flv_off;
rt->flv_off += rt->flv_size - rt->flv_off;
}
if (rt->flv_off == rt->flv_size) { if (rt->flv_off == rt->flv_size) {
rt->skip_bytes = 4; rt->skip_bytes = 4;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment