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

📄 parse_audio_cmdline.c

📁 Sample code for use on smp 863x processor.
💻 C
📖 第 1 页 / 共 5 页
字号:
	options->transcode_ec3_to_ac3 = FALSE;		options->AudioFreqFromStream = 0;  // force afreq	options->auto_detect_codec = FALSE;	options->OutputSurround20 = SurroundAsStream;		options->AudioCP = FALSE;	options->mclk = MClkFactor_256Xfs;		options->chconfig=2;	options->drcenable=1;	options->drcboost=100;	options->drccut=100;	options->drcdialref=-31;	options->lossless=FALSE;	options->audio_play_time.PlayMode = 0;	options->audio_play_time.PlayStartPTS = 0;	options->audio_play_time.PlayEndPTS = 0;				options->ppdmx = FALSE;	options->centerup = FALSE;  options->PL2xParams.mode = 3;  options->PL2xParams.a = 0;  options->PL2xParams.f = 0;  options->PL2xParams.r = 0;  options->PL2xParams.t = 0;  options->PL2xParams.w = 3;  options->PL2xParams.d = 7;  options->PL2xParams.x = 0;  options->PL2xParams.on = 0;  options->PL2xParams.autoEX = 0;                                                                                                            	options->i2s_spdif = 0;	options->spdifChannelStatus.Mask = 0;   	options->spdifChannelStatus.Value = 0;		options->mute_enable = FALSE;	options->ChannelDelay.Delay_ch0 = 0;	options->ChannelDelay.Delay_ch1 = 0;	options->ChannelDelay.Delay_ch2 = 0;	options->ChannelDelay.Delay_ch3 = 0;	options->ChannelDelay.Delay_ch4 = 0;	options->ChannelDelay.Delay_ch5 = 0;	options->ChannelDelay.Delay_ch6 = 0;	options->ChannelDelay.Delay_ch7 = 0;	options->mute_gpio = 0;	options->mute_polarity = FALSE;	options->thisAudioInstance = 0;	options->audioInstances = 1;	options->cdmx_enable = FALSE;	options->sync_stc = TRUE;		return RM_OK;}RMstatus parse_audio_cmdline(int argc, char **argv, int *index, struct audio_cmdline *options){	RMstatus err = RM_PENDING;	int i = *index;	if ( ! strcmp(argv[i], "-afs")) {		if (argc > i+1) {			options->AudioFreqFromStream = strtol(argv[i+1], NULL, 10);			i+=2;			err = RM_OK;		}		else			err = RM_ERROR;	}	else if ( ! strcmp(argv[i], "-ae")) {		if (argc > i+1) {			options->AudioEngineID = strtol(argv[i+1], NULL, 10);			i+=2;			err = RM_OK;		}		else			err = RM_ERROR;	}	else if ( ! strcmp(argv[i], "-ad")) {		if (argc > i+1) {			options->AudioDecoderID = strtol(argv[i+1], NULL, 10);			i+=2;			err = RM_OK;		}		else			err = RM_ERROR;	} else if ( ! strcmp(argv[i], "-chan")) {		if (argc > i+1) {			options->OutputChannels =  get_channel_mask(argv[i+1]);			options->OutputChannelsExplicitAssign = TRUE;			i += 2;			err = RM_OK;		} else			err = RM_ERROR;	} else if (! strcmp(argv[i], "-ac3compmode")) {		if (argc > i+1) {			options->Ac3Params.CompMode = (enum Ac3CompMode_type)atoi(argv[i+1]);			i+=2;			err = RM_OK;		} else 			err = RM_ERROR;	} else if (! strcmp(argv[i], "-ac3dynhi")) {		if (argc > i+1) {			RMuint32	dynhi;			sscanf((const char*)argv[i+1], (const char*)"0x%08lx", &dynhi);			options->Ac3Params.DynScaleHi = dynhi;			i += 2;			err = RM_OK;		} else			err = RM_ERROR;	} else if (! strcmp(argv[i], "-ac3dynlo")) {		if (argc > i+1) {			RMuint32	dynlo;			sscanf((const char*)argv[i+1], (const char*)"0x%08lx", &dynlo);			options->Ac3Params.DynScaleLo = dynlo;			i += 2;			err = RM_OK;		} else			err = RM_ERROR;	} else if (! strcmp(argv[i], "-ac3pcmscale")) {		if (argc > i+1) {			RMuint32	PcmScale;			sscanf((const char*)argv[i+1], (const char*)"0x%08lx", &PcmScale);			options->Ac3Params.PcmScale = PcmScale;			i += 2;			err = RM_OK;		} else			err = RM_ERROR;	} else if (! strcmp(argv[i], "-ttone_type")){		if(argc > i+1) {			RMuint32 ttone_type;			sscanf((const char*)argv[i+1], (const char*)"0x%lx", &ttone_type);			options->TToneParams.TToneType = ttone_type;			i += 2;			err = RM_OK;		}		else			err = RM_ERROR;	}	else if (! strcmp(argv[i], "-ttone_mask")){		if(argc > i+1) {			RMuint32 ttone_chmask;			sscanf((const char*)argv[i+1], (const char*)"0x%lx", &ttone_chmask);			options->TToneParams.TToneChannelMask = ttone_chmask;			i += 2;			err = RM_OK;		}		else			err = RM_ERROR;	}	else if (! strcmp(argv[i], "-c")) {		if (argc > i+1) {			if ( !(strcmp(argv[i+1], "auto"))) {				options->auto_detect_codec = TRUE;				RMDBGLOG((LOCALDBG, "\n\n\n\n\n********************** AUDIO CODEC: AUTO ***************\n\n\n\n"));			}			else if ( ! (strcmp(argv[i+1], "ac3")) || ! (strcmp(argv[i+1], "ac3_20"))) {				options->Codec = AudioDecoder_Codec_AC3;				options->Ac3Params.OutputChannels = Ac3_LR;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			} 			else if ( ! (strcmp(argv[i+1], "ac3_32"))) {				options->Codec = AudioDecoder_Codec_AC3;				options->Ac3Params.OutputChannels = Ac3_LCRLsRs;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LCRLsRs;			} 			else if ( ! (strcmp(argv[i+1], "ec3"))) {				RMDBGLOG((LOCALDBG, "ec3 codec: will set codec to ac3 and use rmec3transcode lib\n"));				options->Codec = AudioDecoder_Codec_AC3;				options->Ac3Params.OutputChannels = Ac3_LR;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;				options->transcode_ec3_to_ac3 = TRUE;			} 			else if ( ! (strcmp(argv[i+1], "mpeg"))) {				options->Codec = AudioDecoder_Codec_MPEG1;			}						else if ( ! (strcmp(argv[i+1], "aac0")) || ! (strcmp(argv[i+1], "aac0_20"))) {				options->Codec = AudioDecoder_Codec_AAC;				options->AACParams.InputFormat = 0;	// adif, no sync word				options->AACParams.OutputChannels = Aac_LR;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "aac0_32"))) {				options->Codec = AudioDecoder_Codec_AAC;				options->AACParams.InputFormat = 0;	// adif, no sync word				options->AACParams.OutputChannels = Aac_LCRLsRs;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LCRLsRs;			}			else if ( ! (strcmp(argv[i+1], "aac1")) || ! (strcmp(argv[i+1], "aac1_20"))) {				options->Codec = AudioDecoder_Codec_AAC;				options->AACParams.InputFormat = 1;	// adts, with sync word per frame				options->AACParams.OutputChannels = Aac_LR;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "aac1_32"))) {				options->Codec = AudioDecoder_Codec_AAC;				options->AACParams.InputFormat = 1;	// adts, with sync word per frame				options->AACParams.OutputChannels = Aac_LCRLsRs;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LCRLsRs;			}			else if ( ! (strcmp(argv[i+1], "aac2")) || ! (strcmp(argv[i+1], "aac2_20"))) {				options->Codec = AudioDecoder_Codec_AAC;				options->AACParams.InputFormat = 2;	// dsi, no sync word				options->AACParams.OutputChannels = Aac_LR;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "aac2_32"))) {				options->Codec = AudioDecoder_Codec_AAC;				options->AACParams.InputFormat = 2;	// dsi, no sync word				options->AACParams.OutputChannels = Aac_LCRLsRs;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LCRLsRs;			}			else if ( ! (strcmp(argv[i+1], "aac3")) || ! (strcmp(argv[i+1], "aac3_20"))) {				options->Codec = AudioDecoder_Codec_AAC;				options->AACParams.InputFormat = 3;	// latm, with sync word per multi-frames				options->AACParams.OutputChannels = Aac_LR;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "bsac"))) {				options->Codec = AudioDecoder_Codec_BSAC;				options->BSACParams.OutputChannels = Aac_LR;			}			else if ( ! (strcmp(argv[i+1], "pcm24")) || ! (strcmp(argv[i+1], "pcm24_2"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 0;				options->PcmCdaParams.ChannelAssign = PcmCda2_LR;				options->PcmCdaParams.BitsPerSample = 24;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "pcmx"))) { //pcmx codec, all information need to be written in header				options->Codec = AudioDecoder_Codec_PCMX;			}			else if ( ! (strcmp(argv[i+1], "pcm24_6"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 0;				options->PcmCdaParams.ChannelAssign = PcmCda6_LfRfCLfeLsRs;				options->PcmCdaParams.BitsPerSample = 24;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LCRLsRs;			}			else if ( ! (strcmp(argv[i+1], "pcm16_2"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 0;				options->PcmCdaParams.ChannelAssign = PcmCda2_LR;				options->PcmCdaParams.BitsPerSample = 16;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "pcm16_1"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 0;				options->PcmCdaParams.ChannelAssign = PcmCda1_C;				options->PcmCdaParams.BitsPerSample = 16;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}		 	else if ( ! (strcmp(argv[i+1], "pcm16_6"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 0;				options->PcmCdaParams.ChannelAssign = PcmCda6_LfRfCLfeLsRs;				options->PcmCdaParams.BitsPerSample = 16;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LCRLsRs;			}			else if ( ! (strcmp(argv[i+1], "pcm8_2"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 0;				options->PcmCdaParams.ChannelAssign = PcmCda2_LR;				options->PcmCdaParams.BitsPerSample = 8;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels = Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "pcm8_1"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 0;				options->PcmCdaParams.ChannelAssign = PcmCda1_C;				options->PcmCdaParams.BitsPerSample = 8;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;										}			else if ( ! (strcmp(argv[i+1], "lpcm24")) || ! (strcmp(argv[i+1], "lpcm24_2"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 1;				options->LpcmVobParams.ChannelAssign = LpcmVob2_LR;				options->LpcmVobParams.BitsPerSample = 24;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "lpcm20")) || ! (strcmp(argv[i+1], "lpcm20_2"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 1;				options->LpcmVobParams.ChannelAssign = LpcmVob2_LR;				options->LpcmVobParams.BitsPerSample = 20;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "lpcm16")) || ! (strcmp(argv[i+1], "lpcm16_2"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 1;				options->LpcmVobParams.ChannelAssign = LpcmVob2_LR;				options->LpcmVobParams.BitsPerSample = 16;				if (!options->OutputChannelsExplicitAssign) {					options->OutputChannels	= Audio_Out_Ch_LR;					RMDBGLOG((LOCALDBG, ">>>>>>>>>>>>lpcm16_2 Cmdline Speaker Configure = %0x\n", options->OutputChannels));				}			}			else if ( ! (strcmp(argv[i+1], "lpcm16_1"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 1;				options->LpcmVobParams.ChannelAssign = LpcmVob1_C;				options->LpcmVobParams.BitsPerSample = 16;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "lpcma24")) || ! (strcmp(argv[i+1], "lpcma24_2"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 2;				options->LpcmAobParams.ChannelAssign = LpcmAob20_LR;				options->LpcmAobParams.BitsPerSampleGroup1 = 24;				options->LpcmAobParams.BitsPerSampleGroup2 = 0;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "lpcma16_2"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 2;				options->LpcmAobParams.ChannelAssign = LpcmAob20_LR;				options->LpcmAobParams.BitsPerSampleGroup1 = 16;				options->LpcmAobParams.BitsPerSampleGroup2 = 0;				if (!options->OutputChannelsExplicitAssign)					options->OutputChannels	= Audio_Out_Ch_LR;			}			else if ( ! (strcmp(argv[i+1], "lpcma16_1"))) {				options->Codec = AudioDecoder_Codec_PCM;				options->SubCodec = 2;				options->LpcmAobParams.ChannelAssign = LpcmAob10_C;				options->LpcmAobParams.BitsPerSampleGroup1 = 16;				options->LpcmAobParams.BitsPerSampleGroup2 = 0;

⌨️ 快捷键说明

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