28 #if HAVE_CDIO_PARANOIA_H    29 #include <cdio/cdda.h>    30 #include <cdio/paranoia.h>    31 #elif HAVE_CDIO_PARANOIA_PARANOIA_H    32 #include <cdio/paranoia/cdda.h>    33 #include <cdio/paranoia/paranoia.h>    63     s->
drive = cdio_cddap_identify(ctx->
url, CDDA_MESSAGE_LOGIT, &err);
    72     if ((ret = cdio_cddap_open(s->
drive)) < 0 || !s->
drive->opened) {
    77     cdio_cddap_verbose_set(s->
drive, CDDA_MESSAGE_LOGIT, CDDA_MESSAGE_LOGIT);
    89     if (s->
drive->bigendianp)
    95     if (s->
drive->audio_last_sector != CDIO_INVALID_LSN &&
    96         s->
drive->audio_first_sector != CDIO_INVALID_LSN)
    98     else if (s->
drive->tracks)
   102     for (i = 0; i < s->
drive->tracks; i++) {
   104         snprintf(title, 
sizeof(title), 
"track %02d", s->
drive->disc_toc[i].bTrack);
   106                        s->
drive->disc_toc[i+1].dwStartSector, title);
   128     if (err = cdio_cddap_errors(s->
drive)) {
   133     if (err = cdio_cddap_messages(s->
drive)) {
   141     memcpy(pkt->
data, buf, CDIO_CD_FRAMESIZE_RAW);
   149     cdio_cddap_close(s->
drive);
   159     cdio_paranoia_seek(s->
paranoia, timestamp, SEEK_SET);
   164 #define OFFSET(x) offsetof(CDIOContext, x)   165 #define DEC AV_OPT_FLAG_DECODING_PARAM   169         { 
"disable",        
"apply no fixups",                      0,    
AV_OPT_TYPE_CONST, { .i64 = PARANOIA_MODE_DISABLE },   0, 0, 
DEC, 
"paranoia_mode" },
   170         { 
"verify",         
"verify data integrity in overlap area", 0,   
AV_OPT_TYPE_CONST, { .i64 = PARANOIA_MODE_VERIFY },    0, 0, 
DEC, 
"paranoia_mode" },
   171         { 
"overlap",        
"perform overlapped reads",             0,    
AV_OPT_TYPE_CONST, { .i64 = PARANOIA_MODE_OVERLAP },   0, 0, 
DEC, 
"paranoia_mode" },
   172         { 
"neverskip",      
"do not skip failed reads",             0,    
AV_OPT_TYPE_CONST, { .i64 = PARANOIA_MODE_NEVERSKIP }, 0, 0, 
DEC, 
"paranoia_mode" },
   173         { 
"full",           
"apply all recovery modes",             0,    
AV_OPT_TYPE_CONST, { .i64 = PARANOIA_MODE_FULL },      0, 0, 
DEC, 
"paranoia_mode" },
   193     .priv_class     = &libcdio_class,
 
#define LIBAVUTIL_VERSION_INT
 
Memory handling functions. 
 
static int read_seek(AVFormatContext *ctx, int stream_index, int64_t timestamp, int flags)
 
enum AVCodecID codec_id
Specific type of the encoded data (the codec used). 
 
const char * av_default_item_name(void *ptr)
Return the context name. 
 
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
 
AVStream * avformat_new_stream(AVFormatContext *s, const AVCodec *c)
Add a new stream to a media file. 
 
AVStream ** streams
A list of all streams in the file. 
 
#define AVERROR_EOF
End of file. 
 
static av_cold int read_close(AVFormatContext *ctx)
 
#define AV_LOG_VERBOSE
Detailed information. 
 
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values. 
 
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered. 
 
char * url
input or output URL. 
 
enum AVMediaType codec_type
General type of the encoded data. 
 
static av_cold int read_header(AVFormatContext *ctx)
 
static const AVOption options[]
 
static int read_packet(AVFormatContext *ctx, AVPacket *pkt)
 
Describe the class of an AVClass context structure. 
 
int64_t duration
Decoding: duration of the stream, in stream time base. 
 
int sample_rate
Audio only. 
 
cdrom_paranoia_t * paranoia
 
void * priv_data
Format private data. 
 
AVCodecParameters * codecpar
Codec parameters associated with this stream. 
 
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...
 
This structure stores compressed data. 
 
AVInputFormat ff_libcdio_demuxer
 
static const AVClass libcdio_class