亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? codec_decoder.asm

?? bluelab 3.52 里面的立體聲程序源代碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
// *****************************************************************************
// Copyright (C) Cambridge Silicon Radio plc 2003-2006        http://www.csr.com
// Part of BlueLab 3.5.2-release
//
// $Revision$  $Date$
// *****************************************************************************

// *****************************************************************************
// DESCRIPTION
//    Decoder (SBC/MP3/AAC) for an audio playing device (non USB)
//
// *****************************************************************************

.ifndef SELECTED_CODEC_SBC
   .ifndef SELECTED_CODEC_MP3
      .ifndef SELECTED_CODEC_AAC
         .define SELECTED_CODEC_SBC
      .endif
   .endif
.endif

// select the codec specific options
.ifdef SELECTED_CODEC_SBC
   .define SELECTED_CODEC_FRAME_DECODE_FUNCTION        &$sbcdec.frame_decode
   .define SELECTED_CODEC_RESET_DECODER_FUNCTION       &$sbcdec.reset_decoder
   .define SELECTED_CODEC_SILENCE_DECODER_FUNCTION     &$sbcdec.silence_decoder
   .define SELECTED_CODEC_INITIALISE_DECODER_FUNCTION  $sbcdec.init_decoder
   .define SELECTED_CODEC_LIBRARY_HEADER               "sbc_library.h"
.endif
.ifdef SELECTED_CODEC_MP3
   .define SELECTED_CODEC_FRAME_DECODE_FUNCTION        &$mp3dec.frame_decode
   .define SELECTED_CODEC_RESET_DECODER_FUNCTION       &$mp3dec.reset_decoder
   .define SELECTED_CODEC_SILENCE_DECODER_FUNCTION     &$mp3dec.silence_decoder
   .define SELECTED_CODEC_INITIALISE_DECODER_FUNCTION  $mp3dec.init_decoder
   .define SELECTED_CODEC_LIBRARY_HEADER               "mp3_library.h"
.endif
.ifdef SELECTED_CODEC_AAC
   .define SELECTED_CODEC_FRAME_DECODE_FUNCTION        &$aacdec.frame_decode
   .define SELECTED_CODEC_RESET_DECODER_FUNCTION       &$aacdec.reset_decoder
   .define SELECTED_CODEC_SILENCE_DECODER_FUNCTION     &$aacdec.silence_decoder
   .define SELECTED_CODEC_INITIALISE_DECODER_FUNCTION  $aacdec.init_decoder
   .define SELECTED_CODEC_LIBRARY_HEADER               "aac_library.h"

   // At the moment BL does not ship with AAC support so we do not want to make
   // kalprops.xml files for AAC. However we need to store default values
   // somewhere. This seems the best place to put them as the makefiles will
   // still remove them correctly. When AAC is supported these values will be
   // exported to a kalprops.xml file.
   .define AUDIO_CBUFFER_SIZE                      2048
   // codec buffer size as mp3: max range-3072, normal-1536, low latency-768
   .define CODEC_CBUFFER_SIZE                      3072
   .define COMFORT_NOISE_GAIN                      0
   .define GOOD_WORKING_BUFFER_LEVEL               0.65
   .define POORLINK_DETECT_LEVEL                   0.5
   .define POORLINK_PERIOD                         1000000
   .define ZERO_DATA_RATE_STOPPING                 150000
   .define ZERO_DATA_RATE_BUFFERING                200000
   .define WARP_RATE_MAX_RAMP                      0.008  // 0.8% per sec
   .define WARP_RATE_HIGH_COEFFICIENT              0.015  // 1.5% per 1kb buffer diff
   .define WARP_RATE_LOW_COEFFICIENT               0.002  // 0.2% per 1kb buffer diff
   .define WARP_RATE_TRANSITION_LEVEL_WORDS        100    // use high coef if >100 words
   .define WARP_FILTER_COEFS            cbops.warp_and_shift.high_quality_filter_coefs
   .define WARP_FILTER_LENGTH           cbops.warp_and_shift.high_quality_filter_data_size

.endif

// 1.5ms is chosen as the interrupt rate for the audio input/output because:
// adc/dac mmu buffer is 256byte = 128samples
//                               - upto 8 sample fifo in voice interface
//                               = 120samples = 2.5ms @ 48KHz
// assume absolute worst case jitter on interrupts = 1.0ms
// Hence choose 1.5ms between audio input/output interrupts
.define TMR_PERIOD_AUDIO_COPY         1500

// 8ms is chosen as the interrupt rate for the codec input/output as this is a
// good compromise between not overloading the xap with messages and making
// sure that the xap side buffer is emptied relatively often.
.define TMR_PERIOD_CODEC_COPY         8000

// includes
.include "core_library.h"
.include "cbops_library.h"
.include "codec_library.h"
.include SELECTED_CODEC_LIBRARY_HEADER

.MODULE $M.main;
   .CODESEGMENT PM;
   .DATASEGMENT DM;

   $main:

   // ** setup ports that are to be used **
   .CONST  $AUDIO_LEFT_OUT_PORT    ($cbuffer.WRITE_PORT_MASK + 0);
   .CONST  $AUDIO_RIGHT_OUT_PORT   ($cbuffer.WRITE_PORT_MASK + 1);
   .CONST  $CODEC_IN_PORT          ($cbuffer.READ_PORT_MASK  + 0);


   // ** allocate memory for cbuffers **
   .VAR/DMCIRC $audio_out_left[AUDIO_CBUFFER_SIZE];
   .VAR/DMCIRC $audio_out_right[AUDIO_CBUFFER_SIZE];
   .VAR/DMCIRC $codec_in[CODEC_CBUFFER_SIZE];


   // ** allocate memory for cbuffer structures **
   .VAR $codec_in_cbuffer_struc[$cbuffer.STRUC_SIZE] =
          LENGTH($codec_in),              // size
          &$codec_in,                     // read pointer
          &$codec_in;                     // write pointer
   .VAR $audio_out_left_cbuffer_struc[$cbuffer.STRUC_SIZE] =
          LENGTH($audio_out_left),        // size
          &$audio_out_left,               // read pointer
          &$audio_out_left;               // write pointer
   .VAR $audio_out_right_cbuffer_struc[$cbuffer.STRUC_SIZE] =
          LENGTH($audio_out_right),       // size
          &$audio_out_right,              // read pointer
          &$audio_out_right;              // write pointer


   // ** allocate memory for timer structures **
   .VAR $codec_in_timer_struc[$timer.STRUC_SIZE];
   .VAR $audio_out_timer_struc[$timer.STRUC_SIZE];


   // ** allocate memory for codec input cbops copy routine **
   .VAR $codec_in_copy_struc[] =
          &$codec_in_copy_op,             // first operator block
          1,                              // number of inputs
          $CODEC_IN_PORT,                 // input
          1,                              // number of outputs
          &$codec_in_cbuffer_struc;       // output

   .BLOCK $codec_in_copy_op;
      .VAR $codec_in_copy_op.next = $cbops.NO_MORE_OPERATORS;
      .VAR $codec_in_copy_op.func = &$cbops.copy_op;
      .VAR $codec_in_copy_op.param[$cbops.copy_op.STRUC_SIZE] =
               0,                         // Input index
               1;                         // Output index
   .ENDBLOCK;


   // ** allocate memory for stereo audio out cbops copy routine **
   .VAR $stereo_out_copy_struc[] =
      &$audio_out_dc_remove_op_left,      // first operator block
      2,                                  // number of inputs
      &$audio_out_left_cbuffer_struc,     // input
      &$audio_out_right_cbuffer_struc,    // input
      2,                                  // number of outputs
      $AUDIO_LEFT_OUT_PORT,               // output
      $AUDIO_RIGHT_OUT_PORT;              // output

   .BLOCK $audio_out_dc_remove_op_left;
      .VAR audio_out_dc_remove_op_left.next = &$audio_out_warp_and_shift_op_left;
      .VAR audio_out_dc_remove_op_left.func = &$cbops.dc_remove;
      .VAR audio_out_dc_remove_op_left.param[$cbops.dc_remove.STRUC_SIZE] =
               0,                         // Input index (left cbuffer)
               0;                         // Output index (left cbuffer)
   .ENDBLOCK;

   .BLOCK $audio_out_warp_and_shift_op_left;
      .VAR audio_out_warp_and_shift_op_left.next = &$audio_out_dc_remove_op_right;
      .VAR audio_out_warp_and_shift_op_left.func = &$cbops.warp_and_shift;
      .VAR audio_out_warp_and_shift_op_left.param[$cbops.warp_and_shift.STRUC_SIZE] =
               0,                         // Input index (left cbuffer)
               2,                         // Output index (left output port)
               -8,                        // Shift amount
               &$WARP_FILTER_COEFS,                                                   // warp filter coefs
               &audio_out_warp_and_shift_op.left_buf,                                 // warp filter buffer
               &$decoder_codec_stream_struc + $codec.stream_decode.WARP_TARGET_FIELD, // warp target address
               (WARP_RATE_MAX_RAMP / 1000000 * TMR_PERIOD_AUDIO_COPY);                // warp rate max ramp
   .ENDBLOCK;

   .BLOCK $audio_out_dc_remove_op_right;
      .VAR audio_out_dc_remove_op_right.next = &$audio_out_warp_and_shift_op_right;
      .VAR audio_out_dc_remove_op_right.func = &$cbops.dc_remove;
      .VAR audio_out_dc_remove_op_right.param[$cbops.dc_remove.STRUC_SIZE] =
               1,                         // Input index (right cbuffer)
               1;                         // Output index (right cbuffer)
   .ENDBLOCK;

   .BLOCK $audio_out_warp_and_shift_op_right;
      .VAR audio_out_warp_and_shift_op_right.next = $cbops.NO_MORE_OPERATORS;
      .VAR audio_out_warp_and_shift_op_right.func = &$cbops.warp_and_shift;
      .VAR audio_out_warp_and_shift_op_right.param[$cbops.warp_and_shift.STRUC_SIZE] =
               1,                         // Input index (right cbuffer)
               3,                         // Output index (right output port)
               -8,                        // Shift amount
               &$WARP_FILTER_COEFS,                                                   // warp filter coefs
               &audio_out_warp_and_shift_op.right_buf,                                // warp filter buffer
               &$decoder_codec_stream_struc + $codec.stream_decode.WARP_TARGET_FIELD, // warp target address
               (WARP_RATE_MAX_RAMP / 1000000 * TMR_PERIOD_AUDIO_COPY);                // warp rate max ramp
   .ENDBLOCK;


   // ** allocate memory for mono audio out cbops copy routine **
   .VAR $mono_out_copy_struc[] =
      &$audio_out_dc_remove_op_mono,      // first operator block
      1,                                  // number of inputs
      &$audio_out_left_cbuffer_struc,     // input
      1,                                  // number of outputs
      $AUDIO_LEFT_OUT_PORT;               // output

   .BLOCK $audio_out_dc_remove_op_mono;
      .VAR audio_out_dc_remove_op_mono.next = &$audio_out_warp_and_shift_op_mono;
      .VAR audio_out_dc_remove_op_mono.func = &$cbops.dc_remove;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情在线看| 色呦呦国产精品| 91.xcao| 综合婷婷亚洲小说| 在线亚洲免费视频| 日韩av电影天堂| 精品少妇一区二区三区日产乱码| 日韩国产精品久久久久久亚洲| 日韩一二在线观看| 韩国av一区二区三区在线观看| 国产视频911| 色综合色狠狠天天综合色| 亚洲国产日韩综合久久精品| 欧美一区二区视频在线观看| 狠狠色丁香久久婷婷综| 中文字幕不卡的av| 欧美日韩精品一二三区| 经典三级在线一区| 亚洲女爱视频在线| 日韩亚洲欧美在线| 成人污污视频在线观看| 亚洲成人一区二区| 久久久综合视频| 色婷婷一区二区| 久久激五月天综合精品| 国产精品国产三级国产普通话蜜臀| 精品视频999| 国产精品一区在线观看乱码| 亚洲狠狠爱一区二区三区| 欧美tickling挠脚心丨vk| 91影院在线免费观看| 捆绑调教一区二区三区| 亚洲人精品午夜| 欧美精品一区二区三区高清aⅴ| 成人av在线影院| 欧美aaaaaa午夜精品| 亚洲人成人一区二区在线观看| 日韩一区二区三| 色激情天天射综合网| 国产一区二区免费视频| 肉色丝袜一区二区| 国产精品成人在线观看| 精品国产一区久久| 欧美在线视频日韩| 成a人片亚洲日本久久| 麻豆国产欧美一区二区三区| 亚洲欧美欧美一区二区三区| 久久色在线观看| 欧美一区二区三级| 欧美在线视频不卡| 97久久精品人人澡人人爽| 国产精品123| 久热成人在线视频| 日韩和的一区二区| 亚洲一级二级在线| 亚洲乱码精品一二三四区日韩在线| xnxx国产精品| 欧美大度的电影原声| 欧洲亚洲国产日韩| 99久久国产综合精品女不卡| 国产一区999| 极品少妇xxxx精品少妇| 奇米精品一区二区三区在线观看 | 亚洲国产色一区| 日韩美女久久久| 国产女主播一区| 久久女同互慰一区二区三区| 日韩免费电影一区| 日韩一区二区三区四区五区六区| 欧美日产在线观看| 欧美日韩免费观看一区二区三区| 91国偷自产一区二区三区观看 | 日本免费在线视频不卡一不卡二| 一区二区三区四区在线| 亚洲精品久久7777| 亚洲自拍偷拍网站| 亚洲国产综合在线| 午夜视频在线观看一区| 最近日韩中文字幕| 有码一区二区三区| 一区二区免费视频| 亚洲国产欧美在线| 免费国产亚洲视频| 国产麻豆91精品| 成人av在线网站| 色吊一区二区三区| 欧美人体做爰大胆视频| 欧美一区二区三区男人的天堂| 欧美不卡激情三级在线观看| 亚洲精品一区二区三区蜜桃下载 | 免费成人小视频| 国产一区二区三区美女| 成人精品一区二区三区四区| 99久久精品国产一区| 色婷婷av一区二区三区软件| 欧美日韩情趣电影| 精品久久久三级丝袜| 欧美国产日本韩| 亚洲男人的天堂网| 石原莉奈一区二区三区在线观看| 精品一区二区日韩| 成人app在线| 欧美高清性hdvideosex| 中文字幕日韩精品一区| 国产精品国产三级国产aⅴ入口| 亚洲黄一区二区三区| 亚洲欧美激情在线| 日本成人在线看| 国产精品99久久久久久似苏梦涵| 色综合天天综合网天天看片| 8v天堂国产在线一区二区| 久久久久久久久免费| 亚洲日本va在线观看| 麻豆精品新av中文字幕| 99久久久精品| 精品国产亚洲一区二区三区在线观看| 国产精品三级视频| 日本vs亚洲vs韩国一区三区 | 捆绑调教美女网站视频一区| av亚洲产国偷v产偷v自拍| 欧美日韩国产成人在线免费| 国产欧美精品区一区二区三区| 亚洲18色成人| 成人精品小蝌蚪| 欧美大片国产精品| 亚洲一区二区在线免费看| 国产一区 二区 三区一级| 欧美网站一区二区| 日本一区二区高清| 美腿丝袜亚洲色图| 在线观看91精品国产入口| 国产欧美综合在线观看第十页 | 国产美女在线观看一区| 欧美专区在线观看一区| 精品久久一区二区三区| 亚洲一级二级三级| 播五月开心婷婷综合| 精品国产伦一区二区三区观看体验 | 美女精品一区二区| 欧美亚洲一区三区| 亚洲三级在线免费观看| 国产精品一区二区三区乱码| 欧美一区二区三级| 亚洲国产色一区| 91国偷自产一区二区三区成为亚洲经典 | 国产在线播放一区| 欧美日韩精品三区| 一区二区三区资源| 97久久精品人人做人人爽50路| 久久综合九色综合97_久久久| 日本aⅴ免费视频一区二区三区| 色就色 综合激情| 亚洲另类一区二区| 99久久综合狠狠综合久久| 国产欧美日本一区二区三区| 国产综合一区二区| 在线不卡一区二区| 亚洲h动漫在线| 欧美精品vⅰdeose4hd| 亚洲日本成人在线观看| 精品在线观看视频| 久久亚洲精品国产精品紫薇 | 国产乱码精品一区二区三区忘忧草| 欧美日韩的一区二区| 亚洲国产毛片aaaaa无费看| 色婷婷综合久色| 亚洲人精品午夜| 在线免费不卡视频| 亚洲午夜精品一区二区三区他趣| 日本高清不卡视频| 中文字幕精品综合| 成人白浆超碰人人人人| 国产精品久久看| 91久久精品国产91性色tv | 综合久久久久综合| 色婷婷一区二区三区四区| 亚洲精品乱码久久久久久黑人 | 中文字幕在线不卡一区二区三区| www.欧美日韩国产在线| **网站欧美大片在线观看| 91黄色小视频| 午夜精品久久久久久久久久| 欧美精品1区2区3区| 久久国产福利国产秒拍| 久久久久国产精品免费免费搜索| 成人午夜免费av| 亚洲欧美日韩中文字幕一区二区三区| 91在线免费播放| 日韩主播视频在线| 精品精品欲导航| av亚洲精华国产精华精| 午夜av一区二区| 欧美精品一区二区久久婷婷| 成人av资源在线| 亚洲123区在线观看| 久久综合色鬼综合色| 99精品热视频| 日韩成人免费在线| 国产精品人成在线观看免费| 在线免费观看成人短视频|