edward-murrell / mogvert Goto Github PK
View Code? Open in Web Editor NEWHome Page: http://edward-murrell.github.com/mogvert/
License: GNU General Public License v3.0
Home Page: http://edward-murrell.github.com/mogvert/
License: GNU General Public License v3.0
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
At the end of a successful conversion, mogvert returns something so that bash in ubuntu does not add the command to it's history.
Having committed to C++, replace the use of C strings with C++ strings.
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
Files that have no metadata will produce strange results when recoding and outputting a summary
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.
When supplied a zero byte, mogvert will try to convert it anyway, instead of returning an appropriate error.
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
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
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 support, in three board areas;
Update man pages to match existing behaviour
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.
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 debian/ folder
The Ogg decoder only checks for lower case key values when reading for commonly used tags. This should be easy to fix by changing the string comparison function.
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...
Rebuild PCM stack that avoids copying data where possible, keeping data in it's original formatting, and offering resampling, preferably with the ability to notice when an input stream changes bitrates.
See libzita-resampler0 (zita resampler), libsamplerate (secret rabbit resampler). Probably others.
See the following.
http://kokkinizita.linuxaudio.org/linuxaudio/zita-resampler/resampler.html
http://www.mega-nerd.com/SRC/
https://ccrma.stanford.edu/~jos/resample/
Add support for using stdin and stdout of files.
This is dependant moving away from file based APIs. Fixing issue #19 will make this possible.
Fix the debian build scripts to properly reference various -dev packages required for build. Auto*tools can probably be removed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.