static demuxer_t* demux_open_hack_avi(demuxer_t *demuxer) { struct MPOpts *opts = demuxer->opts; sh_audio_t* sh_a; demuxer = demux_open_avi(demuxer); if(!demuxer) return NULL; // failed to open sh_a = demuxer->audio->sh; if(demuxer->audio->id != -2 && sh_a) { #ifdef CONFIG_OGGVORBIS // support for Ogg-in-AVI: if(sh_a->format == 0xFFFE) demuxer = init_avi_with_ogg(demuxer); else if(sh_a->format == 0x674F) { stream_t* s; demuxer_t *od; s = new_ds_stream(demuxer->audio); od = new_demuxer(opts, s,DEMUXER_TYPE_OGG,-1,-2,-2,NULL); if(!demux_ogg_open(od)) { mp_tmsg( MSGT_DEMUXER,MSGL_ERR,"Unable to open the Ogg demuxer.\n"); free_stream(s); demuxer->audio->id = -2; } else demuxer = new_demuxers_demuxer(demuxer,od,demuxer); } #endif } return demuxer; }
static demuxer_t* demux_open_hack_avi(demuxer_t *demuxer) { sh_audio_t* sh_a; demuxer = demux_open_avi(demuxer); if(!demuxer) return NULL; // failed to open sh_a = demuxer->audio->sh; /*demux_avi no do parsing in for audio, then here will tell decodec to do paring before decodeced data*/ if(sh_a) sh_a->need_parsing = 1; //add by gysun if(demuxer->audio->id != -2 && sh_a) { #ifdef CONFIG_OGGVORBIS // support for Ogg-in-AVI: if(sh_a->format == 0xFFFE) demuxer = init_avi_with_ogg(demuxer); else if(sh_a->format == 0x674F) { stream_t* s; demuxer_t *od; s = new_ds_stream(demuxer->audio); od = new_demuxer(s,DEMUXER_TYPE_OGG,-1,-2,-2,NULL); if(!demux_ogg_open(od)) { mp_msg( MSGT_DEMUXER,MSGL_ERR,MSGTR_ErrorOpeningOGGDemuxer); free_stream(s); demuxer->audio->id = -2; } else demuxer = new_demuxers_demuxer(demuxer,od,demuxer); } #endif } return demuxer; }