Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MD5 checksum added by default on wavpack exports #5948

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dg-no-9
Copy link
Contributor

@dg-no-9 dg-no-9 commented Feb 13, 2024

Resolves: WavPack export: include MD5 audio checksum (-m option)

The Flag 'CONFIG_MD5_CHECKSUM' set to the exporter API config. The exported wavpack files should have MD5 checksums by default after this fix.

  • I signed CLA
  • The title of the pull request describes an issue it addresses
  • [x ] If changes are extensive, then there is a sequence of easily reviewable commits
  • Each commit's message describes its purpose and effects
  • There are no behavior changes unnecessary for the stated purpose of the PR

Recommended:

  • Each commit compiles and runs on my machine without known undesirable changes of behavior

@LWinterberg
Copy link
Member

I don't believe this is sufficient. The wavpack documentation states:

CONFIG_MD5_CHECKSUM: specify if you plan to store MD5 signature (the sum is
calculated by the application, NOT by the library)

Simply passing the argument as you did here just sets the flag which promises there will be an MD5 sum in the file (00A3 in my file), but it doesn't actually calculate and write the MD5 sum.

My file for reference
0000 Block (9256 bytes)
0000  Header (8 bytes)
0000   ckID:                                 wvpk
0004   ckSize:                               9248 (0x00002420)
0008  Block Header (24 bytes)
0008   version:                              1040 (0x0410)
000A   track_no:                             0 (0x00)
000B   index_no:                             0 (0x00)
000C   total_samples:                        67867 (0x0001091B)
0010   block_index:                          0 (0x00000000)
0014   block_samples:                        11025 (0x00002B11)
0018   flags:                                347871281 (0x14BC1831) - 44100 (0xAC44)
001C   resolution0:                          Yes
001C   resolution1:                          No
001C   mono:                                 No
001C   hybrid:                               No
001C   joint stereo:                         Yes
001C   cross-channel decorrelation:          Yes
001C   hybrid noise shaping:                 No
001C   floating point data:                  No
001C   extended size integers:               No
001C   hybrid mode parameters control bitrate: No
001C   hybrid noise balanced between channels: No
001C   initial block in sequence:            Yes
001C   final block in sequence:              Yes
001C   amount of data left-shift after decode: No
001C   amount of data left-shift after decode: No
001C   amount of data left-shift after decode: No
001C   amount of data left-shift after decode: No
001C   amount of data left-shift after decode: No
001C   maximum magnitude of decoded data:    Yes
001C   maximum magnitude of decoded data:    Yes
001C   maximum magnitude of decoded data:    Yes
001C   maximum magnitude of decoded data:    Yes
001C   maximum magnitude of decoded data:    No
001C   sampling rate:                        Yes
001C   sampling rate:                        No
001C   sampling rate:                        No
001C   sampling rate:                        Yes
001C   reserved:                             No
001C   reserved:                             Yes
001C   use IIR for negative hybrid noise shaping: No
001C   false stereo:                         No
001C   reserved:                             No
001C   crc:                                  2693033428 (0xA0846DD4)
0020  21 - RIFF header for .wav files (before audio) (82 bytes)
0020   large:                                No
0020   odd_size:                             No
0020   id:                                   33 (0x21) - (6 bits)
0021   word_size:                            40 (0x28)
0022   data:                                 (80 bytes)
0072  02 - decorrelation terms & deltas (8 bytes)
0072   large:                                No
0072   odd_size:                             Yes
0072   id:                                   2 (0x02) - (6 bits)
0073   word_size:                            3 (0x03)
0074   data:                                 (5 bytes)
0079   padding:                              (1 bytes)
007A  03 - initial decorrelation weights (12 bytes)
007A   large:                                No
007A   odd_size:                             No
007A   id:                                   3 (0x03) - (6 bits)
007B   word_size:                            5 (0x05)
007C   data:                                 (10 bytes)
0086  04 - decorrelation sample history (10 bytes)
0086   large:                                No
0086   odd_size:                             No
0086   id:                                   4 (0x04) - (6 bits)
0087   word_size:                            4 (0x04)
0088   data:                                 (8 bytes)
0090  05 - initial entropy variables (14 bytes)
0090   large:                                No
0090   odd_size:                             No
0090   id:                                   5 (0x05) - (6 bits)
0091   word_size:                            6 (0x06)
0092   data:                                 (12 bytes)
009E  25 - some encoding details for info purposes (6 bytes)
009E   large:                                No
009E   odd_size:                             Yes
009E   id:                                   37 (0x25) - (6 bits)
009F   word_size:                            2 (0x02)
00A0   flags:                                524288 (0x00080000)
00A3   fast mode:                            No
00A3   high quality mode:                    No
00A3   very high quality mode:               No
00A3   bitrate is kbps, not bits/sample:     No
00A3   automatic noise shaping:              No
00A3   shaping mode specified:               No
00A3   joint-stereo mode specified:          No
00A3   dynamic noise shaping:                No
00A3   create executable:                    No
00A3   create correction file:               No
00A3   maximize bybrid compression:          No
00A3   calc noise in hybrid mode:            No
00A3   lossy mode:                           No
00A3   extra processing mode:                No
00A3   no wvx stream w/ floats & big ints:   No
00A3   store MD5 signature:                  Yes
00A3   merge blocks of equal redundancy (for lossyWAV): No
00A3   optimize for mono streams posing as stereo: No
00A3   padding:                              (1 bytes)
00A4  2A -  (2 bytes)
00A4   large:                                No
00A4   odd_size:                             No
00A4   id:                                   42 (0x2A) - (6 bits)
00A5   word_size:                            0 (0x00)
00A6  0A - normal compressed audio bitstream (wv file) (9084 bytes)
00A6   large:                                Yes
00A6   odd_size:                             No
00A6   id:                                   10 (0x0A) - (6 bits)
00A7   word_size:                            4540 (0x000011BC)
00AA   data:                                 (9080 bytes)
2422  2F -  (6 bytes)
2422   large:                                No
2422   odd_size:                             No
2422   id:                                   47 (0x2F) - (6 bits)
2423   word_size:                            2 (0x02)
2424   data:                                 (4 bytes)
2428 Block (9314 bytes)
2428  Header (8 bytes)
2428   ckID:                                 wvpk
242C   ckSize:                               9306 (0x0000245A)
2430  Block Header (24 bytes)
2430   version:                              1040 (0x0410)
2432   track_no:                             0 (0x00)
2433   index_no:                             0 (0x00)
2434   total_samples:                        4294967295 (0xFFFFFFFF)
2438   block_index:                          11025 (0x00002B11)
243C   block_samples:                        11025 (0x00002B11)
2440   flags:                                347871281 (0x14BC1831) - 44100 (0xAC44)
2444   resolution0:                          Yes
2444   resolution1:                          No
2444   mono:                                 No
2444   hybrid:                               No
2444   joint stereo:                         Yes
2444   cross-channel decorrelation:          Yes
2444   hybrid noise shaping:                 No
2444   floating point data:                  No
2444   extended size integers:               No
2444   hybrid mode parameters control bitrate: No
2444   hybrid noise balanced between channels: No
2444   initial block in sequence:            Yes
2444   final block in sequence:              Yes
2444   amount of data left-shift after decode: No
2444   amount of data left-shift after decode: No
2444   amount of data left-shift after decode: No
2444   amount of data left-shift after decode: No
2444   amount of data left-shift after decode: No
2444   maximum magnitude of decoded data:    Yes
2444   maximum magnitude of decoded data:    Yes
2444   maximum magnitude of decoded data:    Yes
2444   maximum magnitude of decoded data:    Yes
2444   maximum magnitude of decoded data:    No
2444   sampling rate:                        Yes
2444   sampling rate:                        No
2444   sampling rate:                        No
2444   sampling rate:                        Yes
2444   reserved:                             No
2444   reserved:                             Yes
2444   use IIR for negative hybrid noise shaping: No
2444   false stereo:                         No
2444   reserved:                             No
2444   crc:                                  40797487 (0x026E852F)
2448  02 - decorrelation terms & deltas (8 bytes)
2448   large:                                No
2448   odd_size:                             Yes
2448   id:                                   2 (0x02) - (6 bits)
2449   word_size:                            3 (0x03)
244A   data:                                 (5 bytes)
244F   padding:                              (1 bytes)
2450  03 - initial decorrelation weights (12 bytes)
2450   large:                                No
2450   odd_size:                             No
2450   id:                                   3 (0x03) - (6 bits)
2451   word_size:                            5 (0x05)
2452   data:                                 (10 bytes)
245C  04 - decorrelation sample history (10 bytes)
245C   large:                                No
245C   odd_size:                             No
245C   id:                                   4 (0x04) - (6 bits)
245D   word_size:                            4 (0x04)
245E   data:                                 (8 bytes)
2466  05 - initial entropy variables (14 bytes)
2466   large:                                No
2466   odd_size:                             No
2466   id:                                   5 (0x05) - (6 bits)
2467   word_size:                            6 (0x06)
2468   data:                                 (12 bytes)
2474  2A -  (2 bytes)
2474   large:                                No
2474   odd_size:                             No
2474   id:                                   42 (0x2A) - (6 bits)
2475   word_size:                            0 (0x00)
2476  0A - normal compressed audio bitstream (wv file) (9230 bytes)
2476   large:                                Yes
2476   odd_size:                             No
2476   id:                                   10 (0x0A) - (6 bits)
2477   word_size:                            4613 (0x00001205)
247A   data:                                 (9226 bytes)
4884  2F -  (6 bytes)
4884   large:                                No
4884   odd_size:                             No
4884   id:                                   47 (0x2F) - (6 bits)
4885   word_size:                            2 (0x02)
4886   data:                                 (4 bytes)
488A -----------------------------
488A ---   WavPack, accepted   ---
488A -----------------------------
488A ------------------------------------------------------------
488A ---   WavPack, wants to go to somewhere, but not valid   ---
488A ------------------------------------------------------------
488A ------------------------------------------------
488A ---   WavPack, finished but searching tags   ---
488A ------------------------------------------------
488A ----------------------------
488A ---   WavPack, filling   ---
488A ----------------------------
488A -----------------------------------------------------------------
488A ---   WavPack, wants to finish, but should continue parsing   ---
488A -----------------------------------------------------------------
488A Block (9182 bytes)
488A  Header (8 bytes)
488A   ckID:                                 wvpk
488E   ckSize:                               9174 (0x000023D6)
4892  Block Header (24 bytes)
4892   version:                              1040 (0x0410)
4894   track_no:                             0 (0x00)
4895   index_no:                             0 (0x00)
4896   total_samples:                        4294967295 (0xFFFFFFFF)
489A   block_index:                          22050 (0x00005622)
489E   block_samples:                        11025 (0x00002B11)
48A2   flags:                                347871281 (0x14BC1831) - 44100 (0xAC44)
48A6   resolution0:                          Yes
48A6   resolution1:                          No
48A6   mono:                                 No
48A6   hybrid:                               No
48A6   joint stereo:                         Yes
48A6   cross-channel decorrelation:          Yes
48A6   hybrid noise shaping:                 No
48A6   floating point data:                  No
48A6   extended size integers:               No
48A6   hybrid mode parameters control bitrate: No
48A6   hybrid noise balanced between channels: No
48A6   initial block in sequence:            Yes
48A6   final block in sequence:              Yes
48A6   amount of data left-shift after decode: No
48A6   amount of data left-shift after decode: No
48A6   amount of data left-shift after decode: No
48A6   amount of data left-shift after decode: No
48A6   amount of data left-shift after decode: No
48A6   maximum magnitude of decoded data:    Yes
48A6   maximum magnitude of decoded data:    Yes
48A6   maximum magnitude of decoded data:    Yes
48A6   maximum magnitude of decoded data:    Yes
48A6   maximum magnitude of decoded data:    No
48A6   sampling rate:                        Yes
48A6   sampling rate:                        No
48A6   sampling rate:                        No
48A6   sampling rate:                        Yes
48A6   reserved:                             No
48A6   reserved:                             Yes
48A6   use IIR for negative hybrid noise shaping: No
48A6   false stereo:                         No
48A6   reserved:                             No
48A6   crc:                                  3745802735 (0xDF4469EF)
48AA  02 - decorrelation terms & deltas (8 bytes)
48AA   large:                                No
48AA   odd_size:                             Yes
48AA   id:                                   2 (0x02) - (6 bits)
48AB   word_size:                            3 (0x03)
48AC   data:                                 (5 bytes)
48B1   padding:                              (1 bytes)
48B2  03 - initial decorrelation weights (12 bytes)
48B2   large:                                No
48B2   odd_size:                             No
48B2   id:                                   3 (0x03) - (6 bits)
48B3   word_size:                            5 (0x05)
48B4   data:                                 (10 bytes)
48BE  04 - decorrelation sample history (10 bytes)
48BE   large:                                No
48BE   odd_size:                             No
48BE   id:                                   4 (0x04) - (6 bits)
48BF   word_size:                            4 (0x04)
48C0   data:                                 (8 bytes)
48C8  05 - initial entropy variables (14 bytes)
48C8   large:                                No
48C8   odd_size:                             No
48C8   id:                                   5 (0x05) - (6 bits)
48C9   word_size:                            6 (0x06)
48CA   data:                                 (12 bytes)
48D6  2A -  (2 bytes)
48D6   large:                                No
48D6   odd_size:                             No
48D6   id:                                   42 (0x2A) - (6 bits)
48D7   word_size:                            0 (0x00)
48D8  0A - normal compressed audio bitstream (wv file) (9098 bytes)
48D8   large:                                Yes
48D8   odd_size:                             No
48D8   id:                                   10 (0x0A) - (6 bits)
48D9   word_size:                            4547 (0x000011C3)
48DC   data:                                 (9094 bytes)
6C62  2F -  (6 bytes)
6C62   large:                                No
6C62   odd_size:                             No
6C62   id:                                   47 (0x2F) - (6 bits)
6C63   word_size:                            2 (0x02)
6C64   data:                                 (4 bytes)
6C68 Block (9308 bytes)
6C68  Header (8 bytes)
6C68   ckID:                                 wvpk
6C6C   ckSize:                               9300 (0x00002454)
6C70  Block Header (24 bytes)
6C70   version:                              1040 (0x0410)
6C72   track_no:                             0 (0x00)
6C73   index_no:                             0 (0x00)
6C74   total_samples:                        4294967295 (0xFFFFFFFF)
6C78   block_index:                          33075 (0x00008133)
6C7C   block_samples:                        11025 (0x00002B11)
6C80   flags:                                347871281 (0x14BC1831) - 44100 (0xAC44)
6C84   resolution0:                          Yes
6C84   resolution1:                          No
6C84   mono:                                 No
6C84   hybrid:                               No
6C84   joint stereo:                         Yes
6C84   cross-channel decorrelation:          Yes
6C84   hybrid noise shaping:                 No
6C84   floating point data:                  No
6C84   extended size integers:               No
6C84   hybrid mode parameters control bitrate: No
6C84   hybrid noise balanced between channels: No
6C84   initial block in sequence:            Yes
6C84   final block in sequence:              Yes
6C84   amount of data left-shift after decode: No
6C84   amount of data left-shift after decode: No
6C84   amount of data left-shift after decode: No
6C84   amount of data left-shift after decode: No
6C84   amount of data left-shift after decode: No
6C84   maximum magnitude of decoded data:    Yes
6C84   maximum magnitude of decoded data:    Yes
6C84   maximum magnitude of decoded data:    Yes
6C84   maximum magnitude of decoded data:    Yes
6C84   maximum magnitude of decoded data:    No
6C84   sampling rate:                        Yes
6C84   sampling rate:                        No
6C84   sampling rate:                        No
6C84   sampling rate:                        Yes
6C84   reserved:                             No
6C84   reserved:                             Yes
6C84   use IIR for negative hybrid noise shaping: No
6C84   false stereo:                         No
6C84   reserved:                             No
6C84   crc:                                  2915966258 (0xADCE1D32)
6C88  02 - decorrelation terms & deltas (8 bytes)
6C88   large:                                No
6C88   odd_size:                             Yes
6C88   id:                                   2 (0x02) - (6 bits)
6C89   word_size:                            3 (0x03)
6C8A   data:                                 (5 bytes)
6C8F   padding:                              (1 bytes)
6C90  03 - initial decorrelation weights (12 bytes)
6C90   large:                                No
6C90   odd_size:                             No
6C90   id:                                   3 (0x03) - (6 bits)
6C91   word_size:                            5 (0x05)
6C92   data:                                 (10 bytes)
6C9C  04 - decorrelation sample history (10 bytes)
6C9C   large:                                No
6C9C   odd_size:                             No
6C9C   id:                                   4 (0x04) - (6 bits)
6C9D   word_size:                            4 (0x04)
6C9E   data:                                 (8 bytes)
6CA6  05 - initial entropy variables (14 bytes)
6CA6   large:                                No
6CA6   odd_size:                             No
6CA6   id:                                   5 (0x05) - (6 bits)
6CA7   word_size:                            6 (0x06)
6CA8   data:                                 (12 bytes)
6CB4  2A -  (2 bytes)
6CB4   large:                                No
6CB4   odd_size:                             No
6CB4   id:                                   42 (0x2A) - (6 bits)
6CB5   word_size:                            0 (0x00)
6CB6  0A - normal compressed audio bitstream (wv file) (9224 bytes)
6CB6   large:                                Yes
6CB6   odd_size:                             No
6CB6   id:                                   10 (0x0A) - (6 bits)
6CB7   word_size:                            4610 (0x00001202)
6CBA   data:                                 (9220 bytes)
90BE  2F -  (6 bytes)
90BE   large:                                No
90BE   odd_size:                             No
90BE   id:                                   47 (0x2F) - (6 bits)
90BF   word_size:                            2 (0x02)
90C0   data:                                 (4 bytes)
90C4 Block (9464 bytes)
90C4  Header (8 bytes)
90C4   ckID:                                 wvpk
90C8   ckSize:                               9456 (0x000024F0)
90CC  Block Header (24 bytes)
90CC   version:                              1040 (0x0410)
90CE   track_no:                             0 (0x00)
90CF   index_no:                             0 (0x00)
90D0   total_samples:                        4294967295 (0xFFFFFFFF)
90D4   block_index:                          44100 (0x0000AC44)
90D8   block_samples:                        11025 (0x00002B11)
90DC   flags:                                347871281 (0x14BC1831) - 44100 (0xAC44)
90E0   resolution0:                          Yes
90E0   resolution1:                          No
90E0   mono:                                 No
90E0   hybrid:                               No
90E0   joint stereo:                         Yes
90E0   cross-channel decorrelation:          Yes
90E0   hybrid noise shaping:                 No
90E0   floating point data:                  No
90E0   extended size integers:               No
90E0   hybrid mode parameters control bitrate: No
90E0   hybrid noise balanced between channels: No
90E0   initial block in sequence:            Yes
90E0   final block in sequence:              Yes
90E0   amount of data left-shift after decode: No
90E0   amount of data left-shift after decode: No
90E0   amount of data left-shift after decode: No
90E0   amount of data left-shift after decode: No
90E0   amount of data left-shift after decode: No
90E0   maximum magnitude of decoded data:    Yes
90E0   maximum magnitude of decoded data:    Yes
90E0   maximum magnitude of decoded data:    Yes
90E0   maximum magnitude of decoded data:    Yes
90E0   maximum magnitude of decoded data:    No
90E0   sampling rate:                        Yes
90E0   sampling rate:                        No
90E0   sampling rate:                        No
90E0   sampling rate:                        Yes
90E0   reserved:                             No
90E0   reserved:                             Yes
90E0   use IIR for negative hybrid noise shaping: No
90E0   false stereo:                         No
90E0   reserved:                             No
90E0   crc:                                  214641123 (0x0CCB29E3)
90E4  02 - decorrelation terms & deltas (8 bytes)
90E4   large:                                No
90E4   odd_size:                             Yes
90E4   id:                                   2 (0x02) - (6 bits)
90E5   word_size:                            3 (0x03)
90E6   data:                                 (5 bytes)
90EB   padding:                              (1 bytes)
90EC  03 - initial decorrelation weights (12 bytes)
90EC   large:                                No
90EC   odd_size:                             No
90EC   id:                                   3 (0x03) - (6 bits)
90ED   word_size:                            5 (0x05)
90EE   data:                                 (10 bytes)
90F8  04 - decorrelation sample history (10 bytes)
90F8   large:                                No
90F8   odd_size:                             No
90F8   id:                                   4 (0x04) - (6 bits)
90F9   word_size:                            4 (0x04)
90FA   data:                                 (8 bytes)
9102  05 - initial entropy variables (14 bytes)
9102   large:                                No
9102   odd_size:                             No
9102   id:                                   5 (0x05) - (6 bits)
9103   word_size:                            6 (0x06)
9104   data:                                 (12 bytes)
9110  2A -  (2 bytes)
9110   large:                                No
9110   odd_size:                             No
9110   id:                                   42 (0x2A) - (6 bits)
9111   word_size:                            0 (0x00)
9112  0A - normal compressed audio bitstream (wv file) (9380 bytes)
9112   large:                                Yes
9112   odd_size:                             No
9112   id:                                   10 (0x0A) - (6 bits)
9113   word_size:                            4688 (0x00001250)
9116   data:                                 (9376 bytes)
B5B6  2F -  (6 bytes)
B5B6   large:                                No
B5B6   odd_size:                             No
B5B6   id:                                   47 (0x2F) - (6 bits)
B5B7   word_size:                            2 (0x02)
B5B8   data:                                 (4 bytes)
B5BC Block (5496 bytes)
B5BC  Header (8 bytes)
B5BC   ckID:                                 wvpk
B5C0   ckSize:                               5488 (0x00001570)
B5C4  Block Header (24 bytes)
B5C4   version:                              1040 (0x0410)
B5C6   track_no:                             0 (0x00)
B5C7   index_no:                             0 (0x00)
B5C8   total_samples:                        4294967295 (0xFFFFFFFF)
B5CC   block_index:                          55125 (0x0000D755)
B5D0   block_samples:                        6371 (0x000018E3)
B5D4   flags:                                347871281 (0x14BC1831) - 44100 (0xAC44)
B5D8   resolution0:                          Yes
B5D8   resolution1:                          No
B5D8   mono:                                 No
B5D8   hybrid:                               No
B5D8   joint stereo:                         Yes
B5D8   cross-channel decorrelation:          Yes
B5D8   hybrid noise shaping:                 No
B5D8   floating point data:                  No
B5D8   extended size integers:               No
B5D8   hybrid mode parameters control bitrate: No
B5D8   hybrid noise balanced between channels: No
B5D8   initial block in sequence:            Yes
B5D8   final block in sequence:              Yes
B5D8   amount of data left-shift after decode: No
B5D8   amount of data left-shift after decode: No
B5D8   amount of data left-shift after decode: No
B5D8   amount of data left-shift after decode: No
B5D8   amount of data left-shift after decode: No
B5D8   maximum magnitude of decoded data:    Yes
B5D8   maximum magnitude of decoded data:    Yes
B5D8   maximum magnitude of decoded data:    Yes
B5D8   maximum magnitude of decoded data:    Yes
B5D8   maximum magnitude of decoded data:    No
B5D8   sampling rate:                        Yes
B5D8   sampling rate:                        No
B5D8   sampling rate:                        No
B5D8   sampling rate:                        Yes
B5D8   reserved:                             No
B5D8   reserved:                             Yes
B5D8   use IIR for negative hybrid noise shaping: No
B5D8   false stereo:                         No
B5D8   reserved:                             No
B5D8   crc:                                  789672682 (0x2F1172EA)
B5DC  02 - decorrelation terms & deltas (8 bytes)
B5DC   large:                                No
B5DC   odd_size:                             Yes
B5DC   id:                                   2 (0x02) - (6 bits)
B5DD   word_size:                            3 (0x03)
B5DE   data:                                 (5 bytes)
B5E3   padding:                              (1 bytes)
B5E4  03 - initial decorrelation weights (12 bytes)
B5E4   large:                                No
B5E4   odd_size:                             No
B5E4   id:                                   3 (0x03) - (6 bits)
B5E5   word_size:                            5 (0x05)
B5E6   data:                                 (10 bytes)
B5F0  04 - decorrelation sample history (10 bytes)
B5F0   large:                                No
B5F0   odd_size:                             No
B5F0   id:                                   4 (0x04) - (6 bits)
B5F1   word_size:                            4 (0x04)
B5F2   data:                                 (8 bytes)
B5FA  05 - initial entropy variables (14 bytes)
B5FA   large:                                No
B5FA   odd_size:                             No
B5FA   id:                                   5 (0x05) - (6 bits)
B5FB   word_size:                            6 (0x06)
B5FC   data:                                 (12 bytes)
B608  2A -  (2 bytes)
B608   large:                                No
B608   odd_size:                             No
B608   id:                                   42 (0x2A) - (6 bits)
B609   word_size:                            0 (0x00)
B60A  0A - normal compressed audio bitstream (wv file) (5412 bytes)
B60A   large:                                Yes
B60A   odd_size:                             No
B60A   id:                                   10 (0x0A) - (6 bits)
B60B   word_size:                            2704 (0x00000A90)
B60E   data:                                 (5408 bytes)
CB2E  2F -  (6 bytes)
CB2E   large:                                No
CB2E   odd_size:                             No
CB2E   id:                                   47 (0x2F) - (6 bits)
CB2F   word_size:                            2 (0x02)
CB30   data:                                 (4 bytes)
CB34 Block (5350 bytes)
CB34  Header (8 bytes)
CB34   ckID:                                 wvpk
CB38   ckSize:                               5342 (0x000014DE)
CB3C  Block Header (24 bytes)
CB3C   version:                              1040 (0x0410)
CB3E   track_no:                             0 (0x00)
CB3F   index_no:                             0 (0x00)
CB40   total_samples:                        4294967295 (0xFFFFFFFF)
CB44   block_index:                          61496 (0x0000F038)
CB48   block_samples:                        6371 (0x000018E3)
CB4C   flags:                                347871281 (0x14BC1831) - 44100 (0xAC44)
CB50   resolution0:                          Yes
CB50   resolution1:                          No
CB50   mono:                                 No
CB50   hybrid:                               No
CB50   joint stereo:                         Yes
CB50   cross-channel decorrelation:          Yes
CB50   hybrid noise shaping:                 No
CB50   floating point data:                  No
CB50   extended size integers:               No
CB50   hybrid mode parameters control bitrate: No
CB50   hybrid noise balanced between channels: No
CB50   initial block in sequence:            Yes
CB50   final block in sequence:              Yes
CB50   amount of data left-shift after decode: No
CB50   amount of data left-shift after decode: No
CB50   amount of data left-shift after decode: No
CB50   amount of data left-shift after decode: No
CB50   amount of data left-shift after decode: No
CB50   maximum magnitude of decoded data:    Yes
CB50   maximum magnitude of decoded data:    Yes
CB50   maximum magnitude of decoded data:    Yes
CB50   maximum magnitude of decoded data:    Yes
CB50   maximum magnitude of decoded data:    No
CB50   sampling rate:                        Yes
CB50   sampling rate:                        No
CB50   sampling rate:                        No
CB50   sampling rate:                        Yes
CB50   reserved:                             No
CB50   reserved:                             Yes
CB50   use IIR for negative hybrid noise shaping: No
CB50   false stereo:                         No
CB50   reserved:                             No
CB50   crc:                                  1157266512 (0x44FA7C50)
CB54  02 - decorrelation terms & deltas (8 bytes)
CB54   large:                                No
CB54   odd_size:                             Yes
CB54   id:                                   2 (0x02) - (6 bits)
CB55   word_size:                            3 (0x03)
CB56   data:                                 (5 bytes)
CB5B   padding:                              (1 bytes)
CB5C  03 - initial decorrelation weights (12 bytes)
CB5C   large:                                No
CB5C   odd_size:                             No
CB5C   id:                                   3 (0x03) - (6 bits)
CB5D   word_size:                            5 (0x05)
CB5E   data:                                 (10 bytes)
CB68  04 - decorrelation sample history (10 bytes)
CB68   large:                                No
CB68   odd_size:                             No
CB68   id:                                   4 (0x04) - (6 bits)
CB69   word_size:                            4 (0x04)
CB6A   data:                                 (8 bytes)
CB72  05 - initial entropy variables (14 bytes)
CB72   large:                                No
CB72   odd_size:                             No
CB72   id:                                   5 (0x05) - (6 bits)
CB73   word_size:                            6 (0x06)
CB74   data:                                 (12 bytes)
CB80  2A -  (2 bytes)
CB80   large:                                No
CB80   odd_size:                             No
CB80   id:                                   42 (0x2A) - (6 bits)
CB81   word_size:                            0 (0x00)
CB82  0A - normal compressed audio bitstream (wv file) (5266 bytes)
CB82   large:                                Yes
CB82   odd_size:                             No
CB82   id:                                   10 (0x0A) - (6 bits)
CB83   word_size:                            2631 (0x00000A47)
CB86   data:                                 (5262 bytes)
E014  2F -  (6 bytes)
E014   large:                                No
E014   odd_size:                             No
E014   id:                                   47 (0x2F) - (6 bits)
E015   word_size:                            2 (0x02)
E016   data:                                 (4 bytes)
E01A -----------------------------
E01A ---   WavPack, finished   ---
E01A -----------------------------

@dg-no-9
Copy link
Contributor Author

dg-no-9 commented Feb 19, 2024

@LWinterberg Thanks for note. Yes, Wavpack API seem to require MD5 from the application itself. I see that wavpack/cli has its own md5 for their testing I suppose. Do we have any MD5 library, if not we probably need to add it to support this feature.

@LWinterberg
Copy link
Member

I see an md5 thing in some of the vendored libraries still in lib-src/, but probably not one which wants to be used here. Adding md5 to libraries/lib-crypto might be worthwhile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

WavPack export: include MD5 audio checksum (-m option)
2 participants