summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-01-01 13:54:12 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-01-01 13:54:22 +0100
commitc047a41bc5ff113bd9c7e010cf617c2589879720 (patch)
treeb406d548d4befa4817bca676da7d1a22a108d2b9
parentd079d1d368a96e70ae76da7ad483b486fef2a8d2 (diff)
parent33f28a3be3092f642778253d9529dd66fe2a014a (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.c13
-rw-r--r--libavformat/rtmppkt.h9
-rw-r--r--libavformat/rtmpproto.c2
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);
}