Giter VIP home page Giter VIP logo

Comments (5)

devongovett avatar devongovett commented on August 19, 2024

I'm away on vacation and this isn't that high of a priority but pull requests would be gladly accepted! :)

from aurora.js.

sebpiq avatar sebpiq commented on August 19, 2024

Yeah, I can at least ignore the chunk. And there's a small bug in the WAV demuxer, I'll fix it.
But as I said in last issue, it's hard to contribute, because it's not so easy to understand the build system + tests (+ coffeescript for me) ... but I'll submit a patch :)

from aurora.js.

sebpiq avatar sebpiq commented on August 19, 2024

Ok ... I managed to get the tests running, created a simple test case, which fails unexpectedly and I tried many things, I just can't get the traceback to debug where the error comes from. My test case in demuxers :

    demuxerTest 'listchunk', 
        file: 'wave/listchunk.wav'
        format:
            formatID: 'lpcm'
            sampleRate: 44100
            bitsPerChannel: 16
            channelsPerFrame: 2
            bytesPerPacket: 4
            framesPerPacket: 1
            littleEndian: false
            floatingPoint: false
        duration: 8916

The wav file used : https://dl.dropboxusercontent.com/u/1869644/listchunk.wav

Any pointer, how to have the traceback or something like that would be welcome.

from aurora.js.

devongovett avatar devongovett commented on August 19, 2024

I will try to explain. demuxerTest is just a helper to make writing tests easier, rather than writing out the same boilerplate every time. The difference I see in what your test is expecting and what Aurora is returning is that the littleEndian flag is set to true rather than false. In this case, the test is wrong, which can be verified by inspecting the WAV file in another player/editor.

You probably didn't see this because the node test runner is kinda incomplete, and doesn't show object diffs (probably just said [object Object] != [object Object]. Running the tests in the browser showed the diff. QUnit supports object diffing, but the node interface doesn't currently display them, so I'll add that.

As for the file itself, it seems to decode and play back just fine with aurora. Closing this issue. Please feel free to continue discussing here though.

from aurora.js.

sebpiq avatar sebpiq commented on August 19, 2024

Ahh ... sorry for being so stupid. I actually did try to print console.log(format, config.format), because from the error message I immediately thought it should be this. But somehow I failed to perform a "diff" with my eyes!

In fact there is a bug, but it doesn't come from not supporting the LIST chunk, as it is already ignored :

switch @type
    when 'fmt '
        // ...
    when 'data'
        // ...
    else
        return unless @stream.available(@len)
        @stream.advance(@len)

The bug comes from ignoring the chunk size for 'fmt' chunk. I got this with some files converted with ffmpeg. For some reason there was 2 extra bytes in the chunk, so that the following chunk id and chunk length were not read properly. The fix is very easy, I will try to make a test case, and fix this.

from aurora.js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.