diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2012-06-14 15:28:40 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-06-14 22:22:58 +0300 |
commit | 7dc747f50b0adeaf2bcf6413e291dc4bffa54f9a (patch) | |
tree | ccdcab4a4c61542a0f84e7a504ee42435a60d375 /libavformat/rtmppkt.h | |
parent | d2d193c9b6963f3041ee0037c791c44453b845a0 (diff) | |
download | ffmpeg-7dc747f50b0adeaf2bcf6413e291dc4bffa54f9a.tar.gz |
rtmp: Read and handle incoming packets while writing data
This makes sure all incoming packets are read and handled (and reacted
to) while sending an FLV stream over RTMP to a server. If there were
enough incoming data to fill the TCP buffers, this could potentially
make things block at unexpected places. For the upcoming RTMPT support,
we need to consume all incoming data before we can send the next
request.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/rtmppkt.h')
-rw-r--r-- | libavformat/rtmppkt.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libavformat/rtmppkt.h b/libavformat/rtmppkt.h index 8372484fbd..a83d0feb8f 100644 --- a/libavformat/rtmppkt.h +++ b/libavformat/rtmppkt.h @@ -115,6 +115,19 @@ void ff_rtmp_packet_destroy(RTMPPacket *pkt); */ int ff_rtmp_packet_read(URLContext *h, RTMPPacket *p, int chunk_size, RTMPPacket *prev_pkt); +/** + * Read internal RTMP packet sent by the server. + * + * @param h reader context + * @param p packet + * @param chunk_size current chunk size + * @param prev_pkt previously read packet headers for all channels + * (may be needed for restoring incomplete packet header) + * @param c the first byte already read + * @return number of bytes read on success, negative value otherwise + */ +int ff_rtmp_packet_read_internal(URLContext *h, RTMPPacket *p, int chunk_size, + RTMPPacket *prev_pkt, uint8_t c); /** * Send RTMP packet to the server. |