shithub: alienpatch

Download patch

ref: 86399d785f68db91a29b54af06a444caf971012f
author: qwx <[email protected]>
date: Fri Jan 10 21:13:30 EST 2020

add patches for building bleeding edge opus libraries and tools

git://git.xiph.org/libopusenc.git
git://git.xiph.org/opus-tools.git
git://git.xiph.org/opus.git
git://git.xiph.org/opusfile.git

--- /dev/null
+++ b/libopusenc
@@ -1,0 +1,37 @@
+--- /dev/null	Wed Dec 11 10:26:09 2019
++++ mkfile	Sat Jan 11 02:42:30 2020
+@@ -0,0 +1,34 @@
++</$objtype/mkfile
++
++CC=pcc
++CFLAGS=-Iinclude \
++	-I/sys/src/cmd/audio/libogg \
++	-I/sys/include/ape/opus \
++	-DPACKAGE_VERSION="fuckoff" \
++	-DPACKAGE_NAME="libopusenc" \
++	-DOUTSIDE_SPEEX \
++	-DRANDOM_PREFIX=opusenc \
++	-D_POSIX_SOURCE \
++	-c
++LIB=libopusenc.a
++
++OFILES=\
++	ogg_packer.$O \
++	opus_header.$O \
++	opusenc.$O \
++	picture.$O \
++	resample.$O \
++	unicode_support.$O \
++
++</sys/src/cmd/mklib
++
++LIBDIR=/$objtype/lib/ape
++
++%.$O:	src/%.c
++	$CC $CFLAGS src/$stem.c
++
++installheaders:V:
++	mkdir -p /sys/include/ape/opus
++	dircp include /sys/include/ape/opus
++
++install:VQ:	installheaders
--- /dev/null
+++ b/opus
@@ -1,0 +1,184 @@
+--- /dev/null	Wed Dec 11 10:26:09 2019
++++ mkfile	Sat Jan 11 02:26:04 2020
+@@ -0,0 +1,181 @@
++</$objtype/mkfile
++
++CC=pcc
++CFLAGS=-Iinclude -Isilk -Isilk/fixed -Isilk/float -Icelt \
++	-DPACKAGE_VERSION="$VERSION" \
++	-DOPUS_BUILD \
++	-DCUSTOM_MODES \
++	-DNONTHREADSAFE_PSEUDOSTACK \
++	-c
++LIB=libopus.a
++
++OFILES=\
++# silk \
++	CNG.$O \
++	code_signs.$O \
++	init_decoder.$O \
++	decode_core.$O \
++	decode_frame.$O \
++	decode_parameters.$O \
++	decode_indices.$O \
++	decode_pulses.$O \
++	decoder_set_fs.$O \
++	dec_API.$O \
++	enc_API.$O \
++	encode_indices.$O \
++	encode_pulses.$O \
++	gain_quant.$O \
++	interpolate.$O \
++	LP_variable_cutoff.$O \
++	NLSF_decode.$O \
++	NSQ.$O \
++	NSQ_del_dec.$O \
++	PLC.$O \
++	shell_coder.$O \
++	tables_gain.$O \
++	tables_LTP.$O \
++	tables_NLSF_CB_NB_MB.$O \
++	tables_NLSF_CB_WB.$O \
++	tables_other.$O \
++	tables_pitch_lag.$O \
++	tables_pulses_per_block.$O \
++	VAD.$O \
++	control_audio_bandwidth.$O \
++	quant_LTP_gains.$O \
++	VQ_WMat_EC.$O \
++	HP_variable_cutoff.$O \
++	NLSF_encode.$O \
++	NLSF_VQ.$O \
++	NLSF_unpack.$O \
++	NLSF_del_dec_quant.$O \
++	process_NLSFs.$O \
++	stereo_LR_to_MS.$O \
++	stereo_MS_to_LR.$O \
++	check_control_input.$O \
++	control_SNR.$O \
++	init_encoder.$O \
++	control_codec.$O \
++	A2NLSF.$O \
++	ana_filt_bank_1.$O \
++	biquad_alt.$O \
++	bwexpander_32.$O \
++	bwexpander.$O \
++	debug.$O \
++	decode_pitch.$O \
++	inner_prod_aligned.$O \
++	lin2log.$O \
++	log2lin.$O \
++	LPC_analysis_filter.$O \
++	LPC_inv_pred_gain.$O \
++	table_LSF_cos.$O \
++	NLSF2A.$O \
++	NLSF_stabilize.$O \
++	NLSF_VQ_weights_laroia.$O \
++	pitch_est_tables.$O \
++	resampler.$O \
++	resampler_down2_3.$O \
++	resampler_down2.$O \
++	resampler_private_AR2.$O \
++	resampler_private_down_FIR.$O \
++	resampler_private_IIR_FIR.$O \
++	resampler_private_up2_HQ.$O \
++	resampler_rom.$O \
++	sigm_Q15.$O \
++	sort.$O \
++	sum_sqr_shift.$O \
++	stereo_decode_pred.$O \
++	stereo_encode_pred.$O \
++	stereo_find_predictor.$O \
++	stereo_quant_pred.$O \
++	LPC_fit.$O \
++# silk/float \
++	apply_sine_window_FLP.$O \
++	corrMatrix_FLP.$O \
++	encode_frame_FLP.$O \
++	find_LPC_FLP.$O \
++	find_LTP_FLP.$O \
++	find_pitch_lags_FLP.$O \
++	find_pred_coefs_FLP.$O \
++	LPC_analysis_filter_FLP.$O \
++	LTP_analysis_filter_FLP.$O \
++	LTP_scale_ctrl_FLP.$O \
++	noise_shape_analysis_FLP.$O \
++	process_gains_FLP.$O \
++	regularize_correlations_FLP.$O \
++	residual_energy_FLP.$O \
++	warped_autocorrelation_FLP.$O \
++	wrappers_FLP.$O \
++	autocorrelation_FLP.$O \
++	burg_modified_FLP.$O \
++	bwexpander_FLP.$O \
++	energy_FLP.$O \
++	inner_product_FLP.$O \
++	k2a_FLP.$O \
++	LPC_inv_pred_gain_FLP.$O \
++	pitch_analysis_core_FLP.$O \
++	scale_copy_vector_FLP.$O \
++	scale_vector_FLP.$O \
++	schur_FLP.$O \
++	sort_FLP.$O \
++# celt \
++	bands.$O \
++	celt.$O \
++	celt_encoder.$O \
++	celt_decoder.$O \
++	cwrs.$O \
++	entcode.$O \
++	entdec.$O \
++	entenc.$O \
++	kiss_fft.$O \
++	laplace.$O \
++	mathops.$O \
++	mdct.$O \
++	modes.$O \
++	pitch.$O \
++	celt_lpc.$O \
++	quant_bands.$O \
++	rate.$O \
++	vq.$O \
++# src \
++	analysis.$O \
++	mlp.$O \
++	mlp_data.$O \
++	opus.$O \
++	opus_decoder.$O \
++	opus_encoder.$O \
++	opus_multistream.$O \
++	opus_multistream_encoder.$O \
++	opus_multistream_decoder.$O \
++	repacketizer.$O \
++	opus_projection_encoder.$O \
++	opus_projection_decoder.$O \
++	mapping_matrix.$O
++
++
++</sys/src/cmd/mklib
++
++LIBDIR=/$objtype/lib/ape
++
++%.$O:	silk/%.c
++	$CC $CFLAGS silk/$stem.c
++
++%.$O:	silk/fixed/%.c
++	$CC $CFLAGS silk/fixed/$stem.c
++
++%.$O:	silk/float/%.c
++	$CC $CFLAGS silk/float/$stem.c
++
++%.$O:	celt/%.c
++	$CC $CFLAGS celt/$stem.c
++
++%.$O:	src/%.c
++	$CC $CFLAGS src/$stem.c
++
++installheaders:V:
++	mkdir -p /sys/include/ape/opus
++	dircp include /sys/include/ape/opus
++
++install:VQ:	installheaders
++
++uninstall:V:
++	rm -rf $LIBDIR/$LIB /sys/include/ape/opus
--- /dev/null
+++ b/opus-tools
@@ -1,0 +1,140 @@
+--- /dev/null	Wed Dec 11 10:26:09 2019
++++ mkfile	Sat Jan 11 02:50:28 2020
+@@ -0,0 +1,40 @@
++</$objtype/mkfile
++
++CC=pcc
++CFLAGS=-Iinclude \
++	-I/sys/src/cmd/audio/libogg \
++	-I /sys/include/ape/opus \
++	-D_POSIX_SOURCE \
++	-D__GNU_LIBRARY__ \
++	-D_C99_SNPRINTF_EXTENSION \
++	-DSPX_RESAMPLE_EXPORT= -DRANDOM_PREFIX=opustools -DOUTSIDE_SPEEX \
++	-DRESAMPLE_FULL_SINC_TABLE -DOPUSTOOLS \
++	-DPACKAGE_NAME="opus-tools" -DPACKAGE_VERSION="fuckoff" \
++	-c
++
++TARG=opusdec opusenc opusinfo
++BIN=/$objtype/bin/audio
++
++LIB=\
++	/$objtype/lib/ape/libopusfile.a \
++	/$objtype/lib/ape/libopusenc.a \
++	/$objtype/lib/ape/libopus.a \
++
++
++</sys/src/cmd/mkmany
++
++%.$O:	src/%.c
++	$CC $CFLAGS $prereq
++
++%.$O:	share/%.c
++	$CC $CFLAGS $prereq
++
++COMMON=opus_header.$O resample.$O getopt.$O getopt1.$O
++
++$O.opusdec: opusdec.$O wav_io.$O wave_out.$O  diag_range.$O $COMMON
++$O.opusenc: opusenc.$O audio-in.$O diag_range.$O flac.$O picture.$O $COMMON
++$O.opusinfo: opusinfo.$O info_opus.$O picture.$O $COMMON
++
++uninstall:V:
++	for (i in $TARG)
++		rm -f $BIN/$i
+--- /mnt/git/branch/heads/test3-appveyor/tree/src/audio-in.c	Mon Sep  9 09:24:16 2019
++++ src/audio-in.c	Sat Jan 11 00:28:31 2020
+@@ -718,7 +718,11 @@ long wav_read(void *in, float *buffer, i
+     int sampbyte = f->samplesize / 8;
+     int realsamples = f->totalsamples > 0 && samples > (f->totalsamples - f->samplesread)
+         ? (int)(f->totalsamples - f->samplesread) : samples;
+-    signed char *buf = alloca(realsamples*sampbyte*f->channels);
++    signed char *buf = malloc(realsamples*sampbyte*f->channels);
++    if(buf == NULL){
++        fprintf(stderr, "allocation failure\n");
++        return 0;
++    }
+     int i,j;
+     int *ch_permute = f->channel_permute;
+ 
+@@ -790,17 +794,20 @@ long wav_read(void *in, float *buffer, i
+             }
+         }
+         else {
++            free(buf);
+             fprintf(stderr, _("Big endian 24 bit PCM data is not currently "
+                               "supported, aborting.\n"));
+             return 0;
+         }
+     }
+     else {
++        free(buf);
+         fprintf(stderr, _("Internal error: attempt to read unsupported "
+                           "bitdepth %d\n"), f->samplesize);
+         return 0;
+     }
+ 
++    free(buf);
+     return realsamples;
+ }
+ 
+@@ -809,9 +816,14 @@ long wav_ieee_read(void *in, float *buff
+     wavfile *f = (wavfile *)in;
+     int realsamples = f->totalsamples > 0 && samples > (f->totalsamples - f->samplesread)
+         ? (int)(f->totalsamples - f->samplesread) : samples;
+-    float *buf = alloca(realsamples*4*f->channels); /* de-interleave buffer */
++    float *buf = malloc(realsamples*4*f->channels); /* de-interleave buffer */
+     int i,j;
+ 
++    if(buf == NULL){
++        fprintf(stderr, "allocation failure\n");
++        return 0;
++    }
++
+     realsamples = (int)fread(buf, 4*f->channels, realsamples, f->f);
+     f->samplesread += realsamples;
+ 
+@@ -819,6 +831,7 @@ long wav_ieee_read(void *in, float *buff
+         for (j=0; j < f->channels; j++)
+             buffer[i*f->channels+j] = get_le_float(buf + i*f->channels + f->channel_permute[j]);
+ 
++    free(buf);
+     return realsamples;
+ }
+ 
+--- /mnt/git/branch/heads/test3-appveyor/tree/src/opusdec.c	Mon Sep  9 09:24:16 2019
++++ src/opusdec.c	Sat Jan 11 02:51:09 2020
+@@ -494,8 +494,12 @@ opus_int64 audio_write(float *pcm, int c
+    short *out;
+    float *buf;
+    float *output;
+-   out=alloca(sizeof(short)*MAX_FRAME_SIZE*channels);
+-   buf=alloca(sizeof(float)*MAX_FRAME_SIZE*channels);
++   out=malloc(sizeof(short)*MAX_FRAME_SIZE*channels);
++   buf=malloc(sizeof(float)*MAX_FRAME_SIZE*channels);
++   if(out == NULL || buf == NULL){
++      fprintf(stderr, "allocation failure\n");
++      return 0;
++   }
+    maxout=((link_read/48000)*rate + (link_read%48000)*rate/48000) - link_out;
+    maxout=maxout<0?0:maxout;
+    do {
+@@ -561,6 +565,8 @@ opus_int64 audio_write(float *pcm, int c
+        maxout-=ret;
+      }
+    } while (frame_size>0 && maxout>0);
++   free(buf);
++   free(out);
+    return sampout;
+ }
+ 
+@@ -848,8 +854,8 @@ int main(int argc, char **argv)
+    }
+    else
+    {
+-      st=op_open_url(inFile,NULL,NULL);
+-      if (st==NULL)
++      //st=op_open_url(inFile,NULL,NULL);
++      //if (st==NULL)
+       {
+          st=op_open_file(inFile,NULL);
+       }
--- /dev/null
+++ b/opusfile
@@ -1,0 +1,32 @@
+--- /dev/null	Wed Dec 11 10:26:09 2019
++++ mkfile	Sat Jan 11 01:08:03 2020
+@@ -0,0 +1,29 @@
++</$objtype/mkfile
++
++CC=pcc
++CFLAGS=-Iinclude \
++	-I/sys/src/cmd/audio/libogg \
++	-I/sys/include/ape/opus \
++	-DPACKAGE_VERSION="fuckoff" \
++	-D_POSIX_SOURCE \
++	-c
++LIB=libopusfile.a
++
++OFILES=\
++	info.$O \
++	internal.$O \
++	opusfile.$O \
++	stream.$O \
++
++</sys/src/cmd/mklib
++
++LIBDIR=/$objtype/lib/ape
++
++%.$O:	src/%.c
++	$CC $CFLAGS src/$stem.c
++
++installheaders:V:
++	mkdir -p /sys/include/ape/opus
++	dircp include /sys/include/ape/opus
++
++install:VQ:	installheaders