rx-player
Version:
Canal+ HTML5 Video Player
41 lines (38 loc) • 1.76 kB
text/typescript
import type { CancellationSignal } from "../../../utils/task_canceller";
import type RxPlayer from "../public_api";
import constructDebugGeneralInfo from "./modules/general_info";
import createSegmentSinkGraph from "./modules/segment_buffer_content";
import createSegmentSinkSizeGraph from "./modules/segment_buffer_size";
import { createCompositeElement, createElement } from "./utils";
export default function renderDebugElement(
parentElt: HTMLElement,
instance: RxPlayer,
cancelSignal: CancellationSignal,
): void {
const debugElementTitleElt = createElement("div", {
textContent: "RxPlayer Debug Information",
});
debugElementTitleElt.style.fontWeight = "bold";
debugElementTitleElt.style.borderBottom = "1px solid white";
debugElementTitleElt.style.marginBottom = "5px";
debugElementTitleElt.style.fontStyle = "italic";
const debugWrapperElt = createCompositeElement("div", [
debugElementTitleElt,
constructDebugGeneralInfo(instance, parentElt, cancelSignal),
createSegmentSinkGraph(instance, "video", "vbuf", parentElt, cancelSignal),
createSegmentSinkGraph(instance, "audio", "abuf", parentElt, cancelSignal),
createSegmentSinkGraph(instance, "text", "tbuf", parentElt, cancelSignal),
createSegmentSinkSizeGraph(instance, parentElt, cancelSignal),
]);
debugWrapperElt.style.backgroundColor = "#00000099";
debugWrapperElt.style.padding = "7px";
debugWrapperElt.style.fontSize = "13px";
debugWrapperElt.style.fontFamily = "mono, monospace";
debugWrapperElt.style.color = "white";
debugWrapperElt.style.display = "inline-block";
debugWrapperElt.style.bottom = "0px";
parentElt.appendChild(debugWrapperElt);
cancelSignal.register(() => {
parentElt.removeChild(debugWrapperElt);
});
}