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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区自拍| 一区二区三区精品| 一区二区三区在线免费视频| 美日韩一区二区三区| a美女胸又www黄视频久久| 日韩欧美一级二级三级| 亚洲一区中文在线| www.成人网.com| 久久久精品国产免费观看同学| 伊人婷婷欧美激情| 成人av先锋影音| 2020国产精品| 麻豆精品国产传媒mv男同| 欧亚一区二区三区| 亚洲人成精品久久久久久 | 亚洲一区在线视频| 成人免费视频国产在线观看| 精品久久久久久无| 久久精品国产999大香线蕉| 欧美日韩国产综合视频在线观看| 亚洲欧洲www| 成人激情免费视频| 国产精品三级av| 白白色 亚洲乱淫| 中文av一区二区| 岛国av在线一区| 中文字幕中文乱码欧美一区二区| 国产成人在线观看免费网站| 久久精品夜夜夜夜久久| 国产精品一区二区免费不卡| 国产网红主播福利一区二区| 国产麻豆视频一区二区| 日韩午夜在线播放| 国内精品写真在线观看| 国产午夜亚洲精品羞羞网站| 日韩一区二区精品在线观看| 麻豆精品精品国产自在97香蕉| 欧美主播一区二区三区美女| 亚洲精品欧美激情| 一本一道波多野结衣一区二区| 成人免费小视频| 91久久精品一区二区三区| 一区二区成人在线| 欧美一级日韩免费不卡| 精品一区二区三区在线播放视频 | 国产99一区视频免费 | 成人精品电影在线观看| 国产精品伦一区二区三级视频| eeuss国产一区二区三区| 亚洲黄色在线视频| 91精品国产高清一区二区三区蜜臀| 免费不卡在线视频| 中文字幕欧美日韩一区| 一本到高清视频免费精品| 亚洲成人精品一区二区| 精品日韩99亚洲| 成人国产精品视频| 日韩高清在线电影| 久久久国产综合精品女国产盗摄| 99久久精品国产毛片| 日本一道高清亚洲日美韩| 国产网站一区二区| 欧美日韩另类一区| 国产剧情一区二区三区| 亚洲一区二区三区四区在线观看 | 国产成人免费xxxxxxxx| 一区二区三区在线看| 日韩欧美一级特黄在线播放| 99久久精品99国产精品| 青青国产91久久久久久| 亚洲视频免费在线| 久久伊人蜜桃av一区二区| 91黄色激情网站| 国产精品综合视频| 天天综合色天天综合色h| 国产精品区一区二区三| 欧美一区二区三区视频免费播放| caoporn国产一区二区| 久久精品国产一区二区三| 国产精品亲子乱子伦xxxx裸| 日韩欧美亚洲国产另类| 色综合网色综合| 在线观看亚洲专区| 久久99精品国产91久久来源| 一区二区三区中文免费| 亚洲国产岛国毛片在线| 日韩欧美123| 欧美日韩中文精品| 99riav一区二区三区| 国产**成人网毛片九色| 精品一区二区在线观看| 秋霞午夜av一区二区三区| 亚洲一卡二卡三卡四卡无卡久久| 国产精品久久久久久久久久久免费看 | 精品一区二区三区在线观看| 欧美一二三四区在线| 麻豆精品视频在线| 亚洲成人一二三| 中文字幕中文字幕一区二区| 精品国产91亚洲一区二区三区婷婷| 欧美在线你懂的| 色老汉av一区二区三区| aaa欧美大片| 成人黄色国产精品网站大全在线免费观看 | 国产精品美女久久久久aⅴ国产馆| 日韩欧美一区二区久久婷婷| 777色狠狠一区二区三区| 欧美日韩在线播| 欧美日韩国产免费一区二区 | 色综合天天综合网天天狠天天 | 国内精品伊人久久久久av一坑| 婷婷中文字幕一区三区| 亚洲成人黄色小说| 午夜精品久久久久久不卡8050| 亚洲444eee在线观看| 天堂久久一区二区三区| 日韩av一区二区三区四区| 日韩av一区二区三区四区| 日本不卡一二三| 国产在线精品国自产拍免费| 国产另类ts人妖一区二区| 风间由美性色一区二区三区| 成人午夜在线视频| av电影天堂一区二区在线观看| 色综合一区二区| 欧美日韩国产一区| 日韩欧美视频一区| 欧美国产成人精品| 亚洲精品中文在线| 午夜精品久久久久| 韩国精品主播一区二区在线观看 | 欧美乱妇23p| 日韩女优毛片在线| 欧美—级在线免费片| 尤物在线观看一区| 久久黄色级2电影| 成人av网站免费观看| 日本伦理一区二区| 日韩亚洲欧美一区二区三区| 国产婷婷精品av在线| 一区二区免费看| 亚洲欧美偷拍另类a∨色屁股| 久久综合狠狠综合久久激情| 亚洲国产精品ⅴa在线观看| 亚洲视频在线一区观看| 婷婷久久综合九色国产成人| 激情综合网天天干| 一道本成人在线| 日韩亚洲欧美一区二区三区| 亚洲国产精品av| 天天av天天翘天天综合网| 国产精品一区一区| 欧美日韩一区二区在线观看视频| 欧美成人激情免费网| 亚洲欧美福利一区二区| 毛片不卡一区二区| av午夜精品一区二区三区| 欧美成人精品3d动漫h| 国产精品乱人伦中文| 水蜜桃久久夜色精品一区的特点| 国产高清不卡二三区| 欧美日韩精品高清| **欧美大码日韩| 国产精品一区二区三区四区| 欧美日韩精品一区二区三区四区 | 欧美一区二区成人| 中文字幕色av一区二区三区| 久久精品99久久久| 欧美少妇一区二区| 国产精品亲子乱子伦xxxx裸| 麻豆视频一区二区| 欧美日韩在线电影| 国产精品二三区| 激情文学综合网| 欧美日本韩国一区二区三区视频 | 中文字幕一区二区三区四区不卡| 日韩不卡一二三区| 欧洲精品中文字幕| 成人免费在线播放视频| 国产精品18久久久久久久久| 日韩欧美一卡二卡| 日韩国产欧美在线视频| 欧美视频一区二| 一区二区三区在线视频观看| 成人91在线观看| 国产精品视频线看| 国产999精品久久久久久绿帽| 日韩精品在线看片z| 蜜臀av性久久久久蜜臀aⅴ四虎| 综合激情成人伊人| 欧美亚洲综合一区| 亚洲人成网站在线| 91一区二区在线观看| 亚洲国产激情av| 成人动漫一区二区在线| 国产精品美女久久久久久| 成人免费电影视频| **网站欧美大片在线观看| 91在线精品秘密一区二区| 国产精品国产三级国产三级人妇 |