chienbv / sacd-ripper

Automatically exported from code.google.com/p/sacd-ripper
GNU General Public License v2.0
0 stars 0 forks source link

Wrong order of master album infotmation attributes. #24

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Very likely it shold be like this:

typedef struct
{
    char     id[8];                           // SACDText
    uint8_t  reserved[8];
    uint16_t album_title_position;
    uint16_t album_artist_position;
    uint16_t album_publisher_position;
    uint16_t album_copyright_position;
    uint16_t album_title_phonetic_position;
    uint16_t album_artist_phonetic_position;
    uint16_t album_publisher_phonetic_position;
    uint16_t album_copyright_phonetic_position;
    uint16_t disc_title_position;
    uint16_t disc_artist_position;
    uint16_t disc_publisher_position;
    uint16_t disc_copyright_position;
    uint16_t disc_title_phonetic_position;
    uint16_t disc_artist_phonetic_position;
    uint16_t disc_publisher_phonetic_position;
    uint16_t disc_copyright_phonetic_position;
    uint8_t  data[2000];
}
master_sacd_text_t;

Original issue reported on code.google.com by Maxim.An...@gmail.com on 24 Aug 2011 at 12:19

GoogleCodeExporter commented 9 years ago
i uploaded sample of SACD TOC chunk here:

http://www.megaupload.com/?d=DF2WDVE6

it's obtained from SACD disc directly without any use of 'sacd-ripper' or other 
software.

so, because there is doubt which position (offset) is what let's use the 
following definition:

typedef struct
{
    char     id[8];                           // SACDText
    uint8_t  reserved[8];
    uint16_t position01;
    uint16_t position02;
    uint16_t position03;
    uint16_t position04;
    uint16_t position05;
    uint16_t position06;
    uint16_t position07;
    uint16_t position08;
    uint16_t position09;
    uint16_t position10;
    uint16_t position11;
    uint16_t position12;
    uint16_t position13;
    uint16_t position14;
    uint16_t position15;
    uint16_t position16;
    uint8_t  data[2000];
}
master_sacd_text_t;

and now looking at the sample TOC chunk:

"position01" points to "MAHLER Symphony No 3"
"position02" points to "Valery Gergiev, London Symphony Orchestra"
"position03" points to "(p) 2008 London Symphony Orchestra"
"position04" points to 0xA9 + " 2008 London Symphony Orchestra", where the 
leading 0xA9 is the ASCII code for "copyright" symbol

"position05", "position06", "position07", "position08" point to NULL

"position09" points to "MAHLER Symphony No 3"
"position10" points to "Valery Gergiev, London Symphony Orchestra"
"position11" points to "(p) 2008 London Symphony Orchestra"
"position12" points to 0xA9 + " 2008 London Symphony Orchestra", where the 
leading 0xA9 is the ASCII code for "copyright" symbol

"position13", "position14", "position15", "position16" point to NULL

so, at least based on that example, i agree with you and it seems definition in 
'scarletbook.h' of 'sacd-ripper' source code is wrong.

Original comment by sheridan...@hotmail.com on 26 Aug 2011 at 6:41

GoogleCodeExporter commented 9 years ago
This issue was closed by revision r274.

Original comment by mr_wic...@hotmail.com on 27 Aug 2011 at 3:11