Mercurial > mplayer.hg
comparison libmpdemux/demux_ogg.c @ 11577:0645c0fc22bf
1000l
author | alex |
---|---|
date | Mon, 08 Dec 2003 11:11:32 +0000 |
parents | 2c9e2da67647 |
children | 5c55de920ac0 |
comparison
equal
deleted
inserted
replaced
11576:2c9e2da67647 | 11577:0645c0fc22bf |
---|---|
1211 | 1211 |
1212 int demux_ogg_control(demuxer_t *demuxer,int cmd, void *arg){ | 1212 int demux_ogg_control(demuxer_t *demuxer,int cmd, void *arg){ |
1213 ogg_demuxer_t* ogg_d = demuxer->priv; | 1213 ogg_demuxer_t* ogg_d = demuxer->priv; |
1214 ogg_stream_t* os; | 1214 ogg_stream_t* os; |
1215 float rate; | 1215 float rate; |
1216 | |
1216 if(demuxer->video->id >= 0) { | 1217 if(demuxer->video->id >= 0) { |
1217 os = &ogg_d->subs[demuxer->video->id]; | 1218 os = &ogg_d->subs[demuxer->video->id]; |
1218 rate = os->samplerate; | 1219 rate = os->samplerate; |
1219 } else { | 1220 } else { |
1220 os = &ogg_d->subs[demuxer->audio->id]; | 1221 os = &ogg_d->subs[demuxer->audio->id]; |
1223 | 1224 |
1224 | 1225 |
1225 switch(cmd) { | 1226 switch(cmd) { |
1226 case DEMUXER_CTRL_GET_TIME_LENGTH: | 1227 case DEMUXER_CTRL_GET_TIME_LENGTH: |
1227 if (ogg_d->final_granulepos<=0) return DEMUXER_CTRL_DONTKNOW; | 1228 if (ogg_d->final_granulepos<=0) return DEMUXER_CTRL_DONTKNOW; |
1228 unsigned long length = ogg_d->final_granulepos / rate; | 1229 *((unsigned long *)arg)=ogg_d->final_granulepos / rate; |
1229 *((unsigned long *)arg)=length; | |
1230 return DEMUXER_CTRL_GUESS; | 1230 return DEMUXER_CTRL_GUESS; |
1231 | 1231 |
1232 case DEMUXER_CTRL_GET_PERCENT_POS: | 1232 case DEMUXER_CTRL_GET_PERCENT_POS: |
1233 if (ogg_d->final_granulepos<=0) return DEMUXER_CTRL_DONTKNOW; | 1233 if (ogg_d->final_granulepos<=0) return DEMUXER_CTRL_DONTKNOW; |
1234 *((int *)arg)=(int)( (os->lastpos*100) / ogg_d->final_granulepos); | 1234 *((int *)arg)=(int)( (os->lastpos*100) / ogg_d->final_granulepos); |