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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? codec_decoder.asm

?? BLUETOOTH Stereo Headset Source Code,含CVC(噪音消除,回聲抵消),可用于開(kāi)發(fā)藍(lán)牙立體聲耳機(jī),藍(lán)牙車(chē)載,經(jīng)過(guò)測(cè)試.
?? ASM
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// *****************************************************************************
// Copyright (C) Cambridge Silicon Radio plc 2003-2006        http://www.csr.com
// Part of BlueLab 3.6.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;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频在线一区二区三区 | 麻豆极品一区二区三区| 99久久精品情趣| 久久精品综合网| 国产一区二区三区免费| 精品理论电影在线| 麻豆精品视频在线| 日韩一区二区视频在线观看| 日韩成人精品在线观看| 欧美一区二区大片| 毛片一区二区三区| 日韩亚洲欧美高清| 久久99精品一区二区三区三区| 91精品国产乱码久久蜜臀| 日韩经典中文字幕一区| 56国语精品自产拍在线观看| 免费在线观看视频一区| 欧美不卡一区二区三区| 精品一区二区成人精品| 久久免费午夜影院| 国产成人亚洲综合色影视 | 91精品国产综合久久香蕉的特点 | 欧美精品自拍偷拍动漫精品| 天天影视涩香欲综合网| 91精品国产aⅴ一区二区| 日本不卡1234视频| 久久久久久久性| 成人激情文学综合网| 亚洲人成小说网站色在线| 色综合久久88色综合天天免费| 依依成人精品视频| 欧美老年两性高潮| 久久9热精品视频| 国产亚洲一区二区三区在线观看 | 久久久国际精品| 成人av网址在线| 亚洲黄色av一区| 91精品综合久久久久久| 国产精品一区二区不卡| 亚洲视频一区二区在线| 欧美日韩免费电影| 精品一区二区三区不卡| 国产精品二区一区二区aⅴ污介绍| 色综合久久天天| 日本网站在线观看一区二区三区 | 青青草国产成人99久久| www日韩大片| 99精品久久只有精品| 性欧美疯狂xxxxbbbb| 久久综合色之久久综合| 91一区二区在线| 日本 国产 欧美色综合| 国产日韩欧美不卡| 欧美系列一区二区| 国产精品资源在线| 一区二区高清在线| 精品久久久久久久人人人人传媒 | 国产成人午夜视频| 一区二区三区四区av| 日韩视频在线永久播放| 成人福利视频在线| 日韩电影一区二区三区| 中文欧美字幕免费| 欧美美女一区二区三区| 国产成人一区二区精品非洲| 亚洲成人精品一区| 国产亚洲精品精华液| 欧美调教femdomvk| 国产成人精品亚洲日本在线桃色| 亚洲午夜一区二区| 国产亚洲欧美激情| 欧美精品久久久久久久多人混战| 国产精品影音先锋| 午夜精品影院在线观看| 欧美激情一区二区| 欧美人狂配大交3d怪物一区 | 精品一区二区国语对白| 亚洲一级在线观看| 国产精品麻豆视频| 日韩三级视频中文字幕| 欧美中文字幕久久| 成人开心网精品视频| 欧美a级一区二区| 一区二区三区在线看| 国产亚洲一区二区在线观看| 欧美精品久久久久久久多人混战| caoporen国产精品视频| 韩国中文字幕2020精品| 午夜精品在线视频一区| 亚洲欧洲中文日韩久久av乱码| 精品国产三级电影在线观看| 欧美日韩一区高清| eeuss国产一区二区三区| 国产精品自拍一区| 毛片av中文字幕一区二区| 亚洲自拍偷拍综合| 1024成人网色www| 久久精品免费在线观看| 欧美一区2区视频在线观看| 日本高清不卡一区| 成a人片国产精品| 国产一区二区三区日韩| 日本aⅴ免费视频一区二区三区| 亚洲一区二区三区美女| 最好看的中文字幕久久| 欧美极品少妇xxxxⅹ高跟鞋| 日韩欧美的一区| 欧美精品乱码久久久久久按摩| 色综合久久六月婷婷中文字幕| 成人黄动漫网站免费app| 国产美女精品在线| 激情文学综合丁香| 麻豆国产精品777777在线| 午夜欧美视频在线观看| 亚洲国产精品一区二区www| 亚洲视频在线一区| 综合久久久久综合| 国产精品成人一区二区三区夜夜夜| 久久影院午夜论| 精品国产露脸精彩对白| 日韩精品中文字幕在线一区| 欧美一区二区三区四区视频| 欧美日韩电影一区| 欧美日韩国产a| 欧美日韩三级在线| 欧美日韩亚洲高清一区二区| 欧美羞羞免费网站| 欧美视频一区二区| 欧美日韩日日摸| 欧美日韩国产高清一区| 69成人精品免费视频| 日韩一区二区影院| 日韩精品一区二区三区swag | 国产精品乱码一区二三区小蝌蚪| 久久久不卡网国产精品二区| 久久婷婷国产综合精品青草| 26uuu国产电影一区二区| 久久精品视频一区二区三区| 国产日韩欧美不卡| 中文字幕一区二区三区精华液| 国产精品电影一区二区| 亚洲精品视频免费看| 亚洲一区中文日韩| 亚洲h在线观看| 日本aⅴ精品一区二区三区 | 91黄视频在线观看| 欧美三级日本三级少妇99| 欧美日韩精品一区二区三区蜜桃| 欧美日韩高清在线播放| 精品三级在线看| 国产欧美一区二区精品秋霞影院 | 国产精品久久久久久亚洲伦| 一区在线观看视频| 亚洲一区二区三区激情| 秋霞午夜av一区二区三区| 国产一区二区三区美女| 日韩一级免费一区| 欧美一三区三区四区免费在线看| 日韩欧美国产一区在线观看| 久久久亚洲午夜电影| 亚洲欧洲日韩综合一区二区| 一二三四区精品视频| 日韩国产欧美在线视频| 国产福利一区二区三区| 97久久精品人人澡人人爽| 欧美中文字幕不卡| 精品久久久久久综合日本欧美| 中文字幕免费在线观看视频一区| 亚洲欧美另类久久久精品2019| 一区二区三区高清| 日韩国产精品久久| 国产成人免费视频| 色婷婷亚洲精品| 日韩一级完整毛片| 中文字幕一区二区不卡| 性做久久久久久| 国产精品一品二品| 在线一区二区三区| 日韩精品中文字幕在线不卡尤物| 国产精品久久久久久久久免费桃花 | 亚洲欧美一区二区不卡| 视频一区二区中文字幕| 国产一区 二区| 91国偷自产一区二区使用方法| 精品国产免费视频| 亚洲色图一区二区| 美女精品一区二区| 91丨porny丨国产| 日韩精品一区二区在线| 亚洲天堂2016| 久久精品国产精品亚洲综合| 色伊人久久综合中文字幕| 日韩欧美国产一区在线观看| 亚洲色大成网站www久久九九| 秋霞午夜鲁丝一区二区老狼| 97成人超碰视| 精品播放一区二区| 亚洲国产综合色| 国产成人在线看| 91精品国产黑色紧身裤美女|