📄 parse_audio_cmdline.c
字号:
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], "aac3_32"))) { options->Codec = AudioDecoder_Codec_AAC; options->AACParams.InputFormat = 3; // latm, with sync word per multi-frames options->AACParams.OutputChannels = Aac_LCRLsRs; if (!options->OutputChannelsExplicitAssign) options->OutputChannels = Audio_Out_Ch_LCRLsRs; } else if ( ! (strcmp(argv[i+1], "bsac"))) { options->Codec = AudioDecoder_Codec_BSAC; options->BSACParams.InputFormat = 1; // adif, no sync word options->BSACParams.OutputChannels = Dts_LR; // need to be updated !!! } 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; if (!options->OutputChannelsExplicitAssign) options->OutputChannels = Audio_Out_Ch_LR; } else if ( ! (strcmp(argv[i+1], "bdlpcm")) ) { // Bluray LPCM audio options->Codec = AudioDecoder_Codec_PCM; options->SubCodec = 3; options->PcmCdaParams.ChannelAssign = PcmCda2_LR; options->PcmCdaParams.BitsPerSample = 16; if (!options->OutputChannelsExplicitAssign) options->OutputChannels = Audio_Out_Ch_LR; } else if ( ! (strcmp(argv[i+1], "wmapro")) ) { options->Codec = AudioDecoder_Codec_WMAPRO; } else if ( ! (strcmp(argv[i+1], "wma"))) { options->Codec = AudioDecoder_Codec_WMA; } else if ( ! (strcmp(argv[i+1], "wmats"))) { options->Codec = AudioDecoder_Codec_WMA; options->WmaParams.VersionNumber = 0x7a23; } else if ( ! (strcmp(argv[i+1], "dts"))) { options->Codec = AudioDecoder_Codec_DTS; } else if ( ! (strcmp(argv[i+1], "dts_cd"))) { options->Codec = AudioDecoder_Codec_DTS; options->DtsParams.dts_CD = TRUE; } else if ( ! (strcmp(argv[i+1], "dts_20"))) { options->Codec = AudioDecoder_Codec_DTS;/* options->OutputChannels = Channel_LR; */ options->DtsParams.OutputChannels = Dts_LR; } else if ( ! (strcmp(argv[i+1], "dts_32"))) { options->Codec = AudioDecoder_Codec_DTS;/* options->OutputChannels = Audio_Out_Ch_LCRLsRs; */ options->DtsParams.OutputChannels = Dts_LCRLsRs; } else if ( ! (strcmp(argv[i+1], "dvda"))) { options->Codec = AudioDecoder_Codec_DVDA; } else if ( ! (strcmp(argv[i+1], "ttone"))) { RMDBGLOG((ENABLE, "\n&&&&&\nTTONE select\n&&&&&\n")); options->Codec = AudioDecoder_Codec_TTONE; } else { err = RM_ERROR; } } else err = RM_ERROR; if (err != RM_ERROR) err = RM_OK; i+=2; } else if ( ! strcmp(argv[i], "-afreq")) { if (argc > i+1) { options->SampleRate = strtol(argv[i+1], NULL, 10); /* if the user specified the samplerate at cmdline, we force it over the value found on the dsi */ options->ForceSampleRate = TRUE; i += 2; err = RM_OK; } else err = RM_ERROR; } else if ( ! strcmp(argv[i], "-sfg1")) { if (argc > i+1) { options->SamplingFrequency = strtol(argv[i+1], NULL, 10); i+=2; err = RM_OK; } else err = RM_ERROR; } else if ( ! strcmp(argv[i], "-extclk")) { options->ExternalClk = TRUE; i++; if ((i < argc) && (argv[i][0] != '-')) { options->ExternalClkFreq = strtol(argv[i], NULL, 10); i++; } err = RM_OK; } else if ( ! strcmp(argv[i], "-aplay")) { if (argc > i+1) { options->audio_play_time.PlayMode = strtol(argv[i+1], NULL, 10); i+=2; err = RM_OK; } else err = RM_ERROR; } else if ( ! strcmp(argv[i], "-astart")) { if (argc > i+1) { RMuint64 startPTS; sscanf((const char*)argv[i+1], (const char*)"%llu", &startPTS); options->audio_play_time.PlayStartPTS = startPTS; i+=2; err = RM_OK; } else err = RM_ERROR; } else if ( ! strcmp(argv[i], "-astop")) { if (argc > i+1) { RMuint64 stopPTS; sscanf((const char*)argv[i+1], (const char*)"%llu", &stopPTS); options->audio_play_time.PlayEndPTS = stopPTS; i+=2; err = RM_OK; } else err = RM_ERROR; } else if ( ! strcmp(argv[i], "-ppdmx")) { options->ppdmx = TRUE; i++; err = RM_OK; } else if ( ! strcmp(argv[i], "-centerup")) { options->centerup = TRUE; i++; err = RM_OK; } else if ( ! strcmp(argv[i], "-i2s_spdif")) { if (argc > i+1) { RMuint32 nI2S = strtol(argv[i+1], NULL, 10); if (nI2S > 4) nI2S = 0; options->i2s_spdif = nI2S; i+=2; err = RM_OK; } else err = RM_ERROR; } else if ( ! strcmp(argv[i], "-ltrt")) { options->OutputSurround20 = SurroundEnable; i++; err = RM_OK; } else if ( ! strcmp(argv[i], "-loro")) { options->OutputSurround20 = SurroundDisable; i++; err = RM_OK; } else if ( ! strcmp(argv[i], "-cdmx")) { options->cdmx_enable = TRUE; i++; err = RM_OK; } else if ( ! strcmp(argv[i], "-nosync")) { options->sync_stc = FALSE; i++; err = RM_OK; } else if (RMCompareAscii(argv[i], "-x")) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -