mirror of https://github.com/mpv-player/mpv
Fix crash with avisynth audio-only files and take audio length into account when length is queried.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22448 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
9a90222cc9
commit
8849f44f77
|
@ -362,14 +362,17 @@ static demuxer_t* demux_open_avs(demuxer_t* demuxer)
|
|||
static int demux_avs_control(demuxer_t *demuxer, int cmd, void *arg)
|
||||
{
|
||||
sh_video_t *sh_video=demuxer->video->sh;
|
||||
sh_audio_t *sh_audio=demuxer->audio->sh;
|
||||
AVS_T *AVS = demuxer->priv;
|
||||
|
||||
switch(cmd)
|
||||
{
|
||||
case DEMUXER_CTRL_GET_TIME_LENGTH:
|
||||
{
|
||||
if (!AVS->video_info->num_frames) return DEMUXER_CTRL_DONTKNOW;
|
||||
*((double *)arg) = (double)AVS->video_info->num_frames / sh_video->fps;
|
||||
double res = sh_video ? (double)AVS->video_info->num_frames / sh_video->fps : 0;
|
||||
if (sh_audio)
|
||||
res = FFMAX(res, (double)AVS->video_info->num_audio_samples / sh_audio->samplerate);
|
||||
*((double *)arg) = res;
|
||||
return DEMUXER_CTRL_OK;
|
||||
}
|
||||
case DEMUXER_CTRL_GET_PERCENT_POS:
|
||||
|
|
Loading…
Reference in New Issue