summaryrefslogtreecommitdiff
path: root/libavformat/rtmppkt.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-05-25 20:48:50 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-05-25 21:06:14 +0200
commitc0b47d1914a19abacdf1edf081cbf07485952920 (patch)
tree94b26fadd3ecf4352ff87bd807ea6124bc2f4c02 /libavformat/rtmppkt.c
parente02e58fb1c108dd96ef5b61454a2ba8d2af895ea (diff)
parented7bdd8647a3d0f534c2af0d244fc8744ff262a0 (diff)
Merge remote-tracking branch 'qatar/master'
* qatar/master: movenc: Don't write the 'wave' atom or its child 'enda' for lpcm audio. imc: some cosmetics rtmp: Pass the proper return code in rtmp_handshake rtmp: Check return codes of net IO operations Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/rtmppkt.c')
-rw-r--r--libavformat/rtmppkt.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/libavformat/rtmppkt.c b/libavformat/rtmppkt.c
index bca4a9dab6..f0efa59257 100644
--- a/libavformat/rtmppkt.c
+++ b/libavformat/rtmppkt.c
@@ -151,7 +151,10 @@ int ff_rtmp_packet_read(URLContext *h, RTMPPacket *p,
offset += chunk_size;
size += chunk_size;
if (data_size > 0) {
- ffurl_read_complete(h, &t, 1); //marker
+ if ((ret = ffurl_read_complete(h, &t, 1)) < 0) { // marker
+ ff_rtmp_packet_destroy(p);
+ return ret;
+ }
size++;
if (t != (0xC0 + channel_id))
return -1;
@@ -167,6 +170,7 @@ int ff_rtmp_packet_write(URLContext *h, RTMPPacket *pkt,
int mode = RTMP_PS_TWELVEBYTES;
int off = 0;
int size = 0;
+ int ret;
pkt->ts_delta = pkt->timestamp - prev_pkt[pkt->channel_id].timestamp;
@@ -218,15 +222,18 @@ int ff_rtmp_packet_write(URLContext *h, RTMPPacket *pkt,
}
prev_pkt[pkt->channel_id].extra = pkt->extra;
- ffurl_write(h, pkt_hdr, p-pkt_hdr);
+ if ((ret = ffurl_write(h, pkt_hdr, p - pkt_hdr)) < 0)
+ return ret;
size = p - pkt_hdr + pkt->data_size;
while (off < pkt->data_size) {
int towrite = FFMIN(chunk_size, pkt->data_size - off);
- ffurl_write(h, pkt->data + off, towrite);
+ if ((ret = ffurl_write(h, pkt->data + off, towrite)) < 0)
+ return ret;
off += towrite;
if (off < pkt->data_size) {
uint8_t marker = 0xC0 | pkt->channel_id;
- ffurl_write(h, &marker, 1);
+ if ((ret = ffurl_write(h, &marker, 1)) < 0)
+ return ret;
size++;
}
}