@byomakase/omakase-react-components 0.0.1-SNAPSHOT.1743070950
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +204 -0
- package/README.md +3 -0
- package/dist/index.cjs.js +213 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.es.d.ts +2 -0
- package/dist/index.es.js +3959 -0
- package/dist/index.es.js.map +1 -0
- package/dist/index.umd.js +213 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/omakase-react-components.css +1 -0
- package/dist/react/omakase-components/src/components/OmakaseMarkerListComponent/OmakaseMarkerListComponent.d.ts +10 -0
- package/dist/react/omakase-components/src/components/OmakaseMarkerListComponent/index.d.ts +1 -0
- package/dist/react/omakase-components/src/components/OmakasePlayerComponent/OmakasePlayerComponent.d.ts +12 -0
- package/dist/react/omakase-components/src/components/OmakasePlayerComponent/OmakasePlayerHotKeyHandler.d.ts +5 -0
- package/dist/react/omakase-components/src/components/OmakasePlayerComponent/index.d.ts +1 -0
- package/dist/react/omakase-components/src/components/OmakasePlayerTimelineComponent/OmakasePlayerTimelineComponent.d.ts +9 -0
- package/dist/react/omakase-components/src/components/OmakasePlayerTimelineComponent/OmaksePlayerTimelineBuilder.d.ts +21 -0
- package/dist/react/omakase-components/src/components/OmakasePlayerTimelineComponent/index.d.ts +2 -0
- package/dist/react/omakase-components/src/components/OmakasePlayerTimelineControlsToolbar/OmakaseButton.d.ts +12 -0
- package/dist/react/omakase-components/src/components/OmakasePlayerTimelineControlsToolbar/OmakasePlayerTimelineControlsToolbar.d.ts +25 -0
- package/dist/react/omakase-components/src/components/OmakasePlayerTimelineControlsToolbar/index.d.ts +1 -0
- package/dist/react/omakase-components/src/components/OmakaseTamsPlayerComponent/OmakaseTamsPlayerComponent.d.ts +17 -0
- package/dist/react/omakase-components/src/components/OmakaseTamsPlayerComponent/index.d.ts +1 -0
- package/dist/react/omakase-components/src/components/OmakaseTamsPlayerComponent/virtual-manifest/m3u8-exporter.d.ts +2 -0
- package/dist/react/omakase-components/src/components/OmakaseTamsPlayerComponent/virtual-manifest/m3u8.d.ts +79 -0
- package/dist/react/omakase-components/src/components/OmakaseTamsPlayerComponent/virtual-manifest/m3u8.model.d.ts +127 -0
- package/dist/react/omakase-components/src/components/OmakaseTimeRangePicker/OmakaseTimeRangePicker.d.ts +11 -0
- package/dist/react/omakase-components/src/components/OmakaseTimeRangePicker/index.d.ts +1 -0
- package/dist/react/omakase-components/src/components/index.d.ts +7 -0
- package/dist/react/omakase-components/src/icons/Back3Icon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/DeleteMarkerIcon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/Forward3Icon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/LeftBracketIcon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/LeftDoubleBracketIcon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/LeftMarkerIcon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/PlusIcon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/RefreshIcon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/RightBracketIcon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/RightDoubleBracketIcon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/RightMarkerIcon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/SplitMarkerIcon.d.ts +3 -0
- package/dist/react/omakase-components/src/icons/index.d.ts +1 -0
- package/dist/react/omakase-components/src/index.d.ts +3 -0
- package/dist/react/omakase-components/src/types/tams/index.d.ts +1 -0
- package/dist/react/omakase-components/src/types/tams/model/audio-codec-parameters.d.ts +19 -0
- package/dist/react/omakase-components/src/types/tams/model/audio-flow-essence-parameters.d.ts +21 -0
- package/dist/react/omakase-components/src/types/tams/model/audio-flow.d.ts +104 -0
- package/dist/react/omakase-components/src/types/tams/model/avc-codec-parameters.d.ts +23 -0
- package/dist/react/omakase-components/src/types/tams/model/collection-item.d.ts +15 -0
- package/dist/react/omakase-components/src/types/tams/model/container-mapping-audio-track.d.ts +22 -0
- package/dist/react/omakase-components/src/types/tams/model/container-mapping-isobmff-container.d.ts +18 -0
- package/dist/react/omakase-components/src/types/tams/model/container-mapping-mp2ts-container.d.ts +18 -0
- package/dist/react/omakase-components/src/types/tams/model/container-mapping-mxf-container.d.ts +22 -0
- package/dist/react/omakase-components/src/types/tams/model/container-mapping.d.ts +21 -0
- package/dist/react/omakase-components/src/types/tams/model/container-mapping1.d.ts +21 -0
- package/dist/react/omakase-components/src/types/tams/model/contentformat.d.ts +19 -0
- package/dist/react/omakase-components/src/types/tams/model/data-flow-essence-parameters.d.ts +18 -0
- package/dist/react/omakase-components/src/types/tams/model/data-flow.d.ts +104 -0
- package/dist/react/omakase-components/src/types/tams/model/deletion-request-error.d.ts +30 -0
- package/dist/react/omakase-components/src/types/tams/model/deletion-request.d.ts +56 -0
- package/dist/react/omakase-components/src/types/tams/model/event-stream-mechanism.d.ts +26 -0
- package/dist/react/omakase-components/src/types/tams/model/flow-core-segment-duration.d.ts +22 -0
- package/dist/react/omakase-components/src/types/tams/model/flow-segment-get-urls-inner.d.ts +19 -0
- package/dist/react/omakase-components/src/types/tams/model/flow-segment.d.ts +38 -0
- package/dist/react/omakase-components/src/types/tams/model/flow-segment1.d.ts +38 -0
- package/dist/react/omakase-components/src/types/tams/model/flow-storage-post.d.ts +18 -0
- package/dist/react/omakase-components/src/types/tams/model/flow.d.ts +14 -0
- package/dist/react/omakase-components/src/types/tams/model/http-request.d.ts +32 -0
- package/dist/react/omakase-components/src/types/tams/model/image-flow-essence-parameters.d.ts +19 -0
- package/dist/react/omakase-components/src/types/tams/model/image-flow.d.ts +104 -0
- package/dist/react/omakase-components/src/types/tams/model/media-bucket-object-store-media-objects-inner.d.ts +12 -0
- package/dist/react/omakase-components/src/types/tams/model/media-bucket-object-store-pre-inner.d.ts +19 -0
- package/dist/react/omakase-components/src/types/tams/model/media-bucket-object-store.d.ts +16 -0
- package/dist/react/omakase-components/src/types/tams/model/models.d.ts +41 -0
- package/dist/react/omakase-components/src/types/tams/model/multi-essence-flow.d.ts +102 -0
- package/dist/react/omakase-components/src/types/tams/model/register-webhook.d.ts +50 -0
- package/dist/react/omakase-components/src/types/tams/model/register-webhook1.d.ts +50 -0
- package/dist/react/omakase-components/src/types/tams/model/service-media-store.d.ts +24 -0
- package/dist/react/omakase-components/src/types/tams/model/service.d.ts +32 -0
- package/dist/react/omakase-components/src/types/tams/model/source.d.ts +61 -0
- package/dist/react/omakase-components/src/types/tams/model/uncompressed-audio-parameters.d.ts +23 -0
- package/dist/react/omakase-components/src/types/tams/model/uncompressed-video-parameters.d.ts +36 -0
- package/dist/react/omakase-components/src/types/tams/model/update-service-info.d.ts +22 -0
- package/dist/react/omakase-components/src/types/tams/model/video-flow-essence-parameters-aspect-ratio.d.ts +22 -0
- package/dist/react/omakase-components/src/types/tams/model/video-flow-essence-parameters-frame-rate.d.ts +22 -0
- package/dist/react/omakase-components/src/types/tams/model/video-flow-essence-parameters-pixel-aspect-ratio.d.ts +22 -0
- package/dist/react/omakase-components/src/types/tams/model/video-flow-essence-parameters.d.ts +78 -0
- package/dist/react/omakase-components/src/types/tams/model/video-flow.d.ts +104 -0
- package/dist/react/omakase-components/src/types/user-agent.d.ts +2 -0
- package/dist/react/omakase-components/src/util/array-util.d.ts +3 -0
- package/dist/react/omakase-components/src/util/blob-util.d.ts +7 -0
- package/dist/react/omakase-components/src/util/color-util.d.ts +21 -0
- package/dist/react/omakase-components/src/util/crypto-util.d.ts +3 -0
- package/dist/react/omakase-components/src/util/frame-rate-util.d.ts +3 -0
- package/dist/react/omakase-components/src/util/object-util.d.ts +1 -0
- package/dist/react/omakase-components/src/util/player-util.d.ts +3 -0
- package/dist/react/omakase-components/src/util/rxjs-util.d.ts +2 -0
- package/dist/react/omakase-components/src/util/string-util.d.ts +9 -0
- package/dist/react/omakase-components/src/util/time-range-util.d.ts +38 -0
- package/dist/react/omakase-components/src/util/timecode-util.d.ts +10 -0
- package/dist/react/omakase-components/src/util/window-util.d.ts +6 -0
- package/dist/react/omakase-components/vite.config.d.ts +2 -0
- package/package.json +32 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
button{background:none;color:inherit;border:none;padding:0;font:inherit;cursor:pointer;outline:inherit;display:inline-flex;align-items:center;justify-content:center}button svg{display:flex;align-items:center;justify-content:center}button:disabled svg path{opacity:.7}.control-panel{display:flex;width:fit-content;background-color:#3a3d4b;height:43px;padding:.3em}.control-panel button{margin-left:.3em;margin-right:.3em}.control-panel-wrapper{display:flex;gap:1px}.segmentation-button-wrapper{min-width:fit-content;display:inline-flex;justify-content:center;align-items:center}.segmentation-button-wrapper button{white-space:nowrap;display:inline-flex;justify-content:center;align-items:center;font-size:14px;line-height:20px}.segmentation-button-wrapper button svg{margin-right:5px}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MarkerListApi, OmakasePlayer } from '@byomakase/omakase-player';
|
|
2
|
+
import { MarkerListConfig } from '@byomakase/omakase-player/dist/marker-list/marker-list';
|
|
3
|
+
import { default as React } from 'react';
|
|
4
|
+
type OmakaseMarkerListComponentProps = {
|
|
5
|
+
omakasePlayer: OmakasePlayer;
|
|
6
|
+
config: MarkerListConfig;
|
|
7
|
+
onCreateMarkerListCallback?: (markerListApi: MarkerListApi) => void;
|
|
8
|
+
};
|
|
9
|
+
declare const OmakaseMarkerListComponent: React.MemoExoticComponent<({ omakasePlayer, config, onCreateMarkerListCallback, }: OmakaseMarkerListComponentProps) => React.JSX.Element>;
|
|
10
|
+
export default OmakaseMarkerListComponent;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as OmakaseMarkerListComponent } from './OmakaseMarkerListComponent';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { OmakasePlayer, OmakasePlayerConfig, VideoLoadOptions } from '@byomakase/omakase-player';
|
|
2
|
+
import { default as React } from 'react';
|
|
3
|
+
type OmakasePlayerComponentProps = {
|
|
4
|
+
videoUrl: string;
|
|
5
|
+
fps: number | string;
|
|
6
|
+
videoLoadOptions?: VideoLoadOptions;
|
|
7
|
+
setOmakasePlayer?: React.Dispatch<React.SetStateAction<OmakasePlayer | undefined>>;
|
|
8
|
+
config?: Partial<OmakasePlayerConfig>;
|
|
9
|
+
enableHotkeys?: boolean;
|
|
10
|
+
};
|
|
11
|
+
declare const OmakasePlayerComponent: React.NamedExoticComponent<OmakasePlayerComponentProps>;
|
|
12
|
+
export default OmakasePlayerComponent;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { OmakasePlayer } from '@byomakase/omakase-player';
|
|
2
|
+
import { UserAgent } from '../../types/user-agent';
|
|
3
|
+
export declare class OmakasePlayerHotKeyHandler {
|
|
4
|
+
static handleKeyboardEvent(event: KeyboardEvent, omakasePlayer: OmakasePlayer, userAgent?: UserAgent): boolean;
|
|
5
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './OmakasePlayerComponent';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { OmakasePlayer, TimelineApi, TimelineConfig, ConfigWithOptionalStyle } from '@byomakase/omakase-player';
|
|
3
|
+
interface OmakasePlayerTimelineComponentProps {
|
|
4
|
+
omakasePlayer: OmakasePlayer;
|
|
5
|
+
timelinePopulateFn: (timeline: TimelineApi) => void;
|
|
6
|
+
timelineConfig: Partial<ConfigWithOptionalStyle<TimelineConfig>>;
|
|
7
|
+
}
|
|
8
|
+
declare const OmakasePlayerTimelineComponent: React.MemoExoticComponent<({ omakasePlayer, timelinePopulateFn, timelineConfig, }: OmakasePlayerTimelineComponentProps) => React.JSX.Element>;
|
|
9
|
+
export default OmakasePlayerTimelineComponent;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ConfigWithOptionalStyle, Marker, MarkerLaneConfig, OmakasePlayer, ThumbnailLaneConfig, TimelineApi, TimelineConfig, TimelineNode } from '@byomakase/omakase-player';
|
|
2
|
+
import { TimelineLaneComponentConfig, TimelineLaneConfigDefaultsExcluded } from '@byomakase/omakase-player/dist/timeline/timeline-lane';
|
|
3
|
+
type NodeConstructionData = {
|
|
4
|
+
config: TimelineLaneComponentConfig;
|
|
5
|
+
node: TimelineNode;
|
|
6
|
+
};
|
|
7
|
+
export declare class OmakasePlayerTimelineBuilder {
|
|
8
|
+
private omakasePlayer;
|
|
9
|
+
private _lanes;
|
|
10
|
+
private _markersLaneMap;
|
|
11
|
+
private _laneNodenMap;
|
|
12
|
+
constructor(omakasePlayer: OmakasePlayer);
|
|
13
|
+
addMarkerLane(config: TimelineLaneConfigDefaultsExcluded<MarkerLaneConfig>): void;
|
|
14
|
+
addMarkers(markerLaneId: string, markers: Marker[]): void;
|
|
15
|
+
addTimelineNode(laneId: string, nodeConstructionData: NodeConstructionData): void;
|
|
16
|
+
addThumbnailLane(config: TimelineLaneConfigDefaultsExcluded<ThumbnailLaneConfig>): void;
|
|
17
|
+
buildAndAttachTimeline(timelineConfig: Partial<ConfigWithOptionalStyle<TimelineConfig>>): void;
|
|
18
|
+
buildAttachedTimeline(timeline: TimelineApi): void;
|
|
19
|
+
private _createAndAttachLane;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { IconProps } from '../../icons/icons';
|
|
3
|
+
interface OmakaseButtonProps {
|
|
4
|
+
Icon: React.ComponentType<IconProps>;
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
text?: string;
|
|
8
|
+
onClick: () => void;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const OmakaseButton: ({ Icon, onClick, width, height, text, disabled, }: OmakaseButtonProps) => React.JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { Marker, MarkerLane, OmakasePlayer, MarkerListApi, TimelineLaneStyle, PeriodMarkerStyle } from '@byomakase/omakase-player';
|
|
3
|
+
type OmakasePlayerTimelineControlsToolbarProps = {
|
|
4
|
+
selectedMarker: Marker | undefined;
|
|
5
|
+
omakasePlayer: OmakasePlayer;
|
|
6
|
+
markerListApi?: MarkerListApi;
|
|
7
|
+
segmentationLanes: MarkerLane[];
|
|
8
|
+
source: MarkerLane | undefined;
|
|
9
|
+
constants: OmakasePlayerTimelineControlsToolbarConstants;
|
|
10
|
+
setSource: React.Dispatch<React.SetStateAction<MarkerLane | undefined>>;
|
|
11
|
+
setSegmentationLanes: React.Dispatch<React.SetStateAction<MarkerLane[]>>;
|
|
12
|
+
setSelectedMarker: React.Dispatch<React.SetStateAction<Marker | undefined>>;
|
|
13
|
+
onMarkerClickCallback: (marker: Marker | undefined) => void;
|
|
14
|
+
};
|
|
15
|
+
export type OmakasePlayerTimelineControlsToolbarConstants = {
|
|
16
|
+
SELECTED_PERIOD_MARKER_STYLE: Partial<PeriodMarkerStyle> & {
|
|
17
|
+
color: string;
|
|
18
|
+
};
|
|
19
|
+
PERIOD_MARKER_STYLE: Partial<PeriodMarkerStyle> & {
|
|
20
|
+
color: string;
|
|
21
|
+
};
|
|
22
|
+
TIMELINE_LANE_STYLE: Partial<TimelineLaneStyle>;
|
|
23
|
+
};
|
|
24
|
+
declare const OmakasePlayerTimelineControlsToolbar: ({ selectedMarker, omakasePlayer, markerListApi, segmentationLanes, setSegmentationLanes, setSelectedMarker, onMarkerClickCallback, setSource, source, constants, }: OmakasePlayerTimelineControlsToolbarProps) => React.JSX.Element;
|
|
25
|
+
export default OmakasePlayerTimelineControlsToolbar;
|
package/dist/react/omakase-components/src/components/OmakasePlayerTimelineControlsToolbar/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './OmakasePlayerTimelineControlsToolbar';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OmakasePlayer, OmakasePlayerConfig, VideoLoadOptions } from '@byomakase/omakase-player';
|
|
2
|
+
import { Flow, FlowSegment } from '../../types/tams';
|
|
3
|
+
import { default as React } from 'react';
|
|
4
|
+
type OmakaseTamsPlayerComponentProps = {
|
|
5
|
+
flow: Flow;
|
|
6
|
+
childFlows: Flow[];
|
|
7
|
+
flowSegments: FlowSegment[];
|
|
8
|
+
childFlowsSegments: Map<string, FlowSegment[]>;
|
|
9
|
+
fps: number | string;
|
|
10
|
+
videoLoadOptions?: VideoLoadOptions;
|
|
11
|
+
setOmakasePlayer?: React.Dispatch<React.SetStateAction<OmakasePlayer | undefined>>;
|
|
12
|
+
config?: Partial<OmakasePlayerConfig>;
|
|
13
|
+
timerange: string;
|
|
14
|
+
enableHotkey?: boolean;
|
|
15
|
+
};
|
|
16
|
+
declare const OmakaseTamsPlayerComponent: React.NamedExoticComponent<OmakaseTamsPlayerComponentProps>;
|
|
17
|
+
export default OmakaseTamsPlayerComponent;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './OmakaseTamsPlayerComponent';
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { M3U8Media, M3U8Playlist, M3U8Segment, M3U8StreamInfo } from './m3u8.model';
|
|
2
|
+
/**
|
|
3
|
+
* Builder class to construct an M3U8Playlist instance.
|
|
4
|
+
*/
|
|
5
|
+
export declare class M3U8PlaylistBuilder {
|
|
6
|
+
private playlist;
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Sets the HLS version for the playlist.
|
|
10
|
+
* @param version The version number (e.g., 3).
|
|
11
|
+
*/
|
|
12
|
+
setVersion(version: number): M3U8PlaylistBuilder;
|
|
13
|
+
/**
|
|
14
|
+
* Sets the independent segments flag.
|
|
15
|
+
* @param independentSegments Whether the segments are independent.
|
|
16
|
+
*/
|
|
17
|
+
setIndependentSegments(independentSegments: boolean): M3U8PlaylistBuilder;
|
|
18
|
+
/**
|
|
19
|
+
* Sets the target duration for the playlist.
|
|
20
|
+
* This is the maximum duration (in seconds) of any segment in the playlist.
|
|
21
|
+
* @param targetDuration The target duration in seconds.
|
|
22
|
+
*/
|
|
23
|
+
setTargetDuration(targetDuration: number): M3U8PlaylistBuilder;
|
|
24
|
+
/**
|
|
25
|
+
* Sets the media sequence number for the playlist.
|
|
26
|
+
* This is the sequence number of the first segment in the playlist.
|
|
27
|
+
* @param mediaSequence The starting media sequence number.
|
|
28
|
+
*/
|
|
29
|
+
setMediaSequence(mediaSequence: number): M3U8PlaylistBuilder;
|
|
30
|
+
/**
|
|
31
|
+
* Sets the program date-time for the playlist in ISO 8601 format.
|
|
32
|
+
* @param programDateTime The program date-time as a string.
|
|
33
|
+
*/
|
|
34
|
+
setProgramDateTime(programDateTime: string): M3U8PlaylistBuilder;
|
|
35
|
+
/**
|
|
36
|
+
* Sets the playlist type, which can be 'VOD' or 'EVENT'.
|
|
37
|
+
* @param playlistType The type of the playlist.
|
|
38
|
+
*/
|
|
39
|
+
setPlaylistType(playlistType: "VOD" | "EVENT"): M3U8PlaylistBuilder;
|
|
40
|
+
/**
|
|
41
|
+
* Adds a stream variant (e.g., a specific video resolution and bandwidth).
|
|
42
|
+
* @param stream The stream information to add.
|
|
43
|
+
*/
|
|
44
|
+
addStreamInfo(stream: M3U8StreamInfo): M3U8PlaylistBuilder;
|
|
45
|
+
/**
|
|
46
|
+
* Adds a media option (e.g., audio or subtitle track).
|
|
47
|
+
* @param media The media option to add.
|
|
48
|
+
*/
|
|
49
|
+
addMedia(media: M3U8Media): M3U8PlaylistBuilder;
|
|
50
|
+
/**
|
|
51
|
+
* Adds an individual segment to the playlist.
|
|
52
|
+
* @param segment The segment to add.
|
|
53
|
+
*/
|
|
54
|
+
addSegment(segment: M3U8Segment): M3U8PlaylistBuilder;
|
|
55
|
+
/**
|
|
56
|
+
* Marks the playlist as ending with EXT-X-ENDLIST.
|
|
57
|
+
*/
|
|
58
|
+
setEndList(): M3U8PlaylistBuilder;
|
|
59
|
+
/**
|
|
60
|
+
* Sets the EXT-X-START offset for the playlist.
|
|
61
|
+
* @param offset The start offset in seconds.
|
|
62
|
+
*/
|
|
63
|
+
setStartOffset(offset: number): M3U8PlaylistBuilder;
|
|
64
|
+
/**
|
|
65
|
+
* Builds and returns the M3U8Playlist instance.
|
|
66
|
+
*/
|
|
67
|
+
build(): M3U8Playlist;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Writer class to generate an M3U8 formatted string from an M3U8Playlist instance.
|
|
71
|
+
*/
|
|
72
|
+
export declare class M3U8PlaylistWriter {
|
|
73
|
+
/**
|
|
74
|
+
* Converts an M3U8Playlist instance into a formatted M3U8 string.
|
|
75
|
+
* @param playlist The M3U8Playlist to convert.
|
|
76
|
+
* @returns The generated M3U8 playlist string.
|
|
77
|
+
*/
|
|
78
|
+
static write(playlist: M3U8Playlist): string;
|
|
79
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents an M3U8 Playlist containing various streams, media, and segments.
|
|
3
|
+
*/
|
|
4
|
+
export declare class M3U8Playlist {
|
|
5
|
+
/**
|
|
6
|
+
* The version of the HLS protocol (e.g., 3).
|
|
7
|
+
*/
|
|
8
|
+
version: number;
|
|
9
|
+
/**
|
|
10
|
+
* Whether the playlist has independent segments.
|
|
11
|
+
*/
|
|
12
|
+
independentSegments: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* The maximum duration of any segment in the playlist (in seconds).
|
|
15
|
+
*/
|
|
16
|
+
targetDuration: number | null;
|
|
17
|
+
/**
|
|
18
|
+
* The sequence number of the first segment in the playlist.
|
|
19
|
+
*/
|
|
20
|
+
mediaSequence: number | null;
|
|
21
|
+
/**
|
|
22
|
+
* Program date-time in ISO 8601 format.
|
|
23
|
+
*/
|
|
24
|
+
programDateTime: string | null;
|
|
25
|
+
/**
|
|
26
|
+
* Playlist type, which can be 'VOD' (Video on Demand) or 'EVENT'.
|
|
27
|
+
*/
|
|
28
|
+
playlistType: "VOD" | "EVENT" | null;
|
|
29
|
+
/**
|
|
30
|
+
* List of stream information (video/audio variants).
|
|
31
|
+
*/
|
|
32
|
+
streams: M3U8StreamInfo[];
|
|
33
|
+
/**
|
|
34
|
+
* List of media options (AUDIO, VIDEO, SUBTITLES, CLOSED-CAPTIONS).
|
|
35
|
+
*/
|
|
36
|
+
media: M3U8Media[];
|
|
37
|
+
/**
|
|
38
|
+
* List of individual segments in the playlist.
|
|
39
|
+
*/
|
|
40
|
+
segments: M3U8Segment[];
|
|
41
|
+
/**
|
|
42
|
+
* Whether to mark the end of the playlist (EXT-X-ENDLIST).
|
|
43
|
+
*/
|
|
44
|
+
endList: boolean;
|
|
45
|
+
startOffset?: number;
|
|
46
|
+
constructor(version?: number, independentSegments?: boolean);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Represents information about a specific video/audio stream variant.
|
|
50
|
+
*/
|
|
51
|
+
export declare class M3U8StreamInfo {
|
|
52
|
+
/**
|
|
53
|
+
* Maximum bandwidth for the stream in bits per second.
|
|
54
|
+
*/
|
|
55
|
+
bandwidth: number;
|
|
56
|
+
/**
|
|
57
|
+
* Average bandwidth for the stream in bits per second.
|
|
58
|
+
*/
|
|
59
|
+
averageBandwidth: number;
|
|
60
|
+
/**
|
|
61
|
+
* Resolution of the stream as width and height. Null if not specified.
|
|
62
|
+
*/
|
|
63
|
+
resolution: {
|
|
64
|
+
width: number;
|
|
65
|
+
height: number;
|
|
66
|
+
} | null;
|
|
67
|
+
/**
|
|
68
|
+
* Frame rate of the stream. Null if not specified.
|
|
69
|
+
*/
|
|
70
|
+
frameRate: number | null;
|
|
71
|
+
/**
|
|
72
|
+
* URI pointing to the specific stream playlist.
|
|
73
|
+
*/
|
|
74
|
+
uri: string | null;
|
|
75
|
+
constructor(bandwidth: number, averageBandwidth: number, resolution: {
|
|
76
|
+
width: number;
|
|
77
|
+
height: number;
|
|
78
|
+
} | null, frameRate: number | null, uri: string | null);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Represents a media option such as AUDIO, VIDEO, SUBTITLES, or CLOSED-CAPTIONS.
|
|
82
|
+
*/
|
|
83
|
+
export declare class M3U8Media {
|
|
84
|
+
/**
|
|
85
|
+
* Type of media (e.g., AUDIO, VIDEO, SUBTITLES, CLOSED-CAPTIONS).
|
|
86
|
+
*/
|
|
87
|
+
type: "AUDIO" | "VIDEO" | "SUBTITLES" | "CLOSED-CAPTIONS";
|
|
88
|
+
/**
|
|
89
|
+
* Group identifier to link this media with a stream.
|
|
90
|
+
*/
|
|
91
|
+
groupId: string;
|
|
92
|
+
/**
|
|
93
|
+
* Descriptive name for the media track.
|
|
94
|
+
*/
|
|
95
|
+
name: string;
|
|
96
|
+
/**
|
|
97
|
+
* Indicates if this is the default media track.
|
|
98
|
+
*/
|
|
99
|
+
isDefault: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Indicates if the media track should auto-select if not explicitly selected.
|
|
102
|
+
*/
|
|
103
|
+
autoSelect: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Number of audio channels (e.g., "2" for stereo). Null if not applicable.
|
|
106
|
+
*/
|
|
107
|
+
channels: string | null;
|
|
108
|
+
/**
|
|
109
|
+
* URI pointing to the specific media playlist.
|
|
110
|
+
*/
|
|
111
|
+
uri: string;
|
|
112
|
+
constructor(type: "AUDIO" | "VIDEO" | "SUBTITLES" | "CLOSED-CAPTIONS", groupId: string, name: string, isDefault: boolean, autoSelect: boolean, channels: string | null, uri: string);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Represents an individual segment within the playlist.
|
|
116
|
+
*/
|
|
117
|
+
export declare class M3U8Segment {
|
|
118
|
+
/**
|
|
119
|
+
* Duration of the segment in seconds.
|
|
120
|
+
*/
|
|
121
|
+
duration: number;
|
|
122
|
+
/**
|
|
123
|
+
* URI pointing to the segment file.
|
|
124
|
+
*/
|
|
125
|
+
uri: string;
|
|
126
|
+
constructor(duration: number, uri: string);
|
|
127
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
type OmakaseTimerangePickerProps = {
|
|
3
|
+
timeRange: string;
|
|
4
|
+
maxTimeRange: string;
|
|
5
|
+
numberOfSegments: number;
|
|
6
|
+
segmentSize: number;
|
|
7
|
+
maxSliderRange: number;
|
|
8
|
+
onCheckmarkClickCallback: (start: number, end: number) => void;
|
|
9
|
+
};
|
|
10
|
+
declare const OmakaseTimeRangePicker: ({ timeRange, maxTimeRange, numberOfSegments, segmentSize, maxSliderRange, onCheckmarkClickCallback, }: OmakaseTimerangePickerProps) => React.JSX.Element;
|
|
11
|
+
export default OmakaseTimeRangePicker;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './OmakaseTimeRangePicker';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { OmakasePlayerTimelineBuilder } from './OmakasePlayerTimelineComponent';
|
|
2
|
+
export { default as OmakasePlayerComponent } from './OmakasePlayerComponent';
|
|
3
|
+
export { default as OmakasePlayerTimelineControlsToolbar } from './OmakasePlayerTimelineControlsToolbar';
|
|
4
|
+
export { default as OmakaseTamsPlayerComponent } from './OmakaseTamsPlayerComponent';
|
|
5
|
+
export { default as OmakasePlayerTimelineComponent } from './OmakasePlayerTimelineComponent';
|
|
6
|
+
export { default as OmakaseTimeRangePicker } from './OmakaseTimeRangePicker';
|
|
7
|
+
export { OmakaseMarkerListComponent } from './OmakaseMarkerListComponent';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LeftDoubleBracketIcon } from './LeftDoubleBracketIcon';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './model/models';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time-addressable Media Store
|
|
3
|
+
*
|
|
4
|
+
* Contact: cloudfit-opensource@rd.bbc.co.uk
|
|
5
|
+
*
|
|
6
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
7
|
+
* https://openapi-generator.tech
|
|
8
|
+
* Do not edit the class manually.
|
|
9
|
+
*/
|
|
10
|
+
export interface AudioCodecParameters {
|
|
11
|
+
/**
|
|
12
|
+
* The fixed number of samples per coded audio frame.
|
|
13
|
+
*/
|
|
14
|
+
coded_frame_size?: number;
|
|
15
|
+
/**
|
|
16
|
+
* The MPEG-4 Object Type Identification. For more information on the use of this property in codec strings, see https://developer.mozilla.org/en-US/docs/Web/Media/Formats/codecs_parameter#mpeg-4_audio
|
|
17
|
+
*/
|
|
18
|
+
mp4_oti?: number;
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { UncompressedAudioParameters } from './uncompressed-audio-parameters';
|
|
2
|
+
import { AudioCodecParameters } from './audio-codec-parameters';
|
|
3
|
+
/**
|
|
4
|
+
* Describes the parameters of the essence inside this audio Flow
|
|
5
|
+
*/
|
|
6
|
+
export interface AudioFlowEssenceParameters {
|
|
7
|
+
/**
|
|
8
|
+
* The fixed number of samples per second.
|
|
9
|
+
*/
|
|
10
|
+
sample_rate: number;
|
|
11
|
+
/**
|
|
12
|
+
* The channel count.
|
|
13
|
+
*/
|
|
14
|
+
channels: number;
|
|
15
|
+
/**
|
|
16
|
+
* The number of significant bits used to represent the audio sample. The minumum number of bytes then equals `round_up(bit_depth / 8)`. If codec is `audio/x-raw-int` bit_depth must be set. If codec is `audio/x-raw-float` bit_depth must be set to 32 or 64
|
|
17
|
+
*/
|
|
18
|
+
bit_depth?: number;
|
|
19
|
+
codec_parameters?: AudioCodecParameters;
|
|
20
|
+
unc_parameters?: UncompressedAudioParameters;
|
|
21
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { FlowCoreSegmentDuration } from './flow-core-segment-duration';
|
|
2
|
+
import { ContainerMapping1 } from './container-mapping1';
|
|
3
|
+
import { AudioFlowEssenceParameters } from './audio-flow-essence-parameters';
|
|
4
|
+
import { CollectionItem } from './collection-item';
|
|
5
|
+
/**
|
|
6
|
+
* Describes an audio Flow
|
|
7
|
+
*/
|
|
8
|
+
export interface AudioFlow {
|
|
9
|
+
/**
|
|
10
|
+
* Flow identifier
|
|
11
|
+
*/
|
|
12
|
+
id: string;
|
|
13
|
+
/**
|
|
14
|
+
* Source identifier
|
|
15
|
+
*/
|
|
16
|
+
source_id: string;
|
|
17
|
+
/**
|
|
18
|
+
* Freeform string label for the flow
|
|
19
|
+
*/
|
|
20
|
+
label?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Freeform text describing the flow
|
|
23
|
+
*/
|
|
24
|
+
description?: string;
|
|
25
|
+
/**
|
|
26
|
+
* A string identifier for the entity that created the flow. Implementations SHOULD set suitable default values for `created_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
|
|
27
|
+
*/
|
|
28
|
+
created_by?: string;
|
|
29
|
+
/**
|
|
30
|
+
* A string identifier for the entity that updated the flow metadata most recently. Implementations SHOULD set suitable default values for `updated_by` based on the principal accessing the system, and MAY permit clients to edit the value, subject to suitable permissions-based limitations.
|
|
31
|
+
*/
|
|
32
|
+
updated_by?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Key value is a freeform string.
|
|
35
|
+
*/
|
|
36
|
+
tags?: {
|
|
37
|
+
[key: string]: string;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* A change to the flow metadata, not including metadata_version, last_update or segments, results in a new version. If the metadata_version for flow instances is identical then the metadata is identical.
|
|
41
|
+
*/
|
|
42
|
+
metadata_version?: string;
|
|
43
|
+
/**
|
|
44
|
+
* An indication of how many lossy encodings the flow content has been through. A flow with a higher generation may contain less of the original information than a flow with a lower generation.
|
|
45
|
+
*/
|
|
46
|
+
generation?: number;
|
|
47
|
+
/**
|
|
48
|
+
* The date-time the flow was created in a given context, e.g. in the store. Implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
|
|
49
|
+
*/
|
|
50
|
+
created?: string;
|
|
51
|
+
/**
|
|
52
|
+
* The date-time the flow metadata was updated in a given context, e.g. in the store. Implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
|
|
53
|
+
*/
|
|
54
|
+
metadata_updated?: string;
|
|
55
|
+
/**
|
|
56
|
+
* The date-time the flow segments were updated in a given context, e.g. in the store. Implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
|
|
57
|
+
*/
|
|
58
|
+
segments_updated?: string;
|
|
59
|
+
/**
|
|
60
|
+
* If set to \'true\', implementations SHOULD reject client requests to update Flow metadata (other than the read_only property), Flow Segments and media objects
|
|
61
|
+
*/
|
|
62
|
+
read_only?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* A MIME type identification of the (lossy or lossless) coding used for the flow content.
|
|
65
|
+
*/
|
|
66
|
+
codec?: string;
|
|
67
|
+
/**
|
|
68
|
+
* The container MIME type for flow segments.
|
|
69
|
+
*/
|
|
70
|
+
container?: string;
|
|
71
|
+
/**
|
|
72
|
+
* The average bit rate of the flow segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
|
|
73
|
+
*/
|
|
74
|
+
avg_bit_rate?: number;
|
|
75
|
+
/**
|
|
76
|
+
* The maximum bit rate of the flow segments in 1000 bits/second. A precise definition can be found in the [Setting Flow Bit Rate Properties](https://github.com/bbc/tams/blob/main/docs/appnotes/0013-setting-flow-bit-rate-properties.md) AppNote.
|
|
77
|
+
*/
|
|
78
|
+
max_bit_rate?: number;
|
|
79
|
+
segment_duration?: FlowCoreSegmentDuration;
|
|
80
|
+
/**
|
|
81
|
+
* The timerange of samples available in the flow, as described by the [TimeRange](../schemas/timerange#top) type
|
|
82
|
+
*/
|
|
83
|
+
timerange?: string;
|
|
84
|
+
/**
|
|
85
|
+
* List of Flows that are collected together by this Flow.
|
|
86
|
+
*/
|
|
87
|
+
flow_collection?: Array<CollectionItem>;
|
|
88
|
+
/**
|
|
89
|
+
* Flows that reference this Flow to include it in a collection. This attribute is intended to be read-only. Implementations SHOULD ignore this if given in a PUT request, and instead manage it internally
|
|
90
|
+
*/
|
|
91
|
+
collected_by?: Array<string>;
|
|
92
|
+
container_mapping?: ContainerMapping1;
|
|
93
|
+
/**
|
|
94
|
+
* The primary content type URN for the flow.
|
|
95
|
+
*/
|
|
96
|
+
format: AudioFlow.FormatEnum;
|
|
97
|
+
essence_parameters: AudioFlowEssenceParameters;
|
|
98
|
+
}
|
|
99
|
+
export declare namespace AudioFlow {
|
|
100
|
+
type FormatEnum = 'urn:x-nmos:format:audio';
|
|
101
|
+
const FormatEnum: {
|
|
102
|
+
UrnxNmosformataudio: FormatEnum;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time-addressable Media Store
|
|
3
|
+
*
|
|
4
|
+
* Contact: cloudfit-opensource@rd.bbc.co.uk
|
|
5
|
+
*
|
|
6
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
7
|
+
* https://openapi-generator.tech
|
|
8
|
+
* Do not edit the class manually.
|
|
9
|
+
*/
|
|
10
|
+
export interface AVCCodecParameters {
|
|
11
|
+
/**
|
|
12
|
+
* AVC / H.264 profile byte. For more information on the use of this property in codec strings, see https://developer.mozilla.org/en-US/docs/Web/Media/Formats/codecs_parameter#using_the_codecs_parameter
|
|
13
|
+
*/
|
|
14
|
+
profile: number;
|
|
15
|
+
/**
|
|
16
|
+
* AVC / H.264 level byte. For more information on the use of this property in codec strings, see https://developer.mozilla.org/en-US/docs/Web/Media/Formats/codecs_parameter#using_the_codecs_parameter
|
|
17
|
+
*/
|
|
18
|
+
level: number;
|
|
19
|
+
/**
|
|
20
|
+
* AVC / H.264 flags byte. For more information on the use of this property in codec strings, see https://developer.mozilla.org/en-US/docs/Web/Media/Formats/codecs_parameter#using_the_codecs_parameter
|
|
21
|
+
*/
|
|
22
|
+
flags: number;
|
|
23
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ContainerMapping } from './container-mapping';
|
|
2
|
+
/**
|
|
3
|
+
* Describes how an object (Source or Flow) is collected into another object of the same type
|
|
4
|
+
*/
|
|
5
|
+
export interface CollectionItem {
|
|
6
|
+
/**
|
|
7
|
+
* Source or Flow Identifier of the member of this collection. Sources must only collect Sources, and Flows must only collect Flows. Must already be registered in TAMS
|
|
8
|
+
*/
|
|
9
|
+
id: string;
|
|
10
|
+
/**
|
|
11
|
+
* A human-readable role of the element in this collection (e.g. \'R\' to denote a right audio channel in a collection of mono audio Sources)
|
|
12
|
+
*/
|
|
13
|
+
role: string;
|
|
14
|
+
container_mapping?: ContainerMapping;
|
|
15
|
+
}
|