91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 44.51MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2024-01-28
  • 語言: 其他
  • 標簽: ffmpeg??

資源簡介

可以從任意采樣率,采樣格式,位數,轉換為其他采樣率采樣格式位數。 核心函數swr_resample。依賴庫為libresample avutil

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?“AudioResample.h“
#include?“stdlib.h“

#ifndef?max
#define?max(ab)????????????(((a)?>?(b))???(a)?:?(b))
#endif??/*?max?*/

#ifndef?min
#define?min(ab)????????????(((a)?#endif??/*?min?*/

CAudioResample::CAudioResample()
:?m_pSwrCtx(NULL)
m_nInputChannels(0)
m_nInputSampleRate(0)
m_nInputBitwidth(0)
m_InputsmpFmt(AV_SAMPLE_FMT_NONE)
m_nOutputChannels(0)
m_nOutputSampleRate(0)
m_nOutputBitwidth(0)
m_OutputsmpFmt(AV_SAMPLE_FMT_NONE)
m_bNeedResample(false)
{
}


CAudioResample::~CAudioResample()
{
}

AVSampleFormat?GetSampleFmtByAudioBitWidth(int?nBitWidth)
{
AVSampleFormat?smpFmt?=?AV_SAMPLE_FMT_NONE;
switch?(nBitWidth)
{
case?8:
smpFmt?=?AV_SAMPLE_FMT_U8;
break;
case?16:
smpFmt?=?AV_SAMPLE_FMT_S16;
break;
case?32:
smpFmt?=?AV_SAMPLE_FMT_S32;?//AV_SAMPLE_FMT_FLT
break;
case?64:
smpFmt?=?AV_SAMPLE_FMT_S64;?//AV_SAMPLE_FMT_DBL;
break;
default:
break;
}
return?smpFmt;
}

//帶切片?
AVSampleFormat?GetSampleFmtPlanarByAudioBitWidth(int?nBitWidth)
{
AVSampleFormat?smpFmt?=?AV_SAMPLE_FMT_NONE;
switch?(nBitWidth)
{
case?1:
smpFmt?=?AV_SAMPLE_FMT_U8P;
break;
case?2:
smpFmt?=?AV_SAMPLE_FMT_S16P;
break;
case?4:
smpFmt?=?AV_SAMPLE_FMT_S32P;?//AV_SAMPLE_FMT_FLTP
break;
case?8:
smpFmt?=?AV_SAMPLE_FMT_S64P;?//AV_SAMPLE_FMT_DBLP;
break;
default:
break;
}
return?smpFmt;
}

int?CAudioResample::AudioResample(char?*pInputAudioBuf?int?nInputAudioSize?int?nInputSampleRate?int?nInputBitwidth?int?nInputChannelNo
??char?*pOutputAudioBuf?int?nOutputMaxBufSize?int?&nOutputBufSize?int?nOutputSampleRate?int?nOutputBitwidth?int?nOutputChannelNo)
{
try{
int?nResult?=?0;
if?(nInputSampleRate?==?nOutputSampleRate?&&?nInputBitwidth?==?nOutputBitwidth?&&?nInputChannelNo?==?nOutputChannelNo)
{
nOutputBufSize?=?min(nInputAudioSize?nOutputMaxBufSize);
memset(pOutputAudioBuf?0?nOutputMaxBufSize);
memcpy(pOutputAudioBuf?pInputAudioBuf?nOutputBufSize);
}
else
{
SwrContext*?pSwrCtx?=?swr_alloc();
if?(pSwrCtx)
{
int64_t?nInLayout?=?av_get_default_channel_layout(nInputChannelNo);
int64_t?nOutLayout?=?av_get_default_channel_layout(nOutputChannelNo);
AVSampleFormat?smpFmtIn?=?GetSampleFmtByAudioBitWidth(nInputBitwidth);
AVSampleFormat?smpFmtOut?=?GetSampleFmtByAudioBitWidth(nOutputBitwidth);

pSwrCtx?=?swr_alloc_set_opts(pSwrCtx?nOutLayout?smpFmtOut
?nOutputSampleRate?nInLayout
?smpFmtIn
?nInputSampleRate?0?NULL);
if?(swr_init(pSwrCtx)?>=?0)
{
int?nInBufIndex?=?0; //輸入AudioData索引
int?nOutBufIndex?=?0; //輸出AudioData索引
nOutputBufSize?=?0; //Reset實際輸出AudioData大小
int?nResampleDataSize?=?0;//Resample后大小
memset(pOutputAudioBuf?0?nOutputMaxBufSize);
const?int?nConvertSample?=?1024; //每次讀取1024個采樣
const?int?nConvertSam

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????376492??2017-05-19?20:30??lib\x64\avutil.lib

?????文件??????18774??2017-05-19?20:30??lib\x64\swresample.lib

?????文件?????374636??2017-05-19?20:19??lib\x86\avutil.lib

?????文件??????18696??2017-05-19?20:19??lib\x86\swresample.lib

?????文件???????4575??2017-05-19?20:19??include\libavutil\attributes.h

?????文件????????170??2017-05-19?20:19??include\libavutil\avconfig.h

?????文件???????9576??2017-05-19?20:19??include\libavutil\avutil.h

?????文件??????10646??2017-05-19?20:19??include\libavutil\buffer.h

?????文件???????9613??2017-05-19?20:19??include\libavutil\channel_layout.h

?????文件??????15776??2017-05-19?20:19??include\libavutil\common.h

?????文件???????8275??2017-05-19?20:19??include\libavutil\dict.h

?????文件???????5468??2017-05-19?20:19??include\libavutil\error.h

?????文件??????23866??2017-05-19?20:19??include\libavutil\frame.h

?????文件???????1726??2017-05-19?20:19??include\libavutil\intfloat.h

?????文件??????11674??2017-05-19?20:19??include\libavutil\log.h

?????文件???????1249??2017-05-19?20:19??include\libavutil\macros.h

?????文件???????7945??2017-05-19?20:19??include\libavutil\mathematics.h

?????文件??????23485??2017-05-19?20:19??include\libavutil\mem.h

?????文件??????32424??2017-05-19?20:19??include\libavutil\pixfmt.h

?????文件???????5844??2017-05-19?20:19??include\libavutil\rational.h

?????文件??????10318??2017-05-19?20:19??include\libavutil\samplefmt.h

?????文件???????4865??2017-05-19?20:19??include\libavutil\version.h

?????文件??????21885??2017-05-19?20:30??include\libswresample\swresample.h

?????文件???????1718??2017-05-19?20:30??include\libswresample\version.h

?????文件??????10964??2017-09-21?15:05??main.cpp

?????文件??????10071??2017-09-21?15:02??AudioResample.cpp

?????文件????????979??2017-09-21?14:37??AudioResample.vcxproj.user

?????文件???????2191??2017-09-14?10:33??AudioResample.h

?????文件???????8611??2017-09-13?16:47??AudioResample.vcxproj

?????文件???????5705??2017-09-12?11:21??Wave.cpp

............此處省略24個文件信息

評論

共有 條評論