Build Fix -- Remove some duplicate symbol defs to appease ld.
[sxemacs] / src / media / media.c
index 715db6f..51d53d3 100644 (file)
@@ -21,6 +21,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
 #include <config.h>
 #include "lisp.h"
+#include <ent/ent.h>
 
 #include "buffer.h"
 
@@ -49,13 +50,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 #endif
 
 Lisp_Object Qmedia_streamp;
-Lisp_Object Qunknown;
 Lisp_Object Qunavailable;
 /* media property syms */
 Lisp_Object Qdemux, Qcodec, Qnchannels, Qsamplerate;
 Lisp_Object Qbitrate, Qabitrate, Qvbitrate;
-Lisp_Object Qwidth, Qheight, Qaspect, Qdriver, Qkind, Qfifo, Quri, Qtype;
-Lisp_Object Qaudio, Qvideo, Qimage;
+Lisp_Object Qaspect, Qdriver, Qkind, Qfifo, Quri;
+Lisp_Object Qaudio, Qvideo;
 
 static void determine_stream_type(Lisp_Media_Stream *ms, media_driver);
 static void media_stream_print(Lisp_Object, Lisp_Object, int);
@@ -1299,6 +1299,47 @@ sxe_msf_FLT_down(void *d, void *s, size_t len)
        return;
 }
 
+DEFINE_MEDIA_SAMPLE_FORMAT_SIMPLE(sxe_msf_DBL);
+
+static void
+sxe_msf_DBL_up(void *d, void *s, size_t len)
+{
+       /* convert double samples to internal format (S24in32) */
+       size_t i;
+       int32_t *dst = d;
+       double *src = s;
+
+       /* len is the number of samples (== #frame * #channels) */
+       MEDIA_DEBUG_FMT("upsampling DBL->internal: %u samples\n", len);
+
+       for (i = 0; i < len; i++) {
+               dst[i] = (int32_t)(src[i] * SXE_MAX_S24);
+       }
+       MEDIA_DEBUG_FMT("s00:%f d00:%d  s01:%f d01:%d\n",
+                       src[0], dst[0], src[1], dst[1]);
+
+       return;
+}
+
+static void
+sxe_msf_DBL_down(void *d, void *s, size_t len)
+{
+       /* convert samples from internal format (S24in32) to double */
+       int i;
+       float *dst = d;
+       int32_t *src = s;
+
+       /* len is the number of samples (== #frame * #channels) */
+       MEDIA_DEBUG_FMT("downsampling internal->DBL: %u samples\n", len);
+
+       for (i = len-1; i >= 0; i--) {
+               dst[i] = (double)(src[i]) / SXE_MAX_S24;
+       }
+       MEDIA_DEBUG_FMT("d00:%f  d01:%f\n", dst[0], dst[1]);
+
+       return;
+}
+
 /* `effects' */
 DEFINE_MEDIA_SAMPLE_EFFECT(sxe_mse_1ch_to_2ch, _sxe_mse_1ch_to_2ch);