diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-01-01 16:54:12 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-01-01 16:54:22 +0400 |
commit | c047a41bc5ff113bd9c7e010cf617c2589879720 (patch) | |
tree | b406d548d4befa4817bca676da7d1a22a108d2b9 | |
parent | d079d1d368a96e70ae76da7ad483b486fef2a8d2 (diff) | |
parent | 33f28a3be3092f642778253d9529dd66fe2a014a (diff) |
Merge commit '33f28a3be3092f642778253d9529dd66fe2a014a'
* commit '33f28a3be3092f642778253d9529dd66fe2a014a':
rtmp: Add a function for writing AMF strings based on two substrings
rtmp: Return a proper error code in handle_invoke_error
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/rtmppkt.c | 13 | ||||
-rw-r--r-- | libavformat/rtmppkt.h | 9 | ||||
-rw-r--r-- | libavformat/rtmpproto.c | 2 |
3 files changed, 23 insertions, 1 deletions
diff --git a/libavformat/rtmppkt.c b/libavformat/rtmppkt.c index b607d5b5e2..04724f7b9c 100644 --- a/libavformat/rtmppkt.c +++ b/libavformat/rtmppkt.c @@ -47,6 +47,19 @@ void ff_amf_write_string(uint8_t **dst, const char *str) bytestream_put_buffer(dst, str, strlen(str)); } +void ff_amf_write_string2(uint8_t **dst, const char *str1, const char *str2) +{ + int len1 = 0, len2 = 0; + if (str1) + len1 = strlen(str1); + if (str2) + len2 = strlen(str2); + bytestream_put_byte(dst, AMF_DATA_TYPE_STRING); + bytestream_put_be16(dst, len1 + len2); + bytestream_put_buffer(dst, str1, len1); + bytestream_put_buffer(dst, str2, len2); +} + void ff_amf_write_null(uint8_t **dst) { bytestream_put_byte(dst, AMF_DATA_TYPE_NULL); diff --git a/libavformat/rtmppkt.h b/libavformat/rtmppkt.h index 9b588031e7..a9422954f5 100644 --- a/libavformat/rtmppkt.h +++ b/libavformat/rtmppkt.h @@ -204,6 +204,15 @@ void ff_amf_write_number(uint8_t **dst, double num); void ff_amf_write_string(uint8_t **dst, const char *str); /** + * Write a string consisting of two parts in AMF format to a buffer. + * + * @param dst pointer to the input buffer (will be modified) + * @param str1 first string to write, may be null + * @param str2 second string to write, may be null + */ +void ff_amf_write_string2(uint8_t **dst, const char *str1, const char *str2); + +/** * Write AMF NULL value to buffer. * * @param dst pointer to the input buffer (will be modified) diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c index 72462cf703..9b60be84c6 100644 --- a/libavformat/rtmpproto.c +++ b/libavformat/rtmpproto.c @@ -1530,7 +1530,7 @@ static int handle_invoke_error(URLContext *s, RTMPPacket *pkt) level = AV_LOG_WARNING; ret = 0; } else - ret = -1; + ret = AVERROR_UNKNOWN; av_log(s, level, "Server error: %s\n", tmpstr); } |