Mercurial > mplayer.hg
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 } |