libcdio-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Libcdio-help] 44 bit difference


From: Cuke
Subject: [Libcdio-help] 44 bit difference
Date: Wed, 15 Apr 2009 16:39:35 -0700 (PDT)

my extracted audio track differ from the cd-paranoia's one of 44bit.My track
isn't played either..this is the i use for extraction. the qdebug() function
is just for display debug info in qt project. where i'm mistaking?

cdrom_drive_t *d = NULL;
    char **ppsz_cd_drives;

    ppsz_cd_drives = cdio_get_devices_with_cap(NULL, CDIO_FS_AUDIO, false);

    if (ppsz_cd_drives) {
        d=cdda_identify(*ppsz_cd_drives, 1, NULL);
    }else{
        qDebug() << "Unable to access to a cdrom with audio cd in it";
        return;
    }

    cdio_free_device_list(ppsz_cd_drives);

    if ( !d ) {
        qDebug() << "Unable to identify audio CD disc.\n";
        return;
    }

    cdda_verbose_set(d, CDDA_MESSAGE_PRINTIT, CDDA_MESSAGE_PRINTIT);

    if ( 0 != cdda_open(d) ) {
        qDebug() << "Unable to open disc.\n";
        return;
    }

    cdrom_paranoia_t* p = cdio_paranoia_init(d);
    lsn_t i_first_lsn = cdda_disc_firstsector(d);

    if ( -1 == i_first_lsn ) {
      qDebug() << "Trouble getting starting LSN\n";
    }
    else {
        lsn_t   i_cursor;
        track_t i_track    = cdda_sector_gettrack(d, i_first_lsn);
        lsn_t   i_last_lsn = cdda_track_lastsector(d, i_track);

        //paranoia_modeset(p, PARANOIA_MODE_FULL^PARANOIA_MODE_NEVERSKIP);
        paranoia_seek(p, i_first_lsn, SEEK_SET);

        qDebug() << i_first_lsn << "-" << i_last_lsn;

        QFile file(tr("outtrack.wav"));
        if(!file.open(QIODevice::WriteOnly|QIODevice::Append)){
            qDebug() << "impossibile aprire il file di scrittura";
        }
        for ( i_cursor = i_first_lsn; i_cursor <= i_last_lsn; i_cursor ++) {

            int16_t *p_readbuf=paranoia_read(p, NULL);
            char *psz_err=cdda_errors(d);
            char *psz_mes=cdda_messages(d);

            if (psz_mes || psz_err)
                qDebug() << psz_err << psz_mes;
            if (psz_err) free(psz_err);
            if (psz_mes) free(psz_mes);
            if( !p_readbuf ) {
                qDebug() << "paranoia read error. Stopping.\n";
                break;
            }

            char *temp= (char*) p_readbuf;
            file.write(temp,(qint64)CDIO_CD_FRAMESIZE_RAW);
        }
        file.close();


        qDebug() << i_first_lsn << "\t" << i_last_lsn ;
        qDebug() << cdda_track_firstsector(d,i_track);
    }
    paranoia_free(p);

    cdda_close(d);

    return; 
-- 
View this message in context: 
http://www.nabble.com/44-bit-difference-tp23065170p23065170.html
Sent from the Gnu - Libcdio - Help mailing list archive at Nabble.com.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]