Mercurial > mplayer.hg
diff libmpdemux/demuxer.c @ 15720:e999d58f94fd
added AAC ADTS demuxer
author | nicodvb |
---|---|
date | Mon, 13 Jun 2005 20:40:29 +0000 |
parents | 081bee8052cf |
children | 490dff9ee43f |
line wrap: on
line diff
--- a/libmpdemux/demuxer.c Mon Jun 13 20:09:05 2005 +0000 +++ b/libmpdemux/demuxer.c Mon Jun 13 20:40:29 2005 +0000 @@ -157,6 +157,7 @@ extern void demux_close_ty(demuxer_t* demuxer); extern void demux_close_lavf(demuxer_t* demuxer); extern void demux_close_vqf(demuxer_t* demuxer); +extern void demux_close_aac(demuxer_t* demuxer); #ifdef USE_WIN32DLL extern void demux_close_avs(demuxer_t* demuxer); #endif @@ -247,6 +248,8 @@ demux_close_ra(demuxer); break; case DEMUXER_TYPE_VQF: demux_close_vqf(demuxer); break; + case DEMUXER_TYPE_AAC: + demux_close_aac(demuxer); break; #ifdef USE_LIBAVFORMAT case DEMUXER_TYPE_LAVF: demux_close_lavf(demuxer); break; @@ -338,6 +341,7 @@ int demux_ra_fill_buffer(demuxer_t *demux); int demux_vqf_fill_buffer(demuxer_t *demux); +extern int demux_aac_fill_buffer(demuxer_t *demux); extern int demux_demuxers_fill_buffer(demuxer_t *demux,demux_stream_t *ds); extern int demux_ogg_fill_buffer(demuxer_t *d); extern int demux_rawaudio_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds); @@ -405,6 +409,7 @@ return demux_ts_fill_buffer(demux); case DEMUXER_TYPE_REALAUDIO: return demux_ra_fill_buffer(demux); case DEMUXER_TYPE_VQF: return demux_vqf_fill_buffer(demux); + case DEMUXER_TYPE_AAC: return demux_aac_fill_buffer(demux); #ifdef USE_LIBAVFORMAT case DEMUXER_TYPE_LAVF: return demux_lavf_fill_buffer(demux); #endif @@ -612,6 +617,8 @@ int avs_check_file(demuxer_t *demuxer, const char *filename); #endif +extern int demux_aac_open(demuxer_t *demuxer); +extern int demux_aac_probe(demuxer_t *demuxer); extern int vivo_check_file(demuxer_t *demuxer); extern void demux_open_vivo(demuxer_t *demuxer); extern int y4m_check_file(demuxer_t *demuxer); @@ -1095,6 +1102,14 @@ } } #endif +//================Try AAC =============================== +if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_AAC) { + demuxer=new_demuxer(stream,DEMUXER_TYPE_AAC,audio_id,video_id,dvdsub_id); + if(! demux_aac_probe(demuxer)) { + free_demuxer(demuxer); + demuxer = NULL; + } else file_format = DEMUXER_TYPE_AAC; +} //=============== Unknown, exiting... =========================== if(file_format==DEMUXER_TYPE_UNKNOWN || demuxer == NULL){ //mp_msg(MSGT_DEMUXER,MSGL_ERR,MSGTR_FormatNotRecognized); // will be done by mplayer.c after fallback to playlist-parsing @@ -1302,6 +1317,10 @@ if (!demux_open_vqf(demuxer)) return NULL; break; } + case DEMUXER_TYPE_AAC: { + if (!demux_aac_open(demuxer)) return NULL; + break; + } #ifdef USE_LIBAVFORMAT case DEMUXER_TYPE_LAVF: { if (!demux_open_lavf(demuxer)) return NULL; @@ -1431,6 +1450,7 @@ extern void demux_xmms_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); extern void demux_mkv_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); extern void demux_seek_vqf(demuxer_t *demuxer,float rel_seek_secs,int flags); +extern void demux_aac_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); int demux_seek(demuxer_t *demuxer,float rel_seek_secs,int flags){ demux_stream_t *d_audio=demuxer->audio; @@ -1539,6 +1559,8 @@ case DEMUXER_TYPE_AVS: demux_seek_avs(demuxer,rel_seek_secs,flags); break; #endif + case DEMUXER_TYPE_AAC: + demux_aac_seek(demuxer,rel_seek_secs,flags); break; } // switch(demuxer->file_format)