rtmp: Add a function for writing AMF strings based on two substrings
authorMartin Storsjö <martin@martin.st>
Sun, 30 Dec 2012 20:38:23 +0000 (22:38 +0200)
committerMartin Storsjö <martin@martin.st>
Mon, 31 Dec 2012 11:39:07 +0000 (13:39 +0200)
This avoids having to concatenate them into one buffer before writing
them as AMF.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/rtmppkt.c
libavformat/rtmppkt.h

index f69ce82c66cf8cb4fb42e1b55decc953b3c19875..aed188dcc72ecc29cada813e0899766acc5d625c 100644 (file)
@@ -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);
index a153ca62535e951b00f0354e36768c1f3ac785c1..276c5608c06df39055e901be9aac913a56ee2515 100644 (file)
@@ -203,6 +203,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.
  *