HKVideoDecoder::HKVideoDecoder() { m_lPort = s_portManager.createPort( (unsigned long)this ); Hik_PlayM4_SetStreamOpenMode( m_lPort, STREAME_REALTIME ); byte* pData = PortManager::s_data; Hik_PlayM4_OpenStream( m_lPort, PortManager::s_data, 40, 200000 ); Hik_PlayM4_SetOverlayMode( m_lPort, FALSE, RGB(255,0,255) ); Hik_PlayM4_SetDisplayCallBack( m_lPort, &HikDisplayCB ); Hik_PlayM4_Play( m_lPort, NULL ); }
void HKVideoDecoder::reset() { #if 0 Hik_PlayM4_Stop( m_lPort ); Hik_PlayM4_CloseStream( m_lPort ); m_lPort = ::InterlockedExchangeAdd( &s_lNextPort, 2 ); Hik_PlayM4_SetDisplayCallBack( m_lPort, &HikDisplayCB ); Hik_PlayM4_Play( m_lPort, NULL ); #else Hik_PlayM4_ResetBuffer( m_lPort, BUF_VIDEO_SRC ); Hik_PlayM4_ResetBuffer( m_lPort, BUF_VIDEO_RENDER ); #endif }
int OpenFile(char * fn, int pos) { PLAYRECT rect; rect.x=0;rect.y=0; rect.uWidth=352;rect.uHeight=288; CHECK(Hik_PlayM4_OpenFile(0, fn), -2); CHECK(Hik_PlayM4_SetDecCallBack(0, DecCallBack), -3); CHECK(Hik_PlayM4_SetFileEndCallBack(0, FileEndCallBack), -4); CHECK(Hik_PlayM4_Play(0, rect), -5); SeekTo(pos); return 0; }
int OpenFile(char * fn, int pos) { printf("the fn in openfile is %s\n", fn); PLAYRECT rect; rect.x=0;rect.y=0; rect.uWidth=704;rect.uHeight=576; CHECK(Hik_PlayM4_OpenFile(0, fn), -2); CHECK(Hik_PlayM4_SetDecCallBack(0, DecCallBack), -3); CHECK(Hik_PlayM4_SetFileEndCallBack(0, FileEndCallBack), -4); CHECK(Hik_PlayM4_Play(0, rect), -5); SeekTo(pos); return 0; }
int OpenStream(int fd, ssize_t (*reader)(int fd, void *buf, size_t count)) { PLAYRECT rect; rect.x=0;rect.y=0; rect.uWidth=352;rect.uHeight=288; CHECK(Hik_PlayM4_OpenStream(0, mp4head, 40, SOURCE_BUF_MIN), -1); CHECK(Hik_PlayM4_SetDecCallBack(0, DecCallBack), -1); CHECK(Hik_PlayM4_Play(0, rect), -1); netfd=fd; netread=reader; CHECK(pthread_create(&NetPoller, NULL, netPoller, NULL), -1); CHECK(pthread_detach(NetPoller), -2); return 0; }