您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CODEC_THROW函数代码示例

51自学网 2021-06-01 20:03:27
  C++
这篇教程C++ CODEC_THROW函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中CODEC_THROW函数的典型用法代码示例。如果您正苦于以下问题:C++ CODEC_THROW函数的具体用法?C++ CODEC_THROW怎么用?C++ CODEC_THROW使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了CODEC_THROW函数的21个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: CODEC_THROW

void ACFLACCodec::SetMagicCookie(const void* inMagicCookieData, UInt32 inMagicCookieDataByteSize){	if(mIsInitialized)	{		CODEC_THROW(kAudioCodecStateError);	}	if(inMagicCookieDataByteSize > 256) // the largest cookie we can store	{		CODEC_THROW(kAudioCodecBadPropertySizeError);	}	else // store the cookie	{		memcpy (mMagicCookie, (const void *)(inMagicCookieData), inMagicCookieDataByteSize);		mMagicCookieLength = inMagicCookieDataByteSize;		mCookieSet = 1;	}		ParseMagicCookie(inMagicCookieData, inMagicCookieDataByteSize, &mStreamInfo);		if (inMagicCookieDataByteSize > 0)	{		mCookieDefined = true;	}	else	{		mCookieDefined = false;	}}
开发者ID:fruitsamples,项目名称:AudioCodecs,代码行数:29,


示例2: DebugMessage

void	ACAppleIMA4Encoder::SetCurrentInputFormat(const AudioStreamBasicDescription& inInputFormat){	if(!mIsInitialized)	{		//	check to make sure the input format is legal		if(	(inInputFormat.mFormatID != kAudioFormatLinearPCM) ||			(inInputFormat.mFormatFlags != (kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked)) ||			(inInputFormat.mBitsPerChannel != 16))		{	#if VERBOSE			DebugMessage("ACAppleIMA4Encoder::SetCurrentInputFormat: only support 16 bit native endian signed integer for input");	#endif			CODEC_THROW(kAudioCodecUnsupportedFormatError);		}				// Do some basic sanity checking		if(inInputFormat.mSampleRate < 0.0)		{	#if VERBOSE			DebugMessage("ACAppleIMA4Encoder::SetCurrentInputFormat: input sample rates may not be negative");	#endif			CODEC_THROW(kAudioCodecUnsupportedFormatError);		}				if(inInputFormat.mChannelsPerFrame > kMaxIMA4Channels)		{	#if VERBOSE			DebugMessage("ACAppleIMA4Encoder::SetCurrentInputFormat: only supports mono or stereo");	#endif			CODEC_THROW(kAudioCodecUnsupportedFormatError);		}				//	tell our base class about the new format		ACAppleIMA4Codec::SetCurrentInputFormat(inInputFormat);		// The encoder does no sample rate conversion nor channel manipulation		if (inInputFormat.mChannelsPerFrame == 0)		{			mInputFormat.mChannelsPerFrame = mOutputFormat.mChannelsPerFrame;		}		else		{			mOutputFormat.mChannelsPerFrame = mInputFormat.mChannelsPerFrame;		}		if (inInputFormat.mSampleRate == 0.0)		{			mInputFormat.mSampleRate = mOutputFormat.mSampleRate;		}		else		{			mOutputFormat.mSampleRate = mInputFormat.mSampleRate;		}		// Fix derived values		mInputFormat.mBytesPerFrame = mInputFormat.mBytesPerPacket = (mInputFormat.mBitsPerChannel >> 3) * mInputFormat.mChannelsPerFrame;		mInputFormat.mFramesPerPacket = 1;				// Zero out everything that has to be zero		mInputFormat.mReserved = 0;	}	else	{
开发者ID:AdamDiment,项目名称:CocoaSampleCode,代码行数:60,


示例3: switch

void ACFLACCodec::SetProperty(AudioCodecPropertyID inPropertyID, UInt32 inPropertyDataSize, const void* inPropertyData){	switch(inPropertyID)	{        case kAudioCodecPropertyCurrentInputSampleRate:			if(mIsInitialized)			{				CODEC_THROW(kAudioCodecIllegalOperationError);			}			if(inPropertyDataSize == sizeof(Float64))			{				mInputFormat.mSampleRate = *((Float64*)inPropertyData);			}			else			{				CODEC_THROW(kAudioCodecBadPropertySizeError);			}			break;		case kAudioCodecPropertyFormatInfo:		case kAudioCodecPropertyHasVariablePacketByteSizes:		case kAudioCodecPropertyCurrentOutputSampleRate:		case kAudioCodecPropertyAvailableInputChannelLayouts:		case kAudioCodecPropertyAvailableOutputChannelLayouts:		case kAudioCodecPropertyPacketFrameSize:		case kAudioCodecPropertyMaximumPacketByteSize:			CODEC_THROW(kAudioCodecIllegalOperationError);			break;		default:			ACBaseCodec::SetProperty(inPropertyID, inPropertyDataSize, inPropertyData);			break;            	}}
开发者ID:fruitsamples,项目名称:AudioCodecs,代码行数:33,


示例4: GetUsedInputBufferByteSize

void	ACSimpleCodec::AppendInputData(const void* inInputData, UInt32& ioInputDataByteSize, UInt32& ioNumberPackets, const AudioStreamPacketDescription* inPacketDescription){	//	this buffer handling code doesn't care about such things as the packet descriptions	if(!mIsInitialized) CODEC_THROW(kAudioCodecStateError);		//	this is a ring buffer we're dealing with, so we need to set up a few things	UInt32 theUsedByteSize = GetUsedInputBufferByteSize();	UInt32 theAvailableByteSize = GetInputBufferByteSize() - theUsedByteSize;	UInt32 theMaxAvailableInputBytes = ioInputDataByteSize; // we can't consume more than we get	const Byte* theInputData = static_cast<const Byte*>(inInputData);		// >>jamesmcc: added this because ioNumberPackets was not being updated if less was taken than given.	// THIS ASSUMES CBR!	UInt32 bytesPerPacketOfInput = mInputFormat.mBytesPerPacket;	UInt32 theAvailablePacketSize = theAvailableByteSize / bytesPerPacketOfInput;		UInt32 minPacketSize = ioNumberPackets < theAvailablePacketSize ? ioNumberPackets : theAvailablePacketSize;	UInt32 minByteSize = minPacketSize * bytesPerPacketOfInput;		//	we can copy only as much data as there is or up to how much space is availiable	ioNumberPackets = minPacketSize;	ioInputDataByteSize = minByteSize;		// ioInputDataByteSize had better be <= to theMaxAvailableInputBytes or we're screwed	if (ioInputDataByteSize > theMaxAvailableInputBytes)	{		CODEC_THROW(kAudioCodecStateError);	}	// <<jamesmcc 		//	now we have to copy the data taking into account the wrap around and where the start is	if(mInputBufferEnd + ioInputDataByteSize < mInputBufferByteSize)	{		//	no wrap around here		memcpy(mInputBuffer + mInputBufferEnd, theInputData, ioInputDataByteSize);				//	adjust the end point		mInputBufferEnd += ioInputDataByteSize;	}	else	{		//	the copy will wrap				//	copy the first part		UInt32 theBeforeWrapByteSize = mInputBufferByteSize - mInputBufferEnd;		memcpy(mInputBuffer + mInputBufferEnd, theInputData, theBeforeWrapByteSize);				//	and the rest		UInt32 theAfterWrapByteSize = ioInputDataByteSize - theBeforeWrapByteSize;		memcpy(mInputBuffer, theInputData + theBeforeWrapByteSize, theAfterWrapByteSize);				//	adjust the end point		mInputBufferEnd = theAfterWrapByteSize;	}	}
开发者ID:0xJoker,项目名称:apple-ios-samples,代码行数:58,


示例5: dbg_printf

void CAOggFLACDecoder::SetCurrentInputFormat(const AudioStreamBasicDescription& inInputFormat){    if (!mIsInitialized) {        if (inInputFormat.mFormatID != kAudioFormatXiphOggFramedFLAC) {            dbg_printf("CAOggFLACDecoder::SetFormats: only support Xiph FLAC (Ogg-framed) for input/n");            CODEC_THROW(kAudioCodecUnsupportedFormatError);        }        XCACodec::SetCurrentInputFormat(inInputFormat);    } else {        CODEC_THROW(kAudioCodecStateError);    }}
开发者ID:mecke,项目名称:xiph-qt,代码行数:12,


示例6: switch

void	ACShepA52Codec::GetProperty(AudioCodecPropertyID inPropertyID, UInt32& ioPropertyDataSize, void* outPropertyData) {    switch(inPropertyID) {    case kAudioCodecPropertyManufacturerCFString:    {        if (ioPropertyDataSize != sizeof(CFStringRef)) {            CODEC_THROW(kAudioCodecBadPropertySizeError);        }        CFStringRef name = CFCopyLocalizedStringFromTableInBundle(CFSTR("Shepmaster Productions"), CFSTR("CodecNames"), GetCodecBundle(), CFSTR(""));        *(CFStringRef*)outPropertyData = name;        break;    }    case kAudioCodecPropertyMaximumPacketByteSize:        if(ioPropertyDataSize == sizeof(UInt32)) {            *reinterpret_cast<UInt32*>(outPropertyData) = 3840; //Stolen from liba52 docs        } else {            CODEC_THROW(kAudioCodecBadPropertySizeError);        }        break;    case kAudioCodecPropertyRequiresPacketDescription:        if(ioPropertyDataSize == sizeof(UInt32)) {            *reinterpret_cast<UInt32*>(outPropertyData) = 0;        } else {            CODEC_THROW(kAudioCodecBadPropertySizeError);        }        break;    case kAudioCodecPropertyHasVariablePacketByteSizes:        if(ioPropertyDataSize == sizeof(UInt32)) {            *reinterpret_cast<UInt32*>(outPropertyData) = 1;        } else {            CODEC_THROW(kAudioCodecBadPropertySizeError);        }        break;    case kAudioCodecPropertyPacketFrameSize:        if(ioPropertyDataSize == sizeof(UInt32)) {            *reinterpret_cast<UInt32*>(outPropertyData) = 6 * 256; // A frame has 6 blocks of 256 samples        } else {            CODEC_THROW(kAudioCodecBadPropertySizeError);        }        break;    default:        ACSimpleCodec::GetProperty(inPropertyID, ioPropertyDataSize, outPropertyData);    }}
开发者ID:mackyle,项目名称:a52codec,代码行数:53,


示例7: dbg_printf

void CASpeexDecoder::SetMagicCookie(const void* inMagicCookieData, UInt32 inMagicCookieDataByteSize){    dbg_printf(" >> [%08lx] CASpeexDecoder :: SetMagicCookie()/n", (UInt32) this);    if (mIsInitialized)        CODEC_THROW(kAudioCodecStateError);    SetCookie(inMagicCookieData, inMagicCookieDataByteSize);    InitializeCompressionSettings();    if (!mCompressionInitialized)        CODEC_THROW(kAudioCodecUnsupportedFormatError);    dbg_printf("<.. [%08lx] CASpeexDecoder :: SetMagicCookie()/n", (UInt32) this);}
开发者ID:JanX2,项目名称:XiphQT,代码行数:14,


示例8: GetInputBufferContiguousByteSize

void	ACSimpleCodec::ConsumeInputData(UInt32 inConsumedByteSize){	//	this is a convenience routine to make maintaining the ring buffer state easy	UInt32 theContiguousRange = GetInputBufferContiguousByteSize();		if(inConsumedByteSize > GetUsedInputBufferByteSize()) CODEC_THROW(kAudioCodecUnspecifiedError);		if(inConsumedByteSize <= theContiguousRange)	{		//	the region to consume doesn't wrap				//	figure out how much to consume		inConsumedByteSize = (theContiguousRange < inConsumedByteSize) ? theContiguousRange : inConsumedByteSize;				//	clear the consumed bits		memset(mInputBuffer + mInputBufferStart, 0, inConsumedByteSize);				//	adjust the start		mInputBufferStart += inConsumedByteSize;	}	else	{		//	the region to consume will wrap				//	clear the bits to the end of the buffer		memset(mInputBuffer + mInputBufferStart, 0, theContiguousRange);				//	now clear the bits left from the start		memset(mInputBuffer, 0, inConsumedByteSize - theContiguousRange);				//	adjust the start		mInputBufferStart = inConsumedByteSize - theContiguousRange;	}}
开发者ID:0xJoker,项目名称:apple-ios-samples,代码行数:34,


示例9: CODEC_THROW

void	ACBaseCodec::SetMagicCookie(const void* outMagicCookieData, UInt32 inMagicCookieDataByteSize){	if(mIsInitialized)	{		CODEC_THROW(kAudioCodecStateError);	}}
开发者ID:abscura,项目名称:audiounitjs,代码行数:7,


示例10: SetCurrentInputFormat

void	ACShepA52Codec::Initialize(const AudioStreamBasicDescription* inInputFormat,                                   const AudioStreamBasicDescription* inOutputFormat,                                   const void* inMagicCookie, UInt32 inMagicCookieByteSize) {    //	use the given arguments, if necessary    if(inInputFormat != NULL)    {        SetCurrentInputFormat(*inInputFormat);    }    if(inOutputFormat != NULL)    {        SetCurrentOutputFormat(*inOutputFormat);    }    //	make sure the sample rate and number of channels match between the input format and the output format    if( (mInputFormat.mSampleRate != mOutputFormat.mSampleRate))    {        CODEC_THROW(kAudioCodecUnsupportedFormatError);    }    ACSimpleCodec::Initialize(inInputFormat, inOutputFormat, inMagicCookie, inMagicCookieByteSize);}
开发者ID:mackyle,项目名称:a52codec,代码行数:25,


示例11: SetCurrentInputFormat

void	ACFLACCodec::Initialize(const AudioStreamBasicDescription* inInputFormat, const AudioStreamBasicDescription* inOutputFormat, const void* inMagicCookie, UInt32 inMagicCookieByteSize){	//	use the given arguments, if necessary	if(inInputFormat != NULL)	{		SetCurrentInputFormat(*inInputFormat);	}	if(inOutputFormat != NULL)	{		SetCurrentOutputFormat(*inOutputFormat);	}		//	make sure the sample rate and number of channels match between the input format and the output format	if( (mInputFormat.mSampleRate != mOutputFormat.mSampleRate) ||		(mInputFormat.mChannelsPerFrame != mOutputFormat.mChannelsPerFrame))	{#if VERBOSE			printf("The channels and sample rates don't match, mInputFormat.mSampleRate == %f, mOutputFormat.mSampleRate == %f, mInputFormat.mChannelsPerFrame == %lu, mOutputFormat.mChannelsPerFrame == %lu/n", 				mInputFormat.mSampleRate, mOutputFormat.mSampleRate, mInputFormat.mChannelsPerFrame, mOutputFormat.mChannelsPerFrame);#endif		CODEC_THROW(kAudioCodecUnsupportedFormatError);	}		if(inMagicCookie != NULL)	{		SetMagicCookie(inMagicCookie, inMagicCookieByteSize);	}	ACBaseCodec::Initialize(inInputFormat, inOutputFormat, inMagicCookie, inMagicCookieByteSize);}
开发者ID:fruitsamples,项目名称:AudioCodecs,代码行数:30,


示例12: ReallocateInputBuffer

void	ACSimpleCodec::Initialize(const AudioStreamBasicDescription* inInputFormat, const AudioStreamBasicDescription* inOutputFormat, const void* inMagicCookie, UInt32 inMagicCookieByteSize){	ReallocateInputBuffer(mInputBufferByteSize - kBufferPad);	// By definition CBR has this greater than 0. We must avoid a div by 0 error in AppendInputData()	// Note this will cause us to fail initialization which is intended	if (mInputFormat.mBytesPerPacket == 0)	{		CODEC_THROW(kAudioCodecUnsupportedFormatError);	}			ACBaseCodec::Initialize(inInputFormat, inOutputFormat, inMagicCookie, inMagicCookieByteSize);}
开发者ID:0xJoker,项目名称:apple-ios-samples,代码行数:13,


示例13: CODEC_THROW

void CAOggFLACDecoder::InPacket(const void* inInputData, const AudioStreamPacketDescription* inPacketDescription){    if (!mCompressionInitialized)        CODEC_THROW(kAudioCodecUnspecifiedError);    ogg_page op;    if (!WrapOggPage(&op, inInputData, inPacketDescription->mDataByteSize + inPacketDescription->mStartOffset, inPacketDescription->mStartOffset))        CODEC_THROW(kAudioCodecUnspecifiedError);    dbg_printf("[ oFD]   : [%08lx] InPacket() [%4.4s] %ld/n", (UInt32) this, (char *) (static_cast<const Byte*> (inInputData) + inPacketDescription->mStartOffset),               ogg_page_pageno(&op));    ogg_packet opk;    SInt32 packet_count = 0;    int oret;    AudioStreamPacketDescription flac_packet_desc = {0, 0, 0};    UInt32 page_packets = ogg_page_packets(&op);    ogg_stream_pagein(&mO_st, &op);    while ((oret = ogg_stream_packetout(&mO_st, &opk)) != 0) {        if (oret < 0) {            page_packets--;            continue;        }        packet_count++;        flac_packet_desc.mDataByteSize = opk.bytes;        CAFLACDecoder::InPacket(opk.packet, &flac_packet_desc);    }    if (packet_count > 0)        complete_pages += 1;    mFramesBufferedList.push_back(OggPagePacket(packet_count, inPacketDescription->mVariableFramesInPacket));}
开发者ID:mecke,项目名称:xiph-qt,代码行数:38,


示例14: switch

void ACAppleIMA4Encoder::SetProperty(AudioCodecPropertyID inPropertyID, UInt32 inPropertyDataSize, const void* inPropertyData){	switch(inPropertyID)	{		case kAudioCodecPropertyAvailableInputSampleRates:		case kAudioCodecPropertyAvailableOutputSampleRates:		case kAudioCodecPropertyZeroFramesPadded:		case kAudioCodecPropertyPrimeInfo:			CODEC_THROW(kAudioCodecIllegalOperationError);			break;		default:			ACAppleIMA4Codec::SetProperty(inPropertyID, inPropertyDataSize, inPropertyData);			break;            	}}
开发者ID:AdamDiment,项目名称:CocoaSampleCode,代码行数:15,


示例15: switch

void	ACSimpleCodec::SetProperty(AudioCodecPropertyID inPropertyID, UInt32 inPropertyDataSize, const void* inPropertyData){	switch(inPropertyID)	{		case kAudioCodecPropertyInputBufferSize:			if(inPropertyDataSize == sizeof(UInt32))			{				ReallocateInputBuffer(*reinterpret_cast<const UInt32*>(inPropertyData));			}			else			{				CODEC_THROW(kAudioCodecBadPropertySizeError);			}			break;		default:            ACBaseCodec::SetProperty(inPropertyID, inPropertyDataSize, inPropertyData);            break;                }}
开发者ID:0xJoker,项目名称:apple-ios-samples,代码行数:19,


示例16: GetUsedInputBufferByteSize

void	ACSimpleCodec::AppendInputBuffer(const void* inInputData, UInt32 inOffset, UInt32& ioInputDataByteSize){	//	this buffer handling code doesn't care about such things as the packet descriptions	if(!mIsInitialized) CODEC_THROW(kAudioCodecStateError);		//	this is a ring buffer we're dealing with, so we need to set up a few things	UInt32 theUsedByteSize = GetUsedInputBufferByteSize();	UInt32 theAvailableByteSize = GetInputBufferByteSize() - theUsedByteSize;		const Byte* theInputData = static_cast<const Byte*>(inInputData) + inOffset;		if(ioInputDataByteSize > theAvailableByteSize) {		ioInputDataByteSize = theAvailableByteSize;	}		//	now we have to copy the data taking into account the wrap around and where the start is	if(mInputBufferEnd + ioInputDataByteSize < mInputBufferByteSize)	{		//	no wrap around here		memcpy(mInputBuffer + mInputBufferEnd, theInputData, ioInputDataByteSize);				//	adjust the end point		mInputBufferEnd += ioInputDataByteSize;	}	else	{		//	the copy will wrap				//	copy the first part		UInt32 theBeforeWrapByteSize = mInputBufferByteSize - mInputBufferEnd;		memcpy(mInputBuffer + mInputBufferEnd, theInputData, theBeforeWrapByteSize);				//	and the rest		UInt32 theAfterWrapByteSize = ioInputDataByteSize - theBeforeWrapByteSize;		memcpy(mInputBuffer, theInputData + theBeforeWrapByteSize, theAfterWrapByteSize);				//	adjust the end point		mInputBufferEnd = theAfterWrapByteSize;	}}
开发者ID:MaddTheSane,项目名称:a52codec,代码行数:40,


示例17: GetBytes

Byte* ACSimpleCodec::GetBytes(UInt32& ioNumberBytes) const{	// if a client's algorithm has to have contiguous data and mInputBuffer wraps, then someone has to make a copy.	// I can do it more efficiently than the client. 		if(!mIsInitialized) CODEC_THROW(kAudioCodecStateError);	UInt32 theUsedByteSize = GetUsedInputBufferByteSize();	//UInt32 theAvailableByteSize = GetInputBufferByteSize() - theUsedByteSize;		if (ioNumberBytes > theUsedByteSize) ioNumberBytes = theUsedByteSize;			SInt32 leftOver = mInputBufferStart + ioNumberBytes - mInputBufferByteSize;		if(leftOver > 0)	{		// need to copy beginning of buffer to the end. 		// We cleverly over allocated our buffer space to make this possible.		memmove(mInputBuffer + mInputBufferByteSize, mInputBuffer, leftOver);	}		return GetInputBufferStart();}
开发者ID:0xJoker,项目名称:apple-ios-samples,代码行数:23,


示例18: switch

void	ACBaseCodec::GetPropertyInfo(AudioCodecPropertyID inPropertyID, UInt32& outPropertyDataSize, Boolean& outWritable){	switch(inPropertyID)	{		case kAudioCodecPropertyNameCFString:			outPropertyDataSize = SizeOf32(CFStringRef);			outWritable = false;			break;					case kAudioCodecPropertyManufacturerCFString:			outPropertyDataSize = SizeOf32(CFStringRef);			outWritable = false;			break;					case kAudioCodecPropertyFormatCFString:			outPropertyDataSize = SizeOf32(CFStringRef);			outWritable = false;			break;		case kAudioCodecPropertyRequiresPacketDescription:			outPropertyDataSize = SizeOf32(UInt32);			outWritable = false;			break;					case kAudioCodecPropertyMinimumNumberInputPackets :			outPropertyDataSize = SizeOf32(UInt32);			outWritable = false;			break;					case kAudioCodecPropertyMinimumNumberOutputPackets :			outPropertyDataSize = SizeOf32(UInt32);			outWritable = false;			break;		case kAudioCodecPropertyCurrentInputFormat:			outPropertyDataSize = SizeOf32(AudioStreamBasicDescription);			outWritable = true;			break;					case kAudioCodecPropertySupportedInputFormats:		case kAudioCodecPropertyInputFormatsForOutputFormat:			outPropertyDataSize = GetNumberSupportedInputFormats() * SizeOf32(AudioStreamBasicDescription);			outWritable = false;			break;					case kAudioCodecPropertyCurrentOutputFormat:			outPropertyDataSize = SizeOf32(AudioStreamBasicDescription);			outWritable = true;			break;					case kAudioCodecPropertySupportedOutputFormats:		case kAudioCodecPropertyOutputFormatsForInputFormat:			outPropertyDataSize = GetNumberSupportedOutputFormats() * SizeOf32(AudioStreamBasicDescription);			outWritable = false;			break;					case kAudioCodecPropertyMagicCookie:			outPropertyDataSize = GetMagicCookieByteSize();			outWritable = true;			break;					case kAudioCodecPropertyInputBufferSize:			outPropertyDataSize = SizeOf32(UInt32);			outWritable = false;			break;					case kAudioCodecPropertyUsedInputBufferSize:			outPropertyDataSize = SizeOf32(UInt32);			outWritable = false;			break;				case kAudioCodecPropertyIsInitialized:			outPropertyDataSize = SizeOf32(UInt32);			outWritable = false;			break;		case kAudioCodecPropertyAvailableNumberChannels:			outPropertyDataSize = SizeOf32(UInt32) * 2; // Mono, stereo			outWritable = false;			break;			 		case kAudioCodecPropertyPrimeMethod:			outPropertyDataSize = SizeOf32(UInt32);			outWritable = false;			break; 		case kAudioCodecPropertyPrimeInfo:			outPropertyDataSize = SizeOf32(AudioCodecPrimeInfo);			outWritable = false;			break; 		case kAudioCodecPropertyDoesSampleRateConversion:			outPropertyDataSize = SizeOf32(UInt32);			outWritable = false;			break;		default:			CODEC_THROW(kAudioCodecUnknownPropertyError);			break;				};//.........这里部分代码省略.........
开发者ID:abscura,项目名称:audiounitjs,代码行数:101,


示例19: memset

void CASpeexDecoder::InitializeCompressionSettings(){    if (mCookie == NULL)        return;    if (mCompressionInitialized) {        memset(&mSpeexHeader, 0, sizeof(mSpeexHeader));        mSpeexStereoState.balance = 1.0;        mSpeexStereoState.e_ratio = 0.5;        mSpeexStereoState.smooth_left = 1.0;        mSpeexStereoState.smooth_right = 1.0;        if (mSpeexDecoderState != NULL) {            speex_decoder_destroy(mSpeexDecoderState);            mSpeexDecoderState = NULL;        }    }    mCompressionInitialized = false;    OggSerialNoAtom *atom = reinterpret_cast<OggSerialNoAtom*> (mCookie);    Byte *ptrheader = mCookie + EndianU32_BtoN(atom->size);    CookieAtomHeader *aheader = reinterpret_cast<CookieAtomHeader*> (ptrheader);    // scan quickly through the cookie, check types and packet sizes    if (EndianS32_BtoN(atom->type) != kCookieTypeOggSerialNo || static_cast<UInt32> (ptrheader - mCookie) > mCookieSize)        return;    ptrheader += EndianU32_BtoN(aheader->size);    if (EndianS32_BtoN(aheader->type) != kCookieTypeSpeexHeader || static_cast<UInt32> (ptrheader - mCookie) > mCookieSize)        return;    // we ignore the rest: comments and extra headers    // all OK, back to the first speex packet    aheader = reinterpret_cast<CookieAtomHeader*> (mCookie + EndianU32_BtoN(atom->size));    SpeexHeader *inheader = reinterpret_cast<SpeexHeader *> (&aheader->data[0]);    // TODO: convert, at some point, mSpeexHeader to a pointer?    mSpeexHeader.bitrate =                 EndianS32_LtoN(inheader->bitrate);    mSpeexHeader.extra_headers =           EndianS32_LtoN(inheader->extra_headers);    mSpeexHeader.frame_size =              EndianS32_LtoN(inheader->frame_size);    mSpeexHeader.frames_per_packet =       EndianS32_LtoN(inheader->frames_per_packet);    mSpeexHeader.header_size =             EndianS32_LtoN(inheader->header_size);    mSpeexHeader.mode =                    EndianS32_LtoN(inheader->mode);    mSpeexHeader.mode_bitstream_version =  EndianS32_LtoN(inheader->mode_bitstream_version);    mSpeexHeader.nb_channels =             EndianS32_LtoN(inheader->nb_channels);    mSpeexHeader.rate =                    EndianS32_LtoN(inheader->rate);    mSpeexHeader.reserved1 =               EndianS32_LtoN(inheader->reserved1);    mSpeexHeader.reserved2 =               EndianS32_LtoN(inheader->reserved2);    mSpeexHeader.speex_version_id =        EndianS32_LtoN(inheader->speex_version_id);    mSpeexHeader.vbr =                     EndianS32_LtoN(inheader->vbr);    if (mSpeexHeader.mode >= SPEEX_NB_MODES)        CODEC_THROW(kAudioCodecUnsupportedFormatError);    //TODO: check bitstream version here    mSpeexDecoderState = speex_decoder_init(speex_lib_get_mode(mSpeexHeader.mode));    if (!mSpeexDecoderState)        CODEC_THROW(kAudioCodecUnsupportedFormatError);    //TODO: fix some of the header fields here    int enhzero = 0;    speex_decoder_ctl(mSpeexDecoderState, SPEEX_SET_ENH, &enhzero);    if (mSpeexHeader.nb_channels == 2)    {        SpeexCallback callback;        callback.callback_id = SPEEX_INBAND_STEREO;        callback.func = speex_std_stereo_request_handler;        callback.data = &mSpeexStereoState;        speex_decoder_ctl(mSpeexDecoderState, SPEEX_SET_HANDLER, &callback);    }    mCompressionInitialized = true;}
开发者ID:JanX2,项目名称:XiphQT,代码行数:78,


示例20: sizeof

//FLAC__StreamMetadata_StreamInfovoid ACFLACCodec::GetMagicCookie(void* outMagicCookieData, UInt32& ioMagicCookieDataByteSize) const{	Byte *						buffer;	Byte *						currPtr;	AudioFormatAtom * frmaAtom;	FullAtomHeader * flacAtom;	AudioTerminatorAtom * termAtom;	SInt32						atomSize;	UInt32						flacSize;	UInt32						chanSize;	UInt32						frmaSize;	UInt32						termSize;	FLAC__StreamMetadata_StreamInfo *		config;	OSStatus					status;	UInt32						tempMaxFrameBytes;		//RequireAction( sampleDesc != nil, return paramErr; );	config		= nil;		frmaSize = sizeof(AudioFormatAtom);	flacSize		= sizeof(FullAtomHeader) + sizeof(FLAC__StreamMetadata_StreamInfo);	chanSize		= 0;	termSize = sizeof(AudioTerminatorAtom);	// if we're encoding more than two channels, add an AudioChannelLayout atom to describe the layout	if ( mOutputFormat.mChannelsPerFrame > 2 )	{		chanSize = sizeof(FullAtomHeader) + offsetof(AudioChannelLayout, mChannelDescriptions);	}	// create buffer of the required size	atomSize = frmaSize + flacSize + chanSize + termSize;		// Someone might have a stereo/mono cookie while we're trying to do surround.	if ((UInt32)atomSize > ioMagicCookieDataByteSize)	{		CODEC_THROW(kAudioCodecBadPropertySizeError);	}		tempMaxFrameBytes = kInputBufferPackets * mOutputFormat.mChannelsPerFrame * ((10 + kMaxSampleSize) / 8) + 1;	buffer = (Byte *)calloc( atomSize, 1 );	currPtr = buffer;	// fill in the atom stuff	frmaAtom = (AudioFormatAtom *) currPtr;	frmaAtom->size			= EndianU32_NtoB( frmaSize );	frmaAtom->atomType		= EndianU32_NtoB( kAudioFormatAtomType );	frmaAtom->format	= EndianU32_NtoB( 'flac' );	currPtr += frmaSize;	// fill in the FLAC config	flacAtom = (FullAtomHeader *) currPtr;	flacAtom->size				= EndianU32_NtoB( flacSize );	flacAtom->type				= EndianU32_NtoB( 'flac' );	flacAtom->versionFlags		= 0;	currPtr += sizeof(FullAtomHeader);/*	unsigned min_blocksize, max_blocksize;	unsigned min_framesize, max_framesize;	unsigned sample_rate;	unsigned channels;	unsigned bits_per_sample;	FLAC__uint64 total_samples;	FLAC__byte md5sum[16];*/	config = (FLAC__StreamMetadata_StreamInfo *) currPtr;	if (mCookieDefined)	{		config->min_blocksize	= EndianU32_NtoB( mStreamInfo.min_blocksize );		config->max_blocksize	= EndianU32_NtoB( mStreamInfo.max_blocksize );		config->min_framesize	= EndianU32_NtoB( mStreamInfo.min_framesize );		config->max_framesize	= EndianU32_NtoB( mStreamInfo.max_framesize );		config->sample_rate		= EndianU32_NtoB( mStreamInfo.sample_rate );		config->channels		= EndianU32_NtoB( mStreamInfo.channels );		config->bits_per_sample	= EndianU32_NtoB( mStreamInfo.bits_per_sample );		config->total_samples	= EndianU64_NtoB( mStreamInfo.total_samples );		config->md5sum[0]		= mStreamInfo.md5sum[0];		config->md5sum[1]		= mStreamInfo.md5sum[1];		config->md5sum[2]		= mStreamInfo.md5sum[2];		config->md5sum[3]		= mStreamInfo.md5sum[3];		config->md5sum[4]		= mStreamInfo.md5sum[4];		config->md5sum[5]		= mStreamInfo.md5sum[5];		config->md5sum[6]		= mStreamInfo.md5sum[6];		config->md5sum[7]		= mStreamInfo.md5sum[7];		config->md5sum[8]		= mStreamInfo.md5sum[8];		config->md5sum[9]		= mStreamInfo.md5sum[9];		config->md5sum[10]		= mStreamInfo.md5sum[10];		config->md5sum[11]		= mStreamInfo.md5sum[11];		config->md5sum[12]		= mStreamInfo.md5sum[12];		config->md5sum[13]		= mStreamInfo.md5sum[13];		config->md5sum[14]		= mStreamInfo.md5sum[14];		config->md5sum[15]		= mStreamInfo.md5sum[15];	}	else	{//.........这里部分代码省略.........
开发者ID:fruitsamples,项目名称:AudioCodecs,代码行数:101,


示例21: switch

void	ACFLACEncoder::GetProperty(AudioCodecPropertyID inPropertyID, UInt32& ioPropertyDataSize, void* outPropertyData){	switch(inPropertyID)	{		case kAudioCodecPropertyNameCFString:		{			if (ioPropertyDataSize != sizeof(CFStringRef))			{				CODEC_THROW(kAudioCodecBadPropertySizeError);			}			CABundleLocker lock;			CFStringRef name = CFCopyLocalizedStringFromTableInBundle(CFSTR("FLAC encoder"), CFSTR("CodecNames"), GetCodecBundle(), CFSTR(""));			*(CFStringRef*)outPropertyData = name;			break; 		}				case kAudioCodecPropertyAvailableNumberChannels:  			if(ioPropertyDataSize == sizeof(UInt32) * kFLACNumberSupportedChannelTotals)			{				memcpy(reinterpret_cast<UInt32*>(outPropertyData), mSupportedChannelTotals, ioPropertyDataSize);			}			else			{				CODEC_THROW(kAudioCodecBadPropertySizeError);			}			break;		case kAudioCodecPropertyAvailableInputSampleRates:  			if(ioPropertyDataSize == sizeof(AudioValueRange) )			{				(reinterpret_cast<AudioValueRange*>(outPropertyData))->mMinimum = 0.0;				(reinterpret_cast<AudioValueRange*>(outPropertyData))->mMaximum = 0.0;			}			else			{				CODEC_THROW(kAudioCodecBadPropertySizeError);			}			break;		case kAudioCodecPropertyAvailableOutputSampleRates:  			if(ioPropertyDataSize == sizeof(AudioValueRange) )			{				(reinterpret_cast<AudioValueRange*>(outPropertyData))->mMinimum = 0.0;				(reinterpret_cast<AudioValueRange*>(outPropertyData))->mMaximum = 0.0;			}			else			{				CODEC_THROW(kAudioCodecBadPropertySizeError);			}			break;        case kAudioCodecPropertyPrimeMethod:  			if(ioPropertyDataSize == sizeof(UInt32))			{				*reinterpret_cast<UInt32*>(outPropertyData) = (UInt32)kAudioCodecPrimeMethod_None;			}			else			{				CODEC_THROW(kAudioCodecBadPropertySizeError);			}			break;		case kAudioCodecPropertyPrimeInfo:  			if(ioPropertyDataSize == sizeof(AudioCodecPrimeInfo) )			{				(reinterpret_cast<AudioCodecPrimeInfo*>(outPropertyData))->leadingFrames = 0;				(reinterpret_cast<AudioCodecPrimeInfo*>(outPropertyData))->trailingFrames = mTrailingFrames;			}			else			{				CODEC_THROW(kAudioCodecBadPropertySizeError);			}			break;        case kAudioCodecPropertyQualitySetting:  			if(ioPropertyDataSize == sizeof(UInt32))			{                *reinterpret_cast<UInt32*>(outPropertyData) = mQuality;			}			else			{				CODEC_THROW(kAudioCodecBadPropertySizeError);			}			break;       case kAudioCodecPropertyMaximumPacketByteSize:			if(ioPropertyDataSize == sizeof(UInt32))			{				if (mMaxFrameBytes)				{					*reinterpret_cast<UInt32*>(outPropertyData) = mMaxFrameBytes;				}				else // default case				{					*reinterpret_cast<UInt32*>(outPropertyData) = mMaxFrameBytes = kInputBufferPackets * mOutputFormat.mChannelsPerFrame * (mBitDepth >> 3) + kMaxEscapeHeaderBytes;				}			#if VERBOSE				printf("Max packet size == %lu, mBitDepth == %lu/n", mMaxFrameBytes, mBitDepth);			#endif			}//.........这里部分代码省略.........
开发者ID:fruitsamples,项目名称:AudioCodecs,代码行数:101,



注:本文中的CODEC_THROW函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ COGL_FRAMEBUFFER函数代码示例
C++ CODEC_IO_Write函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。