Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
 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);
 }