[FFmpeg-cvslog] rtmp: Add a function for writing AMF strings based on two substrings
Martin Storsjö
git at videolan.org
Tue Jan 1 13:58:19 CET 2013
ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Sun Dec 30 22:38:23 2012 +0200| [33f28a3be3092f642778253d9529dd66fe2a014a] | committer: Martin Storsjö
rtmp: Add a function for writing AMF strings based on two substrings
This avoids having to concatenate them into one buffer before writing
them as AMF.
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=33f28a3be3092f642778253d9529dd66fe2a014a
---
libavformat/rtmppkt.c | 13 +++++++++++++
libavformat/rtmppkt.h | 9 +++++++++
2 files changed, 22 insertions(+)
diff --git a/libavformat/rtmppkt.c b/libavformat/rtmppkt.c
index f69ce82..aed188d 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 a153ca6..276c560 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)
More information about the ffmpeg-cvslog
mailing list