Beispiel #1
0
    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;
    }
Beispiel #3
0
    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);
    }