comparison libmpdemux/demuxer.c @ 15720:e999d58f94fd

added AAC ADTS demuxer
author nicodvb
date Mon, 13 Jun 2005 20:40:29 +0000
parents 081bee8052cf
children 490dff9ee43f
comparison
equal deleted inserted replaced
15719:e040252b8370 15720:e999d58f94fd
155 extern void demux_close_mkv(demuxer_t* demuxer); 155 extern void demux_close_mkv(demuxer_t* demuxer);
156 extern void demux_close_ra(demuxer_t* demuxer); 156 extern void demux_close_ra(demuxer_t* demuxer);
157 extern void demux_close_ty(demuxer_t* demuxer); 157 extern void demux_close_ty(demuxer_t* demuxer);
158 extern void demux_close_lavf(demuxer_t* demuxer); 158 extern void demux_close_lavf(demuxer_t* demuxer);
159 extern void demux_close_vqf(demuxer_t* demuxer); 159 extern void demux_close_vqf(demuxer_t* demuxer);
160 extern void demux_close_aac(demuxer_t* demuxer);
160 #ifdef USE_WIN32DLL 161 #ifdef USE_WIN32DLL
161 extern void demux_close_avs(demuxer_t* demuxer); 162 extern void demux_close_avs(demuxer_t* demuxer);
162 #endif 163 #endif
163 164
164 165
245 demux_close_mpg(demuxer); break; 246 demux_close_mpg(demuxer); break;
246 case DEMUXER_TYPE_REALAUDIO: 247 case DEMUXER_TYPE_REALAUDIO:
247 demux_close_ra(demuxer); break; 248 demux_close_ra(demuxer); break;
248 case DEMUXER_TYPE_VQF: 249 case DEMUXER_TYPE_VQF:
249 demux_close_vqf(demuxer); break; 250 demux_close_vqf(demuxer); break;
251 case DEMUXER_TYPE_AAC:
252 demux_close_aac(demuxer); break;
250 #ifdef USE_LIBAVFORMAT 253 #ifdef USE_LIBAVFORMAT
251 case DEMUXER_TYPE_LAVF: 254 case DEMUXER_TYPE_LAVF:
252 demux_close_lavf(demuxer); break; 255 demux_close_lavf(demuxer); break;
253 #endif 256 #endif
254 #ifdef USE_WIN32DLL 257 #ifdef USE_WIN32DLL
336 int demux_gif_fill_buffer(demuxer_t *demux); 339 int demux_gif_fill_buffer(demuxer_t *demux);
337 int demux_ts_fill_buffer(demuxer_t *demux); 340 int demux_ts_fill_buffer(demuxer_t *demux);
338 int demux_ra_fill_buffer(demuxer_t *demux); 341 int demux_ra_fill_buffer(demuxer_t *demux);
339 int demux_vqf_fill_buffer(demuxer_t *demux); 342 int demux_vqf_fill_buffer(demuxer_t *demux);
340 343
344 extern int demux_aac_fill_buffer(demuxer_t *demux);
341 extern int demux_demuxers_fill_buffer(demuxer_t *demux,demux_stream_t *ds); 345 extern int demux_demuxers_fill_buffer(demuxer_t *demux,demux_stream_t *ds);
342 extern int demux_ogg_fill_buffer(demuxer_t *d); 346 extern int demux_ogg_fill_buffer(demuxer_t *d);
343 extern int demux_rawaudio_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds); 347 extern int demux_rawaudio_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds);
344 extern int demux_rawvideo_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds); 348 extern int demux_rawvideo_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds);
345 extern int demux_smjpeg_fill_buffer(demuxer_t* demux); 349 extern int demux_smjpeg_fill_buffer(demuxer_t* demux);
403 case DEMUXER_TYPE_LMLM4: return demux_lmlm4_fill_buffer(demux); 407 case DEMUXER_TYPE_LMLM4: return demux_lmlm4_fill_buffer(demux);
404 case DEMUXER_TYPE_MPEG_TS: 408 case DEMUXER_TYPE_MPEG_TS:
405 return demux_ts_fill_buffer(demux); 409 return demux_ts_fill_buffer(demux);
406 case DEMUXER_TYPE_REALAUDIO: return demux_ra_fill_buffer(demux); 410 case DEMUXER_TYPE_REALAUDIO: return demux_ra_fill_buffer(demux);
407 case DEMUXER_TYPE_VQF: return demux_vqf_fill_buffer(demux); 411 case DEMUXER_TYPE_VQF: return demux_vqf_fill_buffer(demux);
412 case DEMUXER_TYPE_AAC: return demux_aac_fill_buffer(demux);
408 #ifdef USE_LIBAVFORMAT 413 #ifdef USE_LIBAVFORMAT
409 case DEMUXER_TYPE_LAVF: return demux_lavf_fill_buffer(demux); 414 case DEMUXER_TYPE_LAVF: return demux_lavf_fill_buffer(demux);
410 #endif 415 #endif
411 #ifdef USE_WIN32DLL 416 #ifdef USE_WIN32DLL
412 case DEMUXER_TYPE_AVS: return demux_avs_fill_buffer(demux); 417 case DEMUXER_TYPE_AVS: return demux_avs_fill_buffer(demux);
610 615
611 #ifdef USE_WIN32DLL 616 #ifdef USE_WIN32DLL
612 int avs_check_file(demuxer_t *demuxer, const char *filename); 617 int avs_check_file(demuxer_t *demuxer, const char *filename);
613 #endif 618 #endif
614 619
620 extern int demux_aac_open(demuxer_t *demuxer);
621 extern int demux_aac_probe(demuxer_t *demuxer);
615 extern int vivo_check_file(demuxer_t *demuxer); 622 extern int vivo_check_file(demuxer_t *demuxer);
616 extern void demux_open_vivo(demuxer_t *demuxer); 623 extern void demux_open_vivo(demuxer_t *demuxer);
617 extern int y4m_check_file(demuxer_t *demuxer); 624 extern int y4m_check_file(demuxer_t *demuxer);
618 extern void demux_open_y4m(demuxer_t *demuxer); 625 extern void demux_open_y4m(demuxer_t *demuxer);
619 extern int roq_check_file(demuxer_t *demuxer); 626 extern int roq_check_file(demuxer_t *demuxer);
1093 free_demuxer(demuxer); 1100 free_demuxer(demuxer);
1094 demuxer = NULL; 1101 demuxer = NULL;
1095 } 1102 }
1096 } 1103 }
1097 #endif 1104 #endif
1105 //================Try AAC ===============================
1106 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_AAC) {
1107 demuxer=new_demuxer(stream,DEMUXER_TYPE_AAC,audio_id,video_id,dvdsub_id);
1108 if(! demux_aac_probe(demuxer)) {
1109 free_demuxer(demuxer);
1110 demuxer = NULL;
1111 } else file_format = DEMUXER_TYPE_AAC;
1112 }
1098 //=============== Unknown, exiting... =========================== 1113 //=============== Unknown, exiting... ===========================
1099 if(file_format==DEMUXER_TYPE_UNKNOWN || demuxer == NULL){ 1114 if(file_format==DEMUXER_TYPE_UNKNOWN || demuxer == NULL){
1100 //mp_msg(MSGT_DEMUXER,MSGL_ERR,MSGTR_FormatNotRecognized); // will be done by mplayer.c after fallback to playlist-parsing 1115 //mp_msg(MSGT_DEMUXER,MSGL_ERR,MSGTR_FormatNotRecognized); // will be done by mplayer.c after fallback to playlist-parsing
1101 return NULL; 1116 return NULL;
1102 } 1117 }
1300 } 1315 }
1301 case DEMUXER_TYPE_VQF: { 1316 case DEMUXER_TYPE_VQF: {
1302 if (!demux_open_vqf(demuxer)) return NULL; 1317 if (!demux_open_vqf(demuxer)) return NULL;
1303 break; 1318 break;
1304 } 1319 }
1320 case DEMUXER_TYPE_AAC: {
1321 if (!demux_aac_open(demuxer)) return NULL;
1322 break;
1323 }
1305 #ifdef USE_LIBAVFORMAT 1324 #ifdef USE_LIBAVFORMAT
1306 case DEMUXER_TYPE_LAVF: { 1325 case DEMUXER_TYPE_LAVF: {
1307 if (!demux_open_lavf(demuxer)) return NULL; 1326 if (!demux_open_lavf(demuxer)) return NULL;
1308 break; 1327 break;
1309 } 1328 }
1429 extern void demux_rawaudio_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); 1448 extern void demux_rawaudio_seek(demuxer_t *demuxer,float rel_seek_secs,int flags);
1430 extern void demux_rawvideo_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); 1449 extern void demux_rawvideo_seek(demuxer_t *demuxer,float rel_seek_secs,int flags);
1431 extern void demux_xmms_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); 1450 extern void demux_xmms_seek(demuxer_t *demuxer,float rel_seek_secs,int flags);
1432 extern void demux_mkv_seek(demuxer_t *demuxer,float rel_seek_secs,int flags); 1451 extern void demux_mkv_seek(demuxer_t *demuxer,float rel_seek_secs,int flags);
1433 extern void demux_seek_vqf(demuxer_t *demuxer,float rel_seek_secs,int flags); 1452 extern void demux_seek_vqf(demuxer_t *demuxer,float rel_seek_secs,int flags);
1453 extern void demux_aac_seek(demuxer_t *demuxer,float rel_seek_secs,int flags);
1434 1454
1435 int demux_seek(demuxer_t *demuxer,float rel_seek_secs,int flags){ 1455 int demux_seek(demuxer_t *demuxer,float rel_seek_secs,int flags){
1436 demux_stream_t *d_audio=demuxer->audio; 1456 demux_stream_t *d_audio=demuxer->audio;
1437 demux_stream_t *d_video=demuxer->video; 1457 demux_stream_t *d_video=demuxer->video;
1438 sh_audio_t *sh_audio=d_audio->sh; 1458 sh_audio_t *sh_audio=d_audio->sh;
1537 demux_seek_vqf(demuxer,rel_seek_secs,flags); break; 1557 demux_seek_vqf(demuxer,rel_seek_secs,flags); break;
1538 #ifdef USE_WIN32DLL 1558 #ifdef USE_WIN32DLL
1539 case DEMUXER_TYPE_AVS: 1559 case DEMUXER_TYPE_AVS:
1540 demux_seek_avs(demuxer,rel_seek_secs,flags); break; 1560 demux_seek_avs(demuxer,rel_seek_secs,flags); break;
1541 #endif 1561 #endif
1562 case DEMUXER_TYPE_AAC:
1563 demux_aac_seek(demuxer,rel_seek_secs,flags); break;
1542 1564
1543 } // switch(demuxer->file_format) 1565 } // switch(demuxer->file_format)
1544 1566
1545 return 1; 1567 return 1;
1546 } 1568 }