Code Monkey home page Code Monkey logo

mogvert's People

Contributors

edward-murrell avatar uow-dmurrell avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

uow-dmurrell

mogvert's Issues

Add input/output tests

More tests of the compiled object would be nice, including, but not limited to the following;
metadata tags don't contain junk
converting zero pcm data from one format to another and back again produces the same file
converting from flac->flac produces the same data, and/or file
Using -i/-o tags produces the same files as stdin/stdout

Return code not zero?

At the end of a successful conversion, mogvert returns something so that bash in ubuntu does not add the command to it's history.

Remove debug printouts

There are currently several debug printouts that need to be removed - for example;

MAIN() wave_buffer addr: 0x7fffce936fb0

MOG Converter Starting Up

Reading & interpreting command line arguments... Done!
inputfile ptr: 0x199c010

Add cli interface object

Roll up the current cli args reading into it's own object that can take a set of argc/v from anywhere and pass it to the various subsystems. Development of this will most certainly be codependent on issue #16.

No input causes mogvert to explode - possibly no autodetect on filetype?

Not specifying an input file (missing -i), and/or not giving the decoder causes a segfault. If this isn't easy enough for this release, add explanation and clean exit code.

edward@blue ~/build/mogvert $ src/mogvert -e mp3 /home/edward/Music/03\ -\ Nietzsche.ogg -o /tmp/test.mp3

MOG Converter Starting Up

Reading & interpreting command line arguments... Done!
Segmentation fault

edward@blue ~/build/mogvert $ src/mogvert -e mp3 -o /tmp/test.mp3 < /home/edward/Music/03\ -\ Nietzsche.ogg

MOG Converter Starting Up

Reading & interpreting command line arguments... Done!
Segmentation fault

./configure is broken

Running ./configure breaks src/Makefile, and doesn't properly detect if various header files are installed on the system, only binary libraries.

Once fixed, src/Makefile should be deleted

libao encoder produces nonsenical output on console

When using the libao encoder, strange output is given on the console. Example on line #3 below.

Initilizing encoding engine... Libao Audio Output library
Playing Nietzsche by The Dandy Warhols (Thirteen Tales From Urban Bohemia)...
" in channel matrix "" <----- HERE
Recoding Nietzsche... 55.9482 mbytes completed in 9 seconds...

Add ReplayGain

Add ReplayGain support, in three board areas;

  • Copy recode values (where possible) from source to target
  • Encode replay gain values into target format
  • Calculate replay gain values into target format.

Fix FLAC metadata importing

The FLAC decoder doesn't currently return any valid metadata, add support for filling in a gfi struct for Ogg vorbis tags and other commonly used tag types.

Rebuild metadata system

The current generfal_file_info struct (gfi) isn't really up to spec to handling complicated formats. Create a new metadata system, preferably OOP based, that handles metadata with better modularity, and doesn't require 40 lines of if/then/else statements per coder.

It would be nice if it also supported embedded jpegs/pngs.

Some reading will be required;
http://wiki.xiph.org/VorbisComment - See items on proposed fields names
http://www.id3.org/ - used by mp3, may n
http://atomicparsley.sourceforge.net/mpeg-4files.html Proprietary Apple extension for m4a, different to the official mp4/m4a metadata spec.

Create system/class for passing options to coders

Currently, only the bitrate is settable from the command line. An extensible object that can handle various options would be superb.

Example of options that will be passed in;
bitrate
number of channels
down/up mixing options
sampling rate options
select output device (libao)
transfer metadata (boolean)
number of threads to use
tag versions
metadata char encoding
and so on...

Add/fix support for stdin/stdout

Add support for using stdin and stdout of files.

  • Libao can ignore this option.
  • For this to work, any output during normal operation must be pointed towards stderr.

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.