summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--codec-cfg.c2
-rw-r--r--codec-cfg.h2
-rw-r--r--etc/codecs.conf18
-rw-r--r--roqav.c39
-rw-r--r--roqav.h12
6 files changed, 73 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 8e1aa34560..fe01ff9e59 100644
--- a/Makefile
+++ b/Makefile
@@ -27,7 +27,7 @@ MANDIR = ${prefix}/man
# a BSD compatible 'install' program
INSTALL = install
-SRCS_COMMON = cyuv.c adpcm.c xacodec.c cpudetect.c mp_msg.c ac3-iec958.c dec_audio.c dec_video.c msvidc.c cinepak.c fli.c qtrle.c codec-cfg.c cfgparser.c my_profile.c RTjpegN.c minilzo.c nuppelvideo.c spudec.c playtree.c playtreeparser.c asxparser.c qtsmc.c ducktm1.c
+SRCS_COMMON = cyuv.c adpcm.c xacodec.c cpudetect.c mp_msg.c ac3-iec958.c dec_audio.c dec_video.c msvidc.c cinepak.c fli.c qtrle.c codec-cfg.c cfgparser.c my_profile.c RTjpegN.c minilzo.c nuppelvideo.c spudec.c playtree.c playtreeparser.c asxparser.c qtsmc.c ducktm1.c roqav.c
SRCS_MENCODER = mencoder.c $(SRCS_COMMON) libao2/afmt.c divx4_vbr.c libvo/aclib.c libvo/img_format.c libvo/osd.c
SRCS_MPLAYER = mplayer.c $(SRCS_COMMON) find_sub.c subreader.c lirc_mp.c mixer.c vobsub.c
diff --git a/codec-cfg.c b/codec-cfg.c
index 3fd112cd9e..0bc0e0f169 100644
--- a/codec-cfg.c
+++ b/codec-cfg.c
@@ -221,6 +221,7 @@ static short get_driver(char *s,int audioflag)
"imaadpcm",
"fox61adpcm",
"fox62adpcm",
+ "roqaudio",
NULL
};
static char *videodrv[] = {
@@ -243,6 +244,7 @@ static short get_driver(char *s,int audioflag)
"cyuv",
"qtsmc",
"ducktm1",
+ "roqvideo",
NULL
};
char **drv=audioflag?audiodrv:videodrv;
diff --git a/codec-cfg.h b/codec-cfg.h
index f8d13fd7c1..338dd8c2b7 100644
--- a/codec-cfg.h
+++ b/codec-cfg.h
@@ -36,6 +36,7 @@
#define AFM_IMAADPCM 16
#define AFM_FOX61ADPCM 17
#define AFM_FOX62ADPCM 18
+#define AFM_ROQAUDIO 19
#define VFM_MPEG 1
#define VFM_VFW 2
@@ -55,6 +56,7 @@
#define VFM_CYUV 16
#define VFM_QTSMC 17
#define VFM_DUCKTM1 18
+#define VFM_ROQVIDEO 19
#ifndef GUID_TYPE
#define GUID_TYPE
diff --git a/etc/codecs.conf b/etc/codecs.conf
index d86b8627c2..b9bb1b4196 100644
--- a/etc/codecs.conf
+++ b/etc/codecs.conf
@@ -294,7 +294,8 @@ videocodec msrle
videocodec fli
info "Autodesk FLI/FLC Animation"
status working
- fourcc FLIC ; internal MPlayer FOURCC, not official
+ comment "FLIC is an internal MPlayer FOURCC"
+ fourcc FLIC
driver fli
out BGR32,BGR24
@@ -344,6 +345,14 @@ videocodec ducktm1
driver ducktm1
out BGR32,BGR24,BGR16,BGR15
+videocodec roqvideo
+ info "Id RoQ File Video Decoder"
+ status buggy
+ comment "RoQV is an internal MPlayer FOURCC"
+ fourcc RoQV
+ driver roqvideo
+ out YV12
+
audiocodec imaadpcm
info "IMA ADPCM"
status working
@@ -371,6 +380,13 @@ audiocodec fox62adpcm
format 0x62
driver fox62adpcm
+videocodec roqaudio
+ info "Id RoQ File Audio Decoder"
+ status buggy
+ comment "RoQA is an internal MPlayer FOURCC"
+ fourcc RoQA
+ driver roqaudio
+
; =============== WINDOWS DLL's ==============
videocodec vp3
diff --git a/roqav.c b/roqav.c
new file mode 100644
index 0000000000..f1bcd51b98
--- /dev/null
+++ b/roqav.c
@@ -0,0 +1,39 @@
+/*
+ RoQ A/V decoder for the MPlayer program
+ by Mike Melanson
+ based on Dr. Tim Ferguson's RoQ document found at:
+ http://www.csse.monash.edu.au/~timf/videocodec.html
+*/
+
+#include "config.h"
+#include "bswap.h"
+#include <stdio.h>
+
+#define LE_16(x) (le2me_16(*(unsigned short *)(x)))
+#define LE_32(x) (le2me_32(*(unsigned int *)(x)))
+
+void *roq_decode_video_init(void)
+{
+}
+
+void roq_decode_video(
+ unsigned char *encoded,
+ int encoded_size,
+ unsigned char *decoded,
+ int width,
+ int height,
+ void *context)
+{
+}
+
+void *roq_decode_audio_init(void)
+{
+}
+
+int roq_decode_audio(
+ unsigned short *output,
+ unsigned char *input,
+ int channels,
+ void *context)
+{
+}
diff --git a/roqav.h b/roqav.h
new file mode 100644
index 0000000000..a049713e9a
--- /dev/null
+++ b/roqav.h
@@ -0,0 +1,12 @@
+#ifndef ROQAV_H
+#define ROQAV_H
+
+void *roq_decode_video_init(void);
+void roq_decode_video(unsigned char *encoded, int encoded_size,
+ unsigned char *decoded, int width, int height, void *context);
+
+void *roq_decode_audio_init(void);
+int roq_decode_audio(unsigned short *output, unsigned char *input,
+ int channels, void *context);
+
+#endif // ROQAV_H