Skip to content

Latest commit

 

History

History
93 lines (86 loc) · 3.21 KB

TODO

File metadata and controls

93 lines (86 loc) · 3.21 KB

Finish version 1.0

Construct basic API

Add PCM decoding support

Add MLP decoding support

Add seeking support

It should be possible to seek directly to the start of a track

Add unprotection support

Add licensing text to all files

array

  • [X] src/array.h
  • [X] src/array.c

bitstream

  • [X] src/bitstream.h
  • [X] src/huffman.h
  • [X] src/mini-gmp.h
  • [X] src/read_bits_table_be.h
  • [X] src/read_bits_table_le.h
  • [X] src/read_unary_table_be.h
  • [X] src/read_unary_table_le.h
  • [X] src/unread_bit_table_be.h
  • [X] src/unread_bit_table_le.h
  • [X] src/bitstream.c
  • [X] src/func_io.c
  • [X] src/huffman.c
  • [X] src/mini-gmp.c
  • [X] src/parson.c

core dvda

  • [X] include/dvda.h
  • [X] src/aob.h
  • [X] src/audio_ts.h
  • [X] src/mlp.h
  • [X] src/mlp_codebook1.h
  • [X] src/mlp_codebook2.h
  • [X] src/mlp_codebook3.h
  • [X] src/pcm.h
  • [X] src/stream_parameters.h
  • [X] src/aob.c
  • [X] src/audio_ts.c
  • [X] src/dvda.c
  • [X] src/mlp.c
  • [X] src/pcm.c
  • [X] utils/dvda-debug-info.c
  • [X] utils/dvda2wav

Add basic debugging utilities

These are stripped-down proof-of-concepts to show off how the library works and can be probed with Valgrind to ensure there’s no bugs.

dvda-debug-info

dvda2wav

Add versioning to library

Ensure major and minor version show up somewhere

Make both static and dynamic libraries

Add .pc file for pkg-config

Make this consistent with other libraries like libcdio

Verify utilities for errors

Run Valgrind over them to ensure there’s no memory leaks or other access errors.

Add library documentation

Add RST file for the web

Handle tracks that don’t fall on packet boundaries

The “start sector” field in the ATX_01_0.IFO file should indicate which sector in which ATS_01_X.AOB file the track starts on.

Only sometimes tracks don’t start on the first audio packet of the sector so one “puts the needle down” right in the middle of an MLP frame. Sometimes tracks don’t even start in that sector at all for a bit of added stupidity.

This is why the previous implementation treated the MLP tracks as one big stream and split it at rip-time by PTS ticks just to overcome that silliness, but individual tracks in an MLP stream may not be consistent either in terms of stream parameters.

Tracks will be handled correctly to match the API this time around via as much stream probing as it takes.

Handle end of tracks correctly

I’d been converting PTS ticks to PCM frames and using that as the total track length, but that’s not quite right either.

Need to figure out a more accurate way to find a track’s end.

Finish version 1.1

Add format documentation

Overhaul the documentation on how to read and decode DVD-A discs to be a bit more comprehensive.

Add some optimization

see if there’s any obvious bits that could be optimized

Add better error reporting

It might be useful to generate specific error codes when some problem occurs opening things or during decoding.