diff --git a/docs/plugins/.gitignore b/docs/plugins/.gitignore
index 73d2bbd3fe..13ac8df793 100644
--- a/docs/plugins/.gitignore
+++ b/docs/plugins/.gitignore
@@ -6,6 +6,7 @@ Makefile.in
*-undocumented.txt
*-undeclared.txt
*-unused.txt
+*.bak
tmpl
xml
@@ -13,7 +14,7 @@ html
gst-plugins-bad-plugins-scan
gst-plugins-bad-plugins-scan.c
-inspect-registry.
+inspect-registry.*
html-build.stamp
html.stamp
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index c5504b19e1..5f78f46f8e 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -96,6 +96,7 @@ EXTRA_HFILES = \
$(top_srcdir)/ext/celt/gstceltenc.h \
$(top_srcdir)/ext/dc1394/gstdc1394.h \
$(top_srcdir)/ext/directfb/dfbvideosink.h \
+ $(top_srcdir)/ext/dts/gstdtsdec.h \
$(top_srcdir)/ext/ivorbis/vorbisdec.h \
$(top_srcdir)/ext/jack/gstjackaudiosrc.h \
$(top_srcdir)/ext/jack/gstjackaudiosink.h \
diff --git a/docs/plugins/gst-plugins-bad-plugins-docs.sgml b/docs/plugins/gst-plugins-bad-plugins-docs.sgml
index 1b399ba571..57ea1674d4 100644
--- a/docs/plugins/gst-plugins-bad-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-bad-plugins-docs.sgml
@@ -34,6 +34,7 @@
+
@@ -97,6 +98,7 @@
+
diff --git a/docs/plugins/gst-plugins-bad-plugins-sections.txt b/docs/plugins/gst-plugins-bad-plugins-sections.txt
index a2829ef96e..bf07b16fc6 100644
--- a/docs/plugins/gst-plugins-bad-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-bad-plugins-sections.txt
@@ -248,6 +248,20 @@ gst_dtmf_src_get_type
gst_dtmf_src_plugin_init
+
+element-dtsdec
+dtsdec
+GstDtsDec
+
+GstDtsDecClass
+gst_dtsdec_get_type
+GST_TYPE_DTSDEC
+GST_DTSDEC
+GST_DTSDEC_CLASS
+GST_IS_DTSDEC
+GST_IS_DTSDEC_CLASS
+
+
element-dvbsrc
dvbsrc
diff --git a/docs/plugins/inspect/plugin-dirac.xml b/docs/plugins/inspect/plugin-dirac.xml
new file mode 100644
index 0000000000..e16d0a32e6
--- /dev/null
+++ b/docs/plugins/inspect/plugin-dirac.xml
@@ -0,0 +1,34 @@
+
+ dirac
+ Dirac plugin
+ ../../ext/dirac/.libs/libgstdirac.so
+ libgstdirac.so
+ 0.10.10.1
+ LGPL
+ gst-plugins-bad
+ GStreamer Bad Plug-ins CVS/prerelease
+ Unknown package origin
+
+
+ diracenc
+ Dirac Encoder
+ Codec/Encoder/Video
+ Encode raw YUV video into Dirac stream
+ David Schleef <ds@schleef.org>
+
+
+ sink
+ sink
+ always
+ video/x-raw-yuv, format=(fourcc){ I420, YUY2, UYVY, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+ src
+ source
+ always
+ video/x-dirac
+
+
+
+
+
\ No newline at end of file
diff --git a/ext/apexsink/gstapexraop.c b/ext/apexsink/gstapexraop.c
index 42b707caa2..98b7d86341 100644
--- a/ext/apexsink/gstapexraop.c
+++ b/ext/apexsink/gstapexraop.c
@@ -231,7 +231,17 @@ gst_apexraop_connect (GstApExRAOP * con)
creq[GST_APEX_RAOP_SDP_DEFAULT_LENGTH],
hreq[GST_APEX_RAOP_HDR_DEFAULT_LENGTH], *req;
RSA *rsa;
- guchar *mod, *exp, buf[4 + 8 + 16], rsakey[512];
+ guchar *mod, *exp, rsakey[512];
+ union gst_randbytes
+ {
+ struct asvals
+ {
+ gulong url_key;
+ guint64 conn_id;
+ guchar challenge[16];
+ } v;
+ guchar buf[4 + 8 + 16];
+ } randbuf;
gsize size;
struct sockaddr_in ioaddr;
socklen_t iolen;
@@ -257,12 +267,9 @@ gst_apexraop_connect (GstApExRAOP * con)
sizeof (conn->ctrl_sd_in)) < 0)
return GST_RTSP_STS_DESTINATION_UNREACHABLE;
- RAND_bytes (buf, sizeof (buf));
- sprintf ((gchar *) conn->url_abspath, "%lu", *((gulong *) buf));
- ac = g_base64_encode (buf + 12, 16);
- g_strdel (ac, '=');
- sprintf ((char *) conn->cid, "%08lx%08lx", *((gulong *) (buf + 4)),
- *((gulong *) (buf + 8)));
+ RAND_bytes (randbuf.buf, sizeof (randbuf));
+ sprintf ((gchar *) conn->url_abspath, "%lu", randbuf.v.url_key);
+ sprintf ((char *) conn->cid, "%16" G_GINT64_MODIFIER "x", randbuf.v.conn_id);
RAND_bytes (conn->aes_ky, AES_BLOCK_SIZE);
RAND_bytes (conn->aes_iv, AES_BLOCK_SIZE);
@@ -285,6 +292,9 @@ gst_apexraop_connect (GstApExRAOP * con)
getsockname (conn->ctrl_sd, (struct sockaddr *) &ioaddr, &iolen);
inet_ntop (AF_INET, &(ioaddr.sin_addr), inaddr, INET_ADDRSTRLEN);
+ ac = g_base64_encode (randbuf.v.challenge, 16);
+ g_strdel (ac, '=');
+
sprintf (creq,
"v=0\r\n"
"o=iTunes %s 0 IN IP4 %s\r\n"
diff --git a/ext/celt/gstceltdec.c b/ext/celt/gstceltdec.c
index fe1914b820..2f3d7807dc 100644
--- a/ext/celt/gstceltdec.c
+++ b/ext/celt/gstceltdec.c
@@ -48,6 +48,8 @@
GST_DEBUG_CATEGORY_STATIC (celtdec_debug);
#define GST_CAT_DEFAULT celtdec_debug
+#define DEC_MAX_FRAME_SIZE 2000
+
static GstStaticPadTemplate celt_dec_src_factory =
GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
diff --git a/ext/celt/gstceltdec.h b/ext/celt/gstceltdec.h
index 19f1444738..77851338ad 100644
--- a/ext/celt/gstceltdec.h
+++ b/ext/celt/gstceltdec.h
@@ -41,8 +41,6 @@ G_BEGIN_DECLS
typedef struct _GstCeltDec GstCeltDec;
typedef struct _GstCeltDecClass GstCeltDecClass;
-#define DEC_MAX_FRAME_SIZE 2000
-
struct _GstCeltDec {
GstElement element;
diff --git a/ext/dts/gstdtsdec.c b/ext/dts/gstdtsdec.c
index 58748e6cb2..5b85a80322 100644
--- a/ext/dts/gstdtsdec.c
+++ b/ext/dts/gstdtsdec.c
@@ -17,9 +17,20 @@
* Boston, MA 02111-1307, USA.
*/
-/* TODO: - Port to libdca API instead of relying on the compat header.
- * libdca is the successor of libdts:
- * http://www.videolan.org/developers/libdca.html
+/**
+ * SECTION:element-dtsdec
+ *
+ * Digital Theatre System (DTS) audio decoder
+ *
+ *
+ * Example launch line
+ * |[
+ * gst-launch dvdreadsrc title=1 ! mpegpsdemux ! dtsdec ! audioresample ! audioconvert ! alsasink
+ * ]| Play a DTS audio track from a dvd.
+ * |[
+ * gst-launch filesrc location=abc.dts ! dtsdec ! audioresample ! audioconvert ! alsasink
+ * ]| Decode a standalone file and play it.
+ *
*/
#ifdef HAVE_CONFIG_H
@@ -162,6 +173,14 @@ gst_dtsdec_class_init (GstDtsDecClass * klass)
gstelement_class->change_state = gst_dtsdec_change_state;
+ /**
+ * GstDtsDec::drc
+ *
+ * Set to true to apply the recommended DTS dynamic range compression
+ * to the audio stream. Dynamic range compression makes loud sounds
+ * softer and soft sounds louder, so you can more easily listen
+ * to the stream without disturbing other people.
+ */
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_DRC,
g_param_spec_boolean ("drc", "Dynamic Range Compression",
"Use Dynamic Range Compression", FALSE, G_PARAM_READWRITE));