42 MediaErrorEventPtr ev = std::dynamic_pointer_cast<MediaErrorEvent>(e);
43 event.data.mediaError.failure = ev->getFailure();
44 event.data.mediaError.code = ev->getCode();
45 event.data.mediaError.description = ev->getDescription().c_str();
46 event.data.mediaError.shouldRetry = ev->shouldRetry();
47 if(-1 != ev->getClass())
49 event.data.mediaError.classCode = ev->getClass();
50 event.data.mediaError.reasonCode = ev->getReason();
51 event.data.mediaError.shouldRetry = ev->getBusinessStatus();
57 SpeedChangedEventPtr ev = std::dynamic_pointer_cast<SpeedChangedEvent>(e);
58 event.data.speedChanged.rate = ev->getRate();
63 ProgressEventPtr ev = std::dynamic_pointer_cast<ProgressEvent>(e);
64 event.data.progress.durationMiliseconds = ev->getDuration();
65 event.data.progress.positionMiliseconds = ev->getPosition();
66 event.data.progress.playbackSpeed = ev->getSpeed();
67 event.data.progress.startMiliseconds = ev->getStart();
68 event.data.progress.endMiliseconds = ev->getEnd();
69 event.data.progress.videoPTS = ev->getPTS();
70 event.data.progress.videoBufferedMiliseconds = ev->getBufferedDuration();
71 event.data.progress.timecode = ev->getSEITimeCode();
76 CCHandleEventPtr ev = std::dynamic_pointer_cast<CCHandleEvent>(e);
77 event.data.ccHandle.handle = ev->getCCHandle();
82 MediaMetadataEventPtr ev = std::dynamic_pointer_cast<MediaMetadataEvent>(e);
83 event.data.metadata.durationMiliseconds = ev->getDuration();
84 event.data.metadata.languageCount = ev->getLanguagesCount();
85 event.data.metadata.bitrateCount = ev->getBitratesCount();
86 event.data.metadata.supportedSpeedCount = ev->getSupportedSpeedCount();
87 event.data.metadata.width = ev->getWidth();
88 event.data.metadata.height = ev->getHeight();
89 event.data.metadata.hasDrm = ev->hasDrm();
90 event.data.metadata.programStartTime = ev->getProgramStartTime();
92 std::vector<std::string> languages = ev->getLanguages();
93 for (
int i = 0; i <
event.data.metadata.languageCount && i < MAX_LANGUAGE_COUNT; i++)
95 memset(event.data.metadata.languages[i],
'\0', MAX_LANGUAGE_TAG_LENGTH);
96 strncpy(event.data.metadata.languages[i], languages[i].c_str(), MAX_LANGUAGE_TAG_LENGTH - 1);
98 std::vector<long> bitrates = ev->getBitrates();
99 for(
int i = 0; i <
event.data.metadata.bitrateCount && i < MAX_BITRATE_COUNT; i++)
101 event.data.metadata.bitrates[i] = bitrates[i];
103 std::vector<float> speeds = ev->getSupportedSpeeds();
104 for(
int i = 0; i <
event.data.metadata.supportedSpeedCount && i < MAX_SUPPORTED_SPEED_COUNT; i++)
106 event.data.metadata.supportedSpeeds[i] = speeds[i];
112 BitrateChangeEventPtr ev = std::dynamic_pointer_cast<BitrateChangeEvent>(e);
113 event.data.bitrateChanged.time = ev->getTime();
114 event.data.bitrateChanged.bitrate= ev->getBitrate();
115 event.data.bitrateChanged.description = ev->getDescription().c_str();
116 event.data.bitrateChanged.width = ev->getWidth();
117 event.data.bitrateChanged.height = ev->getHeight();
118 event.data.bitrateChanged.framerate = ev->getFrameRate();
119 event.data.bitrateChanged.position = ev->getPosition();
120 event.data.bitrateChanged.cappedProfile = ev->getCappedProfileStatus();
121 event.data.bitrateChanged.displayWidth = ev->getDisplayWidth();
122 event.data.bitrateChanged.displayHeight = ev->getDisplayHeight();
123 event.data.bitrateChanged.videoScanType = ev->getScanType();
124 event.data.bitrateChanged.aspectRatioWidth = ev->getAspectRatioWidth();
125 event.data.bitrateChanged.aspectRatioHeight = ev->getAspectRatioHeight();
130 TimedMetadataEventPtr ev = std::dynamic_pointer_cast<TimedMetadataEvent>(e);
131 event.data.timedMetadata.szName = ev->getName().c_str();
132 event.data.timedMetadata.id = ev->getId().c_str();
133 event.data.timedMetadata.timeMilliseconds = ev->getTime();
134 event.data.timedMetadata.durationMilliSeconds = ev->getDuration();
135 event.data.timedMetadata.szContent = ev->getContent().c_str();
140 BulkTimedMetadataEventPtr ev = std::dynamic_pointer_cast<BulkTimedMetadataEvent>(e);
141 event.data.bulktimedMetadata.szMetaContent = ev->getContent().c_str();
146 StateChangedEventPtr ev = std::dynamic_pointer_cast<StateChangedEvent>(e);
147 event.data.stateChanged.state = ev->getState();
152 SupportedSpeedsChangedEventPtr ev = std::dynamic_pointer_cast<SupportedSpeedsChangedEvent>(e);
153 event.data.speedsChanged.supportedSpeedCount = ev->getSupportedSpeedCount();
154 std::vector<float> speeds = ev->getSupportedSpeeds();
155 for(
int i = 0; i <
event.data.speedsChanged.supportedSpeedCount && i < MAX_SUPPORTED_SPEED_COUNT; i++)
157 event.data.speedsChanged.supportedSpeeds[i] = speeds[i];
163 SeekedEventPtr ev = std::dynamic_pointer_cast<SeekedEvent>(e);
164 event.data.seeked.positionMiliseconds = ev->getPosition();
169 TuneProfilingEventPtr ev = std::dynamic_pointer_cast<TuneProfilingEvent>(e);
170 event.data.tuneProfile.microData = ev->getProfilingData().c_str();
175 BufferingChangedEventPtr ev = std::dynamic_pointer_cast<BufferingChangedEvent>(e);
176 event.data.bufferingChanged.buffering = ev->buffering();
181 DrmMetaDataEventPtr ev = std::dynamic_pointer_cast<DrmMetaDataEvent>(e);
182 event.data.dash_drmmetadata.failure = ev->getFailure();
183 event.data.dash_drmmetadata.accessStatus = ev->getAccessStatus().c_str();
184 event.data.dash_drmmetadata.accessStatus_value = ev->getAccessStatusValue();
185 event.data.dash_drmmetadata.responseCode = ev->getResponseCode();
186 event.data.dash_drmmetadata.isSecClientError = ev->getSecclientError();
191 AnomalyReportEventPtr ev = std::dynamic_pointer_cast<AnomalyReportEvent>(e);
192 event.data.anomalyReport.severity = ev->getSeverity();
193 event.data.anomalyReport.msg = ev->getMessage().c_str();
198 WebVttCueEventPtr ev = std::dynamic_pointer_cast<WebVttCueEvent>(e);
199 event.data.cue.cueData = ev->getCueData();
204 AdResolvedEventPtr ev = std::dynamic_pointer_cast<AdResolvedEvent>(e);
205 event.data.adResolved.resolveStatus = ev->getResolveStatus();
206 event.data.adResolved.adId = ev->getAdId().c_str();
207 event.data.adResolved.startMS = ev->getStart();
208 event.data.adResolved.durationMs = ev->getDuration();
214 AdReservationEventPtr ev = std::dynamic_pointer_cast<AdReservationEvent>(e);
215 event.data.adReservation.adBreakId = ev->getAdBreakId().c_str();
216 event.data.adReservation.position = ev->getPosition();
224 AdPlacementEventPtr ev = std::dynamic_pointer_cast<AdPlacementEvent>(e);
225 event.data.adPlacement.adId = ev->getAdId().c_str();
226 event.data.adPlacement.position = ev->getPosition();
227 event.data.adPlacement.offset = ev->getOffset();
228 event.data.adPlacement.duration = ev->getDuration();
229 event.data.adPlacement.errorCode = ev->getErrorCode();
234 MetricsDataEventPtr ev = std::dynamic_pointer_cast<MetricsDataEvent>(e);
235 event.data.metricsData.type = ev->getMetricsDataType();
236 event.data.metricsData.metricUUID = ev->getMetricUUID().c_str();
237 event.data.metricsData.data = ev->getMetricsData().c_str();
242 ID3MetadataEventPtr ev = std::dynamic_pointer_cast<ID3MetadataEvent>(e);
246 event.data.id3Metadata.data =
const_cast<uint8_t *
>(ev->getMetadata().data());
247 event.data.id3Metadata.length = ev->getMetadataSize();
252 DrmMessageEventPtr ev = std::dynamic_pointer_cast<DrmMessageEvent>(e);
253 event.data.drmMessage.data = ev->getMessage().c_str();
258 ContentGapEventPtr ev = std::dynamic_pointer_cast<ContentGapEvent>(e);
259 event.data.timedMetadata.timeMilliseconds = ev->getTime();
260 event.data.timedMetadata.durationMilliSeconds = ev->getDuration();
265 HTTPResponseHeaderEventPtr ev = std::dynamic_pointer_cast<HTTPResponseHeaderEvent>(e);
266 event.data.httpResponseHeader.header = ev->getHeader().c_str();
267 event.data.httpResponseHeader.response = ev->getResponse().c_str();
272 ContentProtectionDataEventPtr ev = std::dynamic_pointer_cast<ContentProtectionDataEvent>(e);
273 event.data.contentProtectionData.keyID =
const_cast<uint8_t *
>(ev->getKeyID().data());
274 event.data.contentProtectionData.streamType = ev->getStreamType().c_str();