/* Default SMF tempo is 120BPM, i.e. half a second per quarter note */
date_Init (&p_sys->pts, ppqn * 2, 1);
- date_Set (&p_sys->pts, 1);
+ date_Set (&p_sys->pts, 0);
p_sys->pulse = 0;
p_sys->ppqn = ppqn;
}
free (payload);
- return 0;
+ return ret;
}
datalen = 0;
break;
}
+ break;
case 0xC0:
case 0xD0:
datalen = 1;
stream_Read (s, block->p_buffer + 2, datalen - 1);
}
- block->i_dts = block->i_pts = date_Get (&p_demux->p_sys->pts);
+ block->i_dts = block->i_pts = VLC_TS_0 + date_Get (&p_demux->p_sys->pts);
es_out_Send (p_demux->out, p_demux->p_sys->es, block);
skip:
if (pulse == UINT64_MAX)
return 0; /* all tracks are done */
- es_out_Control (p_demux->out, ES_OUT_SET_PCR, date_Get (&p_sys->pts));
+ es_out_Control (p_demux->out, ES_OUT_SET_PCR, VLC_TS_0 + date_Get (&p_sys->pts));
for (unsigned i = 0; i < p_sys->trackc; i++)
{
break;
tick->p_buffer[0] = 0xF9;
- tick->i_dts = tick->i_pts = cur_tick++ * 10000;
+ tick->i_dts = tick->i_pts = VLC_TS_0 + cur_tick++ * 10000;
es_out_Send (p_demux->out, p_sys->es, tick);
}