⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stereo.c

📁 网络MPEG4IP流媒体开发源代码
💻 C
字号:
/************************* MPEG-2 NBC Audio Decoder ************************** *                                                                           *"This software module was originally developed byAT&T, Dolby Laboratories, Fraunhofer Gesellschaft IIS in the course ofdevelopment of the MPEG-2 NBC/MPEG-4 Audio standard ISO/IEC 13818-7,14496-1,2 and 3. This software module is an implementation of a part of one or moreMPEG-2 NBC/MPEG-4 Audio tools as specified by the MPEG-2 NBC/MPEG-4Audio standard. ISO/IEC  gives users of the MPEG-2 NBC/MPEG-4 Audiostandards free license to this software module or modifications thereof for use inhardware or software products claiming conformance to the MPEG-2 NBC/MPEG-4Audio  standards. Those intending to use this software module in hardware orsoftware products are advised that this use may infringe existing patents.The original developer of this software module and his/her company, the subsequenteditors and their companies, and ISO/IEC have no liability for use of this softwaremodule or modifications thereof in an implementation. Copyright is not released fornon MPEG-2 NBC/MPEG-4 Audio conforming products.The original developerretains full right to use the code for his/her  own purpose, assign or donate thecode to a third party and to inhibit third party from using the code for nonMPEG-2 NBC/MPEG-4 Audio conforming products. This copyright notice mustbe included in all copies or derivative works."Copyright(c)1996. *                                                                           * ****************************************************************************//* * $Id$ */#include "all.h"void synt(Info *info, byte *group, byte *mask, Float *right, Float *left){    Float vrr, vrl, *r, *l;    int *band;    int i, n, nn, b, bb, nband;    /*mask is grouped */    bb = 0;    for(b = 0; b < info->nsbk; ){        nband = info->sfb_per_sbk[b];        band = info->sbk_sfb_top[b];        b = *group++;       /*b = index of last sbk in group */        for(; bb < b; bb++){    /* bb = sbk index */            n = 0;            for(i = 0; i < nband; i++){                nn = band[i];   /* band is offset table, nn is last coef in band */                if(mask[i]){                    r = right + n;                    l = left + n;                    for(; n < nn; n++){ /* n is coef index */                        vrr = *r;                        vrl = *l;                        *l = vrr + vrl;                        *r = vrl - vrr;                        r++;                        l++;                    }                }                n = nn;            }            right += info->bins_per_sbk[bb];            left += info->bins_per_sbk[bb];        }        mask += info->sfb_per_sbk[bb-1];    }}/* Map mask to intensity stereo signalling */void map_mask(Info *info, byte *group, byte *mask, byte *cb_map){    int sfb, b, nband;    /* mask goes by group */    for (b = 0; b < info->nsbk; ) {        nband = info->sfb_per_sbk[b];        for (sfb = 0; sfb<nband; sfb++){            if (mask[sfb]) {                if (cb_map[sfb] == INTENSITY_HCB)  {                    cb_map[sfb] = INTENSITY_HCB2;                    mask[sfb] = 0;                } else if (cb_map[sfb] == INTENSITY_HCB2)  {                    cb_map[sfb] = INTENSITY_HCB;                    mask[sfb] = 0;                } else if (cb_map[sfb] == NOISE_HCB)  {                    cb_map[sfb] = NOISE_HCB + 100;                    mask[sfb] = 0;                }            }        }        mask += info->sfb_per_sbk[b];        cb_map += info->sfb_per_sbk[b];        b = *group++;       /* b = index of last sbk in group */    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -