virtual void OnClockTickEvent(const examples::Clock::Time& time) { Json json("{\"object\":\"examples.Clock\",\"callback\":{\"TickEventCallback\":{"); json.Append("\"time\":"); json.Append(time); json.Append("}}}"); OnEventData(json); }
inline AM_ERR CMp4Muxer::OnAVData(CPacket *packet) { if (AM_UNLIKELY(packet->mPacketType & CPacket::AM_PACKET_TYPE_SYNC)) { /*Event pointer equals normal pointer*/ mEventNormalSync = 1; if (mEventMap == 0){ return OnData(packet); } else { return OnEventData(packet); } } /* mEventMap determins calling which function, * mEventNormalSync and mPacketType * determin getting which type packet */ if (mEventMap == 0 && ((mEventNormalSync == 1 && packet->mPacketType == CPacket::AM_PACKET_TYPE_NORMAL) || (mEventNormalSync == 0 && packet->mPacketType == CPacket::AM_PACKET_TYPE_EVENT))) { /*Normal recording*/ return OnData(packet); } else if (mEventMap == 1 && ((mEventNormalSync == 1 && packet->mPacketType == CPacket::AM_PACKET_TYPE_NORMAL) || (mEventNormalSync == 0 && packet->mPacketType == CPacket::AM_PACKET_TYPE_EVENT))) { /*Event recording*/ return OnEventData(packet); } else if (mEventMap == 1 && (packet->mPacketType & CPacket::AM_PACKET_TYPE_STOP)) { /*Switch to normal recording*/ mpMP4Builder->FinishProcess(); mpDataWriter->OnEOF (); mEventMap = 0; mpMP4Builder->InitProcess(); mNextFileBoundary = mLastVideoPTS + mSplittedDuration; return OnData(packet); } else { DEBUG("Discard the packet"); } return ME_OK; }
virtual void OnClockEvent (const examples::Clock::EventId& id, const examples::Clock::EventInfo& info) { Json json("{\"object\":\"examples.Clock\",\"callback\":{\"EventCallback\":{"); json.Append("\"id\":"); json.Append(id); json.Append(","); json.Append("\"info\":"); json.Append(info); json.Append("}}}"); OnEventData(json); }