aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2007-07-28 18:05:11 +0000
committerDiego Biurrun <diego@biurrun.de>2007-07-28 18:05:11 +0000
commit36cf20f5a6dc5fd183c0aa2f071f91175f23b4e1 (patch)
treed3d32949ec8fcc4b1b4b89a70e8d78c33613417e
parent28263f5f15e1acededd06128f1bd75e0112b00c2 (diff)
downloadffmpeg-36cf20f5a6dc5fd183c0aa2f071f91175f23b4e1.tar.gz
Merge get_str() and get_str8() functions.
patch by Ronald S. Bultje, rsbultje gmail com Originally committed as revision 9818 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavformat/rmdec.c30
1 files changed, 12 insertions, 18 deletions
diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
index d2e8ea2f42..40e3462dea 100644
--- a/libavformat/rmdec.c
+++ b/libavformat/rmdec.c
@@ -22,12 +22,11 @@
#include "rm.h"
#include "avstring.h"
-static void get_str(ByteIOContext *pb, char *buf, int buf_size)
+static inline void get_strl(ByteIOContext *pb, char *buf, int buf_size, int len)
{
- int len, i;
+ int i;
char *q, r;
- len = get_be16(pb);
q = buf;
for(i=0;i<len;i++) {
r = get_byte(pb);
@@ -37,19 +36,14 @@ static void get_str(ByteIOContext *pb, char *buf, int buf_size)
if (buf_size > 0) *q = '\0';
}
-static void get_str8(ByteIOContext *pb, char *buf, int buf_size)
+static void get_str16(ByteIOContext *pb, char *buf, int buf_size)
{
- int len, i;
- char *q, r;
+ get_strl(pb, buf, buf_size, get_be16(pb));
+}
- len = get_byte(pb);
- q = buf;
- for(i=0;i<len;i++) {
- r = get_byte(pb);
- if (i < buf_size - 1)
- *q++ = r;
- }
- if (buf_size > 0) *q = '\0';
+static void get_str8(ByteIOContext *pb, char *buf, int buf_size)
+{
+ get_strl(pb, buf, buf_size, get_byte(pb));
}
static int rm_read_audio_stream_info(AVFormatContext *s, AVStream *st,
@@ -263,10 +257,10 @@ static int rm_read_header(AVFormatContext *s, AVFormatParameters *ap)
flags = get_be16(pb); /* flags */
break;
case MKTAG('C', 'O', 'N', 'T'):
- get_str(pb, s->title, sizeof(s->title));
- get_str(pb, s->author, sizeof(s->author));
- get_str(pb, s->copyright, sizeof(s->copyright));
- get_str(pb, s->comment, sizeof(s->comment));
+ get_str16(pb, s->title, sizeof(s->title));
+ get_str16(pb, s->author, sizeof(s->author));
+ get_str16(pb, s->copyright, sizeof(s->copyright));
+ get_str16(pb, s->comment, sizeof(s->comment));
break;
case MKTAG('M', 'D', 'P', 'R'):
st = av_new_stream(s, 0);