summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/rm.c1
-rw-r--r--libavformat/rmdec.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/libavformat/rm.c b/libavformat/rm.c
index 9c0ad4a58b..1f9cfe486d 100644
--- a/libavformat/rm.c
+++ b/libavformat/rm.c
@@ -42,5 +42,6 @@ const AVCodecTag ff_rm_codec_tags[] = {
{ CODEC_ID_SIPR, MKTAG('s','i','p','r') },
{ CODEC_ID_AAC, MKTAG('r','a','a','c') },
{ CODEC_ID_AAC, MKTAG('r','a','c','p') },
+ { CODEC_ID_RALF, MKTAG('L','S','D',':') },
{ CODEC_ID_NONE },
};
diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
index ae6cd0b482..c85208b3fb 100644
--- a/libavformat/rmdec.c
+++ b/libavformat/rmdec.c
@@ -310,6 +310,15 @@ ff_rm_read_mdpr_codecdata (AVFormatContext *s, AVIOContext *pb,
/* ra type header */
if (rm_read_audio_stream_info(s, pb, st, rst, 0))
return -1;
+ } else if (v == MKBETAG('L', 'S', 'D', ':')) {
+ avio_seek(pb, -4, SEEK_CUR);
+ if ((ret = rm_read_extradata(pb, st->codec, codec_data_size)) < 0)
+ return ret;
+
+ st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
+ st->codec->codec_tag = AV_RL32(st->codec->extradata);
+ st->codec->codec_id = ff_codec_get_id(ff_rm_codec_tags,
+ st->codec->codec_tag);
} else {
int fps;
if (avio_rl32(pb) != MKTAG('V', 'I', 'D', 'O')) {