remove old quicktime, replaced with current ffmpeg
[goodguy/history.git] / cinelerra-5.0 / quicktime / rawaudio.c
diff --git a/cinelerra-5.0/quicktime/rawaudio.c b/cinelerra-5.0/quicktime/rawaudio.c
deleted file mode 100644 (file)
index cff4981..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-#include "quicktime.h"
-#include "rawaudio.h"
-#include <math.h>
-
-typedef struct
-{
-       char *work_buffer;
-       long buffer_size;
-} quicktime_rawaudio_codec_t;
-
-/* =================================== private for rawaudio */
-
-static int is_little_endian(void)
-{
-       int16_t test = 0x0001;
-       return *((unsigned char *)&test);
-}
-
-static int get_work_buffer(quicktime_t *file, int track, long bytes)
-{
-       quicktime_rawaudio_codec_t *codec = ((quicktime_codec_t*)file->atracks[track].codec)->priv;
-
-       if(codec->work_buffer && codec->buffer_size != bytes) {
-               free(codec->work_buffer);
-               codec->work_buffer = 0;
-       }
-       
-       if(!codec->work_buffer) {
-               codec->buffer_size = bytes;
-               if(!(codec->work_buffer = malloc(bytes))) return 1;
-       }
-       return 0;
-}
-
-/* =================================== public for rawaudio */
-
-static void quicktime_delete_codec_rawaudio(quicktime_audio_map_t *atrack)
-{
-       quicktime_rawaudio_codec_t *codec = ((quicktime_codec_t*)atrack->codec)->priv;
-
-       if(codec->work_buffer) free(codec->work_buffer);
-       codec->work_buffer = 0;
-       codec->buffer_size = 0;
-       free(codec);
-}
-
-static int fclip(float f, int mx)
-{
-  f *= mx;  f += f >= 0 ? 0.5f : -0.5f;
-  return f >= mx ? mx+mx-1 : f < -mx ? 0 : (int)f + mx;
-}
-static int fclip8 (float f) { return fclip(f,0x80); }
-static int fclip16(float f) { return fclip(f,0x8000); }
-static int fclip24(float f) { return fclip(f,0x800000); }
-
-static int   rd8be_s16 (uint8_t *bp) { return (bp[0]<<8) - 0x8000; }
-static int   rd8le_s16 (uint8_t *bp) { return (bp[0]<<8) - 0x8000; }
-static int   rd16be_s16(uint8_t *bp) { return ((bp[0]<<8) | bp[1]) - 0x8000; }
-static int   rd16le_s16(uint8_t *bp) { return (bp[0] | (bp[1]<<8)) - 0x8000; }
-static int   rd24be_s16(uint8_t *bp) { return ((bp[0]<<8) | bp[1]) - 0x8000; }
-static int   rd24le_s16(uint8_t *bp) { return (bp[1] | (bp[2]<<8)) - 0x8000; }
-static float rd8be_flt (uint8_t *bp) { return (float)(bp[0]-0x80)/0x80; }
-static float rd8le_flt (uint8_t *bp) { return (float)(bp[0]-0x80)/0x80; }
-static float rd16be_flt(uint8_t *bp) { return (float)(((bp[0]<<8) | bp[1])-0x8000)/0x8000; }
-static float rd16le_flt(uint8_t *bp) { return (float)((bp[0] | (bp[1]<<8))-0x8000)/0x8000; }
-static float rd24be_flt(uint8_t *bp) { return (float)(((bp[0]<<16) | (bp[1]<<8) | bp[2])-0x800000)/0x800000; }
-static float rd24le_flt(uint8_t *bp) { return (float)((bp[0] | (bp[1]<<8) | (bp[2]<<16))-0x800000)/0x800000; }
-
-static void wr8be_s16 (uint8_t *bp, int v)   { v+=0x8000; bp[0] = v>>8; }
-static void wr8le_s16 (uint8_t *bp, int v)   { v+=0x8000; bp[0] = v>>8; }
-static void wr16be_s16(uint8_t *bp, int v)   { v+=0x8000; bp[0] = v>>8; bp[1] = v; }
-static void wr16le_s16(uint8_t *bp, int v)   { v+=0x8000; bp[0] = v; bp[1] = v>>8; }
-static void wr24be_s16(uint8_t *bp, int v)   { v+=0x8000; bp[0] = v>>8; bp[1] = v; bp[2] = 0; }
-static void wr24le_s16(uint8_t *bp, int v)   { v+=0x8000; bp[0] = 0; bp[1] = v; bp[2] = v>>8; }
-static void wr8be_flt (uint8_t *bp, float f) { int v = fclip8(f); bp[0] = v; }
-static void wr8le_flt (uint8_t *bp, float f) { int v = fclip8(f); bp[0] = v; }
-static void wr16be_flt(uint8_t *bp, float f) { int v = fclip16(f); bp[0] = v>>8; bp[1] = v; }
-static void wr16le_flt(uint8_t *bp, float f) { int v = fclip16(f); bp[0] = v; bp[1] = v>>8; }
-static void wr24be_flt(uint8_t *bp, float f) { int v = fclip24(f); bp[0] = v>>16; bp[1] = v>>8; bp[2] = v; }
-static void wr24le_flt(uint8_t *bp, float f) { int v = fclip24(f); bp[0] = v; bp[1] = v>>8; bp[2] = v>>16; }
-
-#define rd_samples(typ, fn, out, step) { \
-  uint8_t *bp = (uint8_t *)codec->work_buffer + channel*byts; \
-  for( i=0; i<samples; ++i ) { *out++ = fn(bp); bp += step; } \
-}
-
-#define wr_samples(typ, fn, in, step) { \
-  for( j=0; j<channels; ++j ) { typ *inp = in[j]; \
-    uint8_t *bp = (uint8_t *)codec->work_buffer + j*byts; \
-    for( i=0; i<samples; ++i ) { fn(bp,*inp++); bp += step; } \
-  } \
-}
-
-static int quicktime_decode_rawaudio(quicktime_t *file, 
-               int16_t *output_i, float *output_f, long samples, 
-               int track, int channel)
-{
-       int i, result;
-       int little_endian = is_little_endian();
-       quicktime_audio_map_t *track_map = &(file->atracks[track]);
-       quicktime_rawaudio_codec_t *codec = ((quicktime_codec_t*)track_map->codec)->priv;
-       int bits = quicktime_audio_bits(file, track);
-       int byts = bits/8, channels = file->atracks[track].channels;
-       int size = channels * byts;
-       get_work_buffer(file, track, samples * size);
-       result = !quicktime_read_audio(file, codec->work_buffer, samples, track);
-       if( result ) return result;
-// Undo increment since this is done in codecs.c
-       track_map->current_position -= samples;
-       if( !little_endian ) {
-               if( output_i ) {
-                       switch( byts ) {
-                       case 1:  rd_samples(int16_t,rd8be_s16,output_i,size);   break;
-                       case 2:  rd_samples(int16_t,rd16be_s16,output_i,size);  break;
-                       case 3:  rd_samples(int16_t,rd24be_s16,output_i,size);  break;
-                       }
-               }
-               else if( output_f ) {
-                       switch( byts ) {
-                       case 1:  rd_samples(float,rd8be_flt,output_f,size);   break;
-                       case 2:  rd_samples(float,rd16be_flt,output_f,size);  break;
-                       case 3:  rd_samples(float,rd24be_flt,output_f,size);  break;
-                       }
-               }
-       }
-       else {
-// Undo increment since this is done in codecs.c
-               track_map->current_position -= samples;
-               if( output_i ) {
-                       switch( byts ) {
-                       case 1:  rd_samples(int16_t,rd8le_s16,output_i,size);   break;
-                       case 2:  rd_samples(int16_t,rd16le_s16,output_i,size);  break;
-                       case 3:  rd_samples(int16_t,rd24le_s16,output_i,size);  break;
-                       }
-               }
-               else if( output_f ) {
-                       switch( byts ) {
-                       case 1:  rd_samples(float,rd8le_flt,output_f,size);   break;
-                       case 2:  rd_samples(float,rd16le_flt,output_f,size);  break;
-                       case 3:  rd_samples(float,rd24le_flt,output_f,size);  break;
-                       }
-               }
-       }
-/*printf("quicktime_decode_rawaudio 2\n"); */
-       return 0;
-}
-
-static int quicktime_encode_rawaudio(quicktime_t *file, 
-               int16_t **input_i, float **input_f, int track, long samples)
-{
-       int i, j, result;
-       int little_endian = is_little_endian();
-       quicktime_audio_map_t *track_map = &(file->atracks[track]);
-       quicktime_rawaudio_codec_t *codec = ((quicktime_codec_t*)track_map->codec)->priv;
-       int bits = quicktime_audio_bits(file, track);
-       int byts = bits/8, channels = file->atracks[track].channels;
-       int size = channels * byts;
-       get_work_buffer(file, track, samples * size);
-
-       if( !little_endian ) {
-               if( input_i ) {
-                       switch( byts ) {
-                       case 1:  wr_samples(int16_t,wr8be_s16,input_i,size);   break;
-                       case 2:  wr_samples(int16_t,wr16be_s16,input_i,size);  break;
-                       case 3:  wr_samples(int16_t,wr24be_s16,input_i,size);  break;
-                       }
-               }
-               else if( input_f ) {
-                       switch( byts ) {
-                       case 1:  wr_samples(float,wr8be_flt,input_f,size);   break;
-                       case 2:  wr_samples(float,wr16be_flt,input_f,size);  break;
-                       case 3:  wr_samples(float,wr24be_flt,input_f,size);  break;
-                       }
-               }
-       }
-       else {
-               if( input_i ) {
-                       switch( byts ) {
-                       case 1:  wr_samples(int16_t,wr8le_s16,input_i,size);   break;
-                       case 2:  wr_samples(int16_t,wr16le_s16,input_i,size);  break;
-                       case 3:  wr_samples(int16_t,wr24le_s16,input_i,size);  break;
-                       }
-               }
-               else if( input_f ) {
-                       switch( byts ) {
-                       case 1:  wr_samples(float,wr8le_flt,input_f,size);   break;
-                       case 2:  wr_samples(float,wr16le_flt,input_f,size);  break;
-                       case 3:  wr_samples(float,wr24le_flt,input_f,size);  break;
-                       }
-               }
-       }
-
-       result = quicktime_write_audio(file, (char *)codec->work_buffer, samples, track);
-       return result;
-}
-
-
-void quicktime_init_codec_rawaudio(quicktime_audio_map_t *atrack)
-{
-       quicktime_codec_t *codec_base = (quicktime_codec_t*)atrack->codec;
-//     quicktime_rawaudio_codec_t *codec = codec_base->priv;
-
-/* Init public items */
-       codec_base->priv = calloc(1, sizeof(quicktime_rawaudio_codec_t));
-       codec_base->delete_acodec = quicktime_delete_codec_rawaudio;
-       codec_base->decode_video = 0;
-       codec_base->encode_video = 0;
-       codec_base->decode_audio = quicktime_decode_rawaudio;
-       codec_base->encode_audio = quicktime_encode_rawaudio;
-       codec_base->fourcc = QUICKTIME_RAW;
-       codec_base->title = "8 bit unsigned";
-       codec_base->desc = "8 bit unsigned for audio";
-       codec_base->wav_id = 0x01;
-/* Init private items */
-}