add sox 13.0.0 support
[melted] / src / modules / sox / filter_sox.c
index ca8e3d3..7c0928b 100644 (file)
@@ -3,19 +3,19 @@
  * Copyright (C) 2003-2004 Ushodaya Enterprises Limited
  * Author: Dan Dennedy <dan@dennedy.org>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
  *
- * This program is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
 #include "filter_sox.h"
@@ -225,12 +225,18 @@ static int filter_get_audio( mlt_frame frame, int16_t **buffer, mlt_audio_format
                        int j;
                        char *normalise = mlt_properties_get( filter_properties, "normalise" );
                        double normalised_gain = 1.0;
+#if (ST_LIB_VERSION_CODE >= ST_LIB_VERSION(13,0,0))
+                       st_sample_t dummy_clipped_count = 0;
+#endif
                        
                        // Convert to sox encoding
                        while( p != end )
                        {
+#if (ST_LIB_VERSION_CODE >= ST_LIB_VERSION(13,0,0))
+                               *p = ST_SIGNED_WORD_TO_SAMPLE( *q, dummy_clipped_count );
+#else
                                *p = ST_SIGNED_WORD_TO_SAMPLE( *q );
-                               
+#endif
                                // Compute rms amplitude while we are accessing each sample
                                rms += ( double )*p * ( double )*p;
                                
@@ -320,7 +326,11 @@ static int filter_get_audio( mlt_frame frame, int16_t **buffer, mlt_audio_format
                        end = p + *samples;
                        while ( p != end )
                        {
+#if (ST_LIB_VERSION_CODE >= ST_LIB_VERSION(13,0,0))
+                               *q = ST_SAMPLE_TO_SIGNED_WORD( *p ++, dummy_clipped_count );
+#else
                                *q = ST_SAMPLE_TO_SIGNED_WORD( *p ++ );
+#endif
                                q += *channels;
                        }
                }