mirror of
https://github.com/mpv-player/mpv.git
synced 2024-09-20 12:02:23 +02:00
Uninit added
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5813 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
8858781943
commit
8e562a37da
@ -317,6 +317,14 @@ void demux_audio_seek(demuxer_t *demuxer,float rel_seek_secs,int flags){
|
||||
|
||||
}
|
||||
|
||||
void demux_close_audio(demuxer_t* demuxer) {
|
||||
da_priv_t* priv = demuxer->priv;
|
||||
|
||||
if(!priv)
|
||||
return;
|
||||
free(priv);
|
||||
}
|
||||
|
||||
/****************** Options stuff ******************/
|
||||
|
||||
#include "../cfgparser.h"
|
||||
|
@ -81,3 +81,24 @@ void demux_demuxers_seek(demuxer_t *demuxer,float rel_seek_secs,int flags) {
|
||||
demux_seek(priv->sd,pos,1);
|
||||
|
||||
}
|
||||
|
||||
void demux_close_demuxers(demuxer_t* demuxer) {
|
||||
int i;
|
||||
dd_priv_t* priv = demuxer->priv;
|
||||
|
||||
if(priv->vd)
|
||||
free_demuxer(priv->vd);
|
||||
if(priv->ad && priv->ad != priv->vd)
|
||||
free_demuxer(priv->ad);
|
||||
if(priv->sd && priv->sd != priv->vd && priv->sd != priv->ad)
|
||||
free_demuxer(priv->sd);
|
||||
|
||||
free(priv);
|
||||
if(demuxer->info) {
|
||||
for(i=0;demuxer->info[i] != NULL; i++)
|
||||
free(demuxer->info[i]);
|
||||
free(demuxer->info);
|
||||
}
|
||||
free(demuxer);
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,10 @@ demuxer_t* init_avi_with_ogg(demuxer_t* demuxer) {
|
||||
demuxer->audio->id = -2;
|
||||
return demuxer;
|
||||
}
|
||||
|
||||
void demux_close_ogg(demuxer_t* demuxer) {
|
||||
|
||||
}
|
||||
#else
|
||||
|
||||
#include <ogg/ogg.h>
|
||||
@ -695,6 +699,7 @@ demuxer_t* init_avi_with_ogg(demuxer_t* demuxer) {
|
||||
ogg_d = (ogg_demuxer_t*)calloc(1,sizeof(ogg_demuxer_t));
|
||||
ogg_d->num_sub = 1;
|
||||
ogg_d->subs = (ogg_stream_t*)malloc(sizeof(ogg_stream_t));
|
||||
ogg_d->subs[0].vorbis = 1;
|
||||
|
||||
// Init the ogg physical stream
|
||||
ogg_sync_init(&ogg_d->sync);
|
||||
@ -870,4 +875,17 @@ void demux_ogg_seek(demuxer_t *demuxer,float rel_seek_secs,int flags) {
|
||||
|
||||
}
|
||||
|
||||
void demux_close_ogg(demuxer_t* demuxer) {
|
||||
ogg_demuxer_t* ogg_d = demuxer->priv;
|
||||
|
||||
if(!ogg_d)
|
||||
return;
|
||||
|
||||
if(ogg_d->subs)
|
||||
free(ogg_d->subs);
|
||||
if(ogg_d->syncpoints)
|
||||
free(ogg_d->syncpoints);
|
||||
free(ogg_d);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -146,6 +146,9 @@ extern void demux_close_film(demuxer_t* demuxer);
|
||||
extern void demux_close_bmp(demuxer_t* demuxer);
|
||||
extern void demux_close_fli(demuxer_t* demuxer);
|
||||
extern void demux_close_nuv(demuxer_t* demuxer);
|
||||
extern void demux_close_audio(demuxer_t* demuxer);
|
||||
extern void demux_close_ogg(demuxer_t* demuxer);
|
||||
extern void demux_close_demuxers(demuxer_t* demuxer);
|
||||
|
||||
void free_demuxer(demuxer_t *demuxer){
|
||||
int i;
|
||||
@ -169,6 +172,12 @@ void free_demuxer(demuxer_t *demuxer){
|
||||
demux_close_fli(demuxer); break;
|
||||
case DEMUXER_TYPE_NUV:
|
||||
demux_close_nuv(demuxer); break;
|
||||
case DEMUXER_TYPE_AUDIO:
|
||||
demux_close_audio(demuxer); break;
|
||||
case DEMUXER_TYPE_OGG:
|
||||
demux_close_ogg(demuxer); break;
|
||||
case DEMUXER_TYPE_DEMUXERS:
|
||||
demux_close_demuxers(demuxer); return;
|
||||
}
|
||||
// free streams:
|
||||
for(i=0;i<256;i++){
|
||||
|
Loading…
Reference in New Issue
Block a user