public void SelectAudioCodec(bool listCodecs) { // Enumerate audio codecs int numAudioCodecs = AVProMovieCapturePlugin.GetNumAVIAudioCodecs(); if (listCodecs) { for (int i = 0; i < numAudioCodecs; i++) { Debug.Log("AudioCodec " + i + ": " + AVProMovieCapturePlugin.GetAVIAudioCodecName(i)); } } // The user has specified their own codec index if (_forceAudioCodecIndex >= 0) { if (_forceAudioCodecIndex < numAudioCodecs) { _audioCodecName = AVProMovieCapturePlugin.GetAVIAudioCodecName(_forceAudioCodecIndex); _audioCodecIndex = _forceAudioCodecIndex; } } else { // Try to find the codec based on the priority list if (_audioCodecPriority != null) { foreach (string codec in _audioCodecPriority) { string codecName = codec.Trim(); // Empty string means uncompressed if (string.IsNullOrEmpty(codecName)) { break; } for (int i = 0; i < numAudioCodecs; i++) { if (codecName == AVProMovieCapturePlugin.GetAVIAudioCodecName(i)) { _audioCodecName = codecName; _audioCodecIndex = i; break; } } if (_audioCodecIndex >= 0) { break; } } } } if (_audioCodecIndex < 0) { _audioCodecName = "Uncompressed"; Debug.LogWarning("[AVProMovieCapture] Codec not found. Audio will be uncompressed."); } }
private void CreateGUI() { try { if (!AVProMovieCapturePlugin.Init()) { Debug.LogError("[AVProMovieCapture] Failed to initialise"); return; } } catch (System.DllNotFoundException e) { _isFailedInit = true; Debug.LogError("[AVProMovieCapture] Unity couldn't find the plugin DLL, please move the 'Plugins' folder to the root of your project."); throw e; } // Video codec enumeration int numVideoCodecs = Mathf.Max(0, AVProMovieCapturePlugin.GetNumAVIVideoCodecs()); _videoCodecNames = new string[numVideoCodecs + 2]; _videoCodecNames[0] = "Uncompressed"; _videoCodecNames[1] = null; _videoCodecConfigurable = new bool[numVideoCodecs + 2]; _videoCodecConfigurable[0] = false; _videoCodecConfigurable[1] = false; for (int i = 0; i < numVideoCodecs; i++) { _videoCodecNames[i + 2] = i.ToString("D2") + ") " + AVProMovieCapturePlugin.GetAVIVideoCodecName(i).Replace("/", "_"); _videoCodecConfigurable[i + 2] = AVProMovieCapturePlugin.IsConfigureVideoCodecSupported(i); } // Audio device enumeration int numAudioDevices = Mathf.Max(0, AVProMovieCapturePlugin.GetNumAVIAudioInputDevices()); _audioDeviceNames = new string[numAudioDevices + 2]; _audioDeviceNames[0] = "Unity"; _audioDeviceNames[1] = null; for (int i = 0; i < numAudioDevices; i++) { _audioDeviceNames[i + 2] = i.ToString("D2") + ") " + AVProMovieCapturePlugin.GetAVIAudioInputDeviceName(i).Replace("/", "_"); } // Audio codec enumeration int numAudioCodecs = Mathf.Max(0, AVProMovieCapturePlugin.GetNumAVIAudioCodecs()); _audioCodecNames = new string[numAudioCodecs + 2]; _audioCodecNames[0] = "Uncompressed"; _audioCodecNames[1] = null; _audioCodecConfigurable = new bool[numAudioCodecs + 2]; _audioCodecConfigurable[0] = false; _audioCodecConfigurable[1] = false; for (int i = 0; i < numAudioCodecs; i++) { _audioCodecNames[i + 2] = i.ToString("D2") + ") " + AVProMovieCapturePlugin.GetAVIAudioCodecName(i).Replace("/", "_"); _audioCodecConfigurable[i + 2] = AVProMovieCapturePlugin.IsConfigureAudioCodecSupported(i); } _isInit = true; }
private void CreateGUI() { _downScales = new string[6]; _downScales[0] = "Original"; _downScales[1] = "Half"; _downScales[2] = "Quarter"; _downScales[3] = "Eighth"; _downScales[4] = "Sixteenth"; _downScales[5] = "Specific"; switch (_movieCapture._downScale) { default: case AVProMovieCaptureBase.DownScale.Original: _downScaleIndex = 0; break; case AVProMovieCaptureBase.DownScale.Half: _downScaleIndex = 1; break; case AVProMovieCaptureBase.DownScale.Quarter: _downScaleIndex = 2; break; case AVProMovieCaptureBase.DownScale.Eighth: _downScaleIndex = 3; break; case AVProMovieCaptureBase.DownScale.Sixteenth: _downScaleIndex = 4; break; case AVProMovieCaptureBase.DownScale.Specific: _downScaleIndex = 5; break; } _frameRates = new string[6]; _frameRates[0] = "15"; _frameRates[1] = "24"; _frameRates[2] = "25"; _frameRates[3] = "30"; _frameRates[4] = "50"; _frameRates[5] = "60"; switch (_movieCapture._frameRate) { default: case AVProMovieCaptureBase.FrameRate.Fifteen: _frameRateIndex = 0; break; case AVProMovieCaptureBase.FrameRate.TwentyFour: _frameRateIndex = 1; break; case AVProMovieCaptureBase.FrameRate.TwentyFive: _frameRateIndex = 2; break; case AVProMovieCaptureBase.FrameRate.Thirty: _frameRateIndex = 3; break; case AVProMovieCaptureBase.FrameRate.Fifty: _frameRateIndex = 4; break; case AVProMovieCaptureBase.FrameRate.Sixty: _frameRateIndex = 5; break; } int numVideoCodecs = AVProMovieCapturePlugin.GetNumAVIVideoCodecs(); if (numVideoCodecs > 0) { _videoCodecNames = new string[numVideoCodecs + 1]; _videoCodecNames[0] = "Uncompressed"; _videoCodecConfigurable = new bool[numVideoCodecs]; for (int i = 0; i < numVideoCodecs; i++) { _videoCodecNames[i + 1] = AVProMovieCapturePlugin.GetAVIVideoCodecName(i); _videoCodecConfigurable[i] = AVProMovieCapturePlugin.IsConfigureVideoCodecSupported(i); } } int numAudioDevices = AVProMovieCapturePlugin.GetNumAVIAudioInputDevices(); if (numAudioDevices > 0) { _audioDeviceNames = new string[numAudioDevices + 1]; _audioDeviceNames[0] = "Unity"; for (int i = 0; i < numAudioDevices; i++) { _audioDeviceNames[i + 1] = AVProMovieCapturePlugin.GetAVIAudioInputDeviceName(i); } } int numAudioCodecs = AVProMovieCapturePlugin.GetNumAVIAudioCodecs(); if (numAudioCodecs > 0) { _audioCodecNames = new string[numAudioCodecs + 1]; _audioCodecNames[0] = "Uncompressed"; _audioCodecConfigurable = new bool[numAudioCodecs]; for (int i = 0; i < numAudioCodecs; i++) { _audioCodecNames[i + 1] = AVProMovieCapturePlugin.GetAVIAudioCodecName(i); _audioCodecConfigurable[i] = AVProMovieCapturePlugin.IsConfigureAudioCodecSupported(i); } } _movieCapture.SelectCodec(false); _movieCapture.SelectAudioCodec(false); _movieCapture.SelectAudioDevice(false); }