RageAgainstThePixel / com.utilities.encoder.ogg

Ogg Vorbis encoder utility library for Unity (UPM)
MIT License
6 stars 1 forks source link

Audio is trimmed when converting from PCM to Ogg #23

Open StephenHodgson opened 1 month ago

StephenHodgson commented 1 month ago

Bug Report

To Reproduce

Steps to reproduce the behavior:

    public static void ConvertWavToOgg()
    {
        Debug.Log("Convert WAV to OGG");
        // Open file dialog to select a WAV file
        string wavPath = EditorUtility.OpenFilePanel("Select WAV file", "", "wav");
        Assert.IsNotNull(wavPath);

        AudioClip wavAudioClip = LoadAudioFile(wavPath, AudioType.WAV);
        Assert.AreEqual(1, wavAudioClip.channels, "Only mono audio is supported");

        // Convert the audio clip to OGG
        string oggPath = wavPath.Replace(".wav", ".ogg");
        var pcmData = new float[wavAudioClip.samples];
        wavAudioClip.GetData(pcmData, 0);
        var oggBytes = OggEncoder.ConvertToBytes(pcmData, wavAudioClip.frequency, 1);
        File.WriteAllBytes(oggPath, oggBytes);

        // Reload ogg file
        AudioClip oggAudioClip = LoadAudioFile(oggPath, AudioType.OGGVORBIS);

        Assert.AreEqual(wavAudioClip.samples, oggAudioClip.samples, $"Sample count mismatch: wav={wavAudioClip.samples}, ogg={oggAudioClip.samples}");
    }
StephenHodgson commented 1 month ago

Source of the bug

StephenHodgson commented 1 month ago

Found a possible replacement: https://github.com/NVorbis/NVorbis