}
bool
-RTMP_ConnectStream(RTMP *r, double seekTime)
+RTMP_ConnectStream(RTMP *r, int seekTime)
{
RTMPPacket packet = { 0 };
- if (seekTime >= -2.0)
+
+ /* seekTime was already set by SetupStream / SetupURL.
+ * This is only needed by ReconnectStream.
+ */
+ if (seekTime > 0)
r->Link.seekTime = seekTime;
r->m_mediaChannel = 0;
}
bool
-RTMP_ReconnectStream(RTMP *r, double seekTime)
+RTMP_ReconnectStream(RTMP *r, int seekTime)
{
RTMP_DeleteStream(r);
SAVC(pause);
bool
-RTMP_SendPause(RTMP *r, bool DoPause, double dTime)
+RTMP_SendPause(RTMP *r, bool DoPause, int dTime)
{
RTMPPacket packet;
char pbuf[256], *pend = pbuf + sizeof(pbuf);
SAVC(seek);
bool
-RTMP_SendSeek(RTMP *r, double dTime)
+RTMP_SendSeek(RTMP *r, int dTime)
{
RTMPPacket packet;
char pbuf[256], *pend = pbuf + sizeof(pbuf);
enc = AMF_EncodeString(enc, pend, &av_seek);
enc = AMF_EncodeNumber(enc, pend, ++r->m_numInvokes);
*enc++ = AMF_NULL;
- enc = AMF_EncodeNumber(enc, pend, dTime);
+ enc = AMF_EncodeNumber(enc, pend, (double)dTime);
packet.m_nBodySize = enc - packet.m_body;
double RTMP_GetDuration(RTMP *r);
bool RTMP_ToggleStream(RTMP *r);
- bool RTMP_ConnectStream(RTMP *r, double seekTime);
- bool RTMP_ReconnectStream(RTMP *r, double seekTime);
+ bool RTMP_ConnectStream(RTMP *r, int seekTime);
+ bool RTMP_ReconnectStream(RTMP *r, int seekTime);
void RTMP_DeleteStream(RTMP *r);
int RTMP_GetNextMediaPacket(RTMP *r, RTMPPacket *packet);
int RTMP_ClientPacket(RTMP *r, RTMPPacket *packet);
bool RTMP_SendCtrl(RTMP *r, short nType, unsigned int nObject,
unsigned int nTime);
- bool RTMP_SendPause(RTMP *r, bool DoPause, double dTime);
+ bool RTMP_SendPause(RTMP *r, bool DoPause, int dTime);
bool RTMP_FindFirstMatchingProperty(AMFObject *obj, const AVal *name,
AMFObjectProperty * p);
int RTMPSockBuf_Close(RTMPSockBuf *sb);
bool RTMP_SendCreateStream(RTMP *r);
- bool RTMP_SendSeek(RTMP *r, double dTime);
+ bool RTMP_SendSeek(RTMP *r, int dTime);
bool RTMP_SendServerBW(RTMP *r);
bool RTMP_SendClientBW(RTMP *r);
void RTMP_DropRequest(RTMP *r, int i, bool freeit);