summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2006-01-23 18:39:31 +0000
committerEdward Hervey <bilboed@bilboed.com>2006-01-23 18:39:31 +0000
commit593a09066da2a16004a969bad823f962f761b8ad (patch)
tree1f94e73cfa7db0ce9f6a83aea13ac2332eb50c78
parent07d2fd89cbe868be9296e60b1b7ba92ffda87693 (diff)
gst/matroska/: Added recognition of Real Audio and Video streams in matroska demuxer.
Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps), (gst_matroska_demux_plugin_init): * gst/matroska/matroska-ids.h: Added recognition of Real Audio and Video streams in matroska demuxer.
-rw-r--r--ChangeLog7
-rw-r--r--gst/matroska/matroska-demux.c60
-rw-r--r--gst/matroska/matroska-ids.h15
3 files changed, 78 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 2631e6ea..19bea743 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-01-23 Edward Hervey <edward@fluendo.com>
+
+ * gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps),
+ (gst_matroska_demux_audio_caps), (gst_matroska_demux_plugin_init):
+ * gst/matroska/matroska-ids.h:
+ Added recognition of Real Audio and Video streams in matroska demuxer.
+
2006-01-23 Jan Schmidt <thaytan@mad.scientist.com>
* gst/id3demux/id3v2frames.c: (id3v2_tag_to_taglist):
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index 1f1bef32..10c3c98c 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -3034,6 +3034,25 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext *
}
if (codec_name)
*codec_name = g_strdup ("H264");
+ } else if ((!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO1)) ||
+ (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO2)) ||
+ (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO3)) ||
+ (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO4))) {
+ gint rmversion = -1;
+
+ if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO1))
+ rmversion = 1;
+ else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO2))
+ rmversion = 2;
+ else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO3))
+ rmversion = 3;
+ else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO4))
+ rmversion = 4;
+
+ caps = gst_caps_new_simple ("video/x-pn-realvideo",
+ "rmversion", G_TYPE_INT, rmversion, NULL);
+ if (codec_name)
+ *codec_name = g_strdup_printf ("RealVideo %d.0", rmversion);
} else {
GST_WARNING ("Unknown codec '%s', cannot build Caps", codec_id);
return NULL;
@@ -3327,6 +3346,33 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext *
}
if (codec_name)
*codec_name = g_strdup ("Wavpack audio");
+ } else if ((!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_REAL_14_4)) ||
+ (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_REAL_14_4)) ||
+ (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_REAL_COOK))) {
+ gint raversion = -1;
+
+ if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_REAL_14_4))
+ raversion = 1;
+ else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_REAL_COOK))
+ raversion = 8;
+ else
+ raversion = 2;
+ caps = gst_caps_new_simple ("audio/x-pn-realaudio",
+ "raversion", G_TYPE_INT, raversion, NULL);
+ if (codec_name)
+ *codec_name = g_strdup_printf ("RealAudio %d.0", raversion);
+ } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_REAL_SIPR)) {
+ caps = gst_caps_new_simple ("audio/x-sipro", NULL);
+ if (codec_name)
+ *codec_name = g_strdup ("Sipro/ACELP.NET Voice Codec");
+ } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_REAL_RALF)) {
+ caps = gst_caps_new_simple ("audio/x-ralf-mpeg4-generic", NULL);
+ if (codec_name)
+ *codec_name = g_strdup ("Real Audio Lossless");
+ } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_REAL_ATRC)) {
+ caps = gst_caps_new_simple ("audio/x-vnd.sony.atrac3", NULL);
+ if (codec_name)
+ *codec_name = g_strdup ("Sony ATRAC3");
} else {
GST_WARNING ("Unknown codec '%s', cannot build Caps", codec_id);
return NULL;
@@ -3431,7 +3477,11 @@ gst_matroska_demux_plugin_init (GstPlugin * plugin)
GST_MATROSKA_CODEC_ID_VIDEO_MPEG1,
GST_MATROSKA_CODEC_ID_VIDEO_MPEG2,
GST_MATROSKA_CODEC_ID_VIDEO_MJPEG,
- /* TODO: Real/Quicktime */
+ GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO1,
+ GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO2,
+ GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO3,
+ GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO4,
+ /* TODO: Quicktime */
/* FILLME */
NULL
};
@@ -3448,7 +3498,13 @@ gst_matroska_demux_plugin_init (GstPlugin * plugin)
GST_MATROSKA_CODEC_ID_AUDIO_TTA,
GST_MATROSKA_CODEC_ID_AUDIO_MPEG2, GST_MATROSKA_CODEC_ID_AUDIO_MPEG4,
GST_MATROSKA_CODEC_ID_AUDIO_WAVPACK4,
- /* TODO: AC3-9/10, Real, Musepack, Quicktime */
+ GST_MATROSKA_CODEC_ID_AUDIO_REAL_14_4,
+ GST_MATROSKA_CODEC_ID_AUDIO_REAL_28_8,
+ GST_MATROSKA_CODEC_ID_AUDIO_REAL_COOK,
+ GST_MATROSKA_CODEC_ID_AUDIO_REAL_SIPR,
+ GST_MATROSKA_CODEC_ID_AUDIO_REAL_RALF,
+ GST_MATROSKA_CODEC_ID_AUDIO_REAL_ATRC,
+ /* TODO: AC3-9/10, Musepack, Quicktime */
/* FILLME */
NULL
};
diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h
index a23bfdb3..906e489b 100644
--- a/gst/matroska/matroska-ids.h
+++ b/gst/matroska/matroska-ids.h
@@ -138,7 +138,11 @@
#define GST_MATROSKA_CODEC_ID_VIDEO_MPEG1 "V_MPEG1"
#define GST_MATROSKA_CODEC_ID_VIDEO_MPEG2 "V_MPEG2"
#define GST_MATROSKA_CODEC_ID_VIDEO_MJPEG "V_MJPEG"
-/* TODO: Real/Quicktime */
+#define GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO1 "V_REAL/RV10"
+#define GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO2 "V_REAL/RV20"
+#define GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO3 "V_REAL/RV30"
+#define GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO4 "V_REAL/RV40"
+/* TODO: Quicktime */
#define GST_MATROSKA_CODEC_ID_AUDIO_MPEG1_L1 "A_MPEG/L1"
#define GST_MATROSKA_CODEC_ID_AUDIO_MPEG1_L2 "A_MPEG/L2"
@@ -154,7 +158,14 @@
#define GST_MATROSKA_CODEC_ID_AUDIO_MPEG4 "A_AAC/MPEG4/"
#define GST_MATROSKA_CODEC_ID_AUDIO_TTA "A_TTA1"
#define GST_MATROSKA_CODEC_ID_AUDIO_WAVPACK4 "A_WAVPACK4"
-/* TODO: AC3-9/10 (?), Real, Musepack, Quicktime */
+#define GST_MATROSKA_CODEC_ID_AUDIO_REAL_14_4 "A_REAL/28_8"
+#define GST_MATROSKA_CODEC_ID_AUDIO_REAL_28_8 "A_REAL/28_8"
+#define GST_MATROSKA_CODEC_ID_AUDIO_REAL_COOK "A_REAL/COOK"
+#define GST_MATROSKA_CODEC_ID_AUDIO_REAL_SIPR "A_REAL/SIPR"
+#define GST_MATROSKA_CODEC_ID_AUDIO_REAL_RALF "A_REAL/RALF"
+#define GST_MATROSKA_CODEC_ID_AUDIO_REAL_ATRC "A_REAL/ATRC"
+
+/* TODO: AC3-9/10 (?), Musepack, Quicktime */
#define GST_MATROSKA_CODEC_ID_SUBTITLE_UTF8 "S_TEXT/UTF8"