pub struct AsyncVideoServiceClient<C> { /* private fields */ }Trait Implementations§
Source§impl<C> AsyncService<C> for AsyncVideoServiceClient<C>
impl<C> AsyncService<C> for AsyncVideoServiceClient<C>
Source§fn new(client: C, runtime: &Arc<ConjureRuntime>) -> Self
fn new(client: C, runtime: &Arc<ConjureRuntime>) -> Self
Creates a new service wrapping an async HTTP client.
Source§impl<O, I: Stream<Item = Result<Bytes, Error>>, __C> AsyncVideoService<O, I> for AsyncVideoServiceClient<__C>where
__C: AsyncClient<BodyWriter = O, ResponseBody = I> + Sync + Send,
__C::ResponseBody: 'static + Send,
impl<O, I: Stream<Item = Result<Bytes, Error>>, __C> AsyncVideoService<O, I> for AsyncVideoServiceClient<__C>where
__C: AsyncClient<BodyWriter = O, ResponseBody = I> + Sync + Send,
__C::ResponseBody: 'static + Send,
Source§async fn get(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
) -> Result<Video, Error>
async fn get( &self, auth_: &BearerToken, video_rid: &VideoRid, ) -> Result<Video, Error>
Returns video metadata associated with a video rid.
Source§async fn batch_get(
&self,
auth_: &BearerToken,
request: &GetVideosRequest,
) -> Result<GetVideosResponse, Error>
async fn batch_get( &self, auth_: &BearerToken, request: &GetVideosRequest, ) -> Result<GetVideosResponse, Error>
Returns video metadata about each video given a set of video rids.
Source§async fn search(
&self,
auth_: &BearerToken,
request: &SearchVideosRequest,
) -> Result<SearchVideosResponse, Error>
async fn search( &self, auth_: &BearerToken, request: &SearchVideosRequest, ) -> Result<SearchVideosResponse, Error>
Returns metadata about videos that match a given query.
Source§async fn create(
&self,
auth_: &BearerToken,
request: &CreateVideoRequest,
) -> Result<Video, Error>
async fn create( &self, auth_: &BearerToken, request: &CreateVideoRequest, ) -> Result<Video, Error>
Creates and persists a video entity with the given metadata.
Source§async fn update_metadata(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
request: &UpdateVideoMetadataRequest,
) -> Result<Video, Error>
async fn update_metadata( &self, auth_: &BearerToken, video_rid: &VideoRid, request: &UpdateVideoMetadataRequest, ) -> Result<Video, Error>
Updates the metadata for a video associated with the given video rid.
async fn update_ingest_status( &self, auth_: &BearerToken, video_rid: &VideoRid, request: &UpdateIngestStatus, ) -> Result<(), Error>
async fn get_ingest_status( &self, auth_: &BearerToken, video_rid: &VideoRid, ) -> Result<DetailedIngestStatus, Error>
async fn batch_get_ingest_status( &self, auth_: &BearerToken, video_rids: &BTreeSet<VideoRid>, ) -> Result<BTreeMap<VideoRid, DetailedIngestStatus>, Error>
async fn get_enriched_ingest_status( &self, auth_: &BearerToken, request: &GetEnrichedVideoIngestStatusRequest, ) -> Result<Option<EnrichedVideoIngestStatus>, Error>
Source§async fn archive(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
) -> Result<(), Error>
async fn archive( &self, auth_: &BearerToken, video_rid: &VideoRid, ) -> Result<(), Error>
Archives a video, which excludes it from search and hides it from being publicly visible, but does not
permanently delete it. Archived videos can be unarchived.
Source§async fn unarchive(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
) -> Result<(), Error>
async fn unarchive( &self, auth_: &BearerToken, video_rid: &VideoRid, ) -> Result<(), Error>
Unarchives a previously archived video.
Source§async fn get_playlist(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
start: Option<&str>,
end: Option<&str>,
) -> Result<I, Error>
async fn get_playlist( &self, auth_: &BearerToken, video_rid: &VideoRid, start: Option<&str>, end: Option<&str>, ) -> Result<I, Error>
Generates an HLS playlist for a video within optional time bounds.
Uses GET with query parameters for HLS.js compatibility.
The HLS playlist will contain links to all of the segments in the video that overlap with the given bounds,
or all segments if no bounds are provided. Read more
Source§async fn get_segment_summaries(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
) -> Result<Vec<SegmentSummary>, Error>
async fn get_segment_summaries( &self, auth_: &BearerToken, video_rid: &VideoRid, ) -> Result<Vec<SegmentSummary>, Error>
Returns the min and max absolute and media timestamps for each segment in a video. To be used during
frame-timestamp mapping.
Source§async fn get_playlist_in_bounds(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
request: &GetPlaylistInBoundsRequest,
) -> Result<I, Error>
async fn get_playlist_in_bounds( &self, auth_: &BearerToken, video_rid: &VideoRid, request: &GetPlaylistInBoundsRequest, ) -> Result<I, Error>
Generates an HLS playlist for a video with the given video rid to enable playback within an optional set of
bounds. The HLS playlist will contain links to all of the segments in the video that overlap with the given
bounds.
playlist will be limited to the given bounds.
Source§async fn get_playlist_in_bounds_v2(
&self,
auth_: &BearerToken,
request: &GetPlaylistInBoundsForChannelRequest,
) -> Result<I, Error>
async fn get_playlist_in_bounds_v2( &self, auth_: &BearerToken, request: &GetPlaylistInBoundsForChannelRequest, ) -> Result<I, Error>
Generates an HLS playlist for a video series (identified by channel + tags) within bounds.
Source§async fn get_playlist_v2(
&self,
auth_: &BearerToken,
data_source_rid: Option<&DataSourceRid>,
asset_rid: Option<&AssetRid>,
data_scope_name: Option<&str>,
channel: &str,
tags: Option<&str>,
start: &str,
end: &str,
) -> Result<I, Error>
async fn get_playlist_v2( &self, auth_: &BearerToken, data_source_rid: Option<&DataSourceRid>, asset_rid: Option<&AssetRid>, data_scope_name: Option<&str>, channel: &str, tags: Option<&str>, start: &str, end: &str, ) -> Result<I, Error>
Generates an HLS playlist for a video series within time bounds.
Specify either dataSourceRid OR (assetRid + dataScopeName) to identify the series source. Read more
Source§async fn get_segment_summaries_in_bounds(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
request: &GetSegmentSummariesInBoundsRequest,
) -> Result<Vec<SegmentSummary>, Error>
async fn get_segment_summaries_in_bounds( &self, auth_: &BearerToken, video_rid: &VideoRid, request: &GetSegmentSummariesInBoundsRequest, ) -> Result<Vec<SegmentSummary>, Error>
Returns the min and max absolute and media timestamps for each segment in a video that overlap with an
optional set of bounds.
Source§async fn get_segment_summaries_in_bounds_v2(
&self,
auth_: &BearerToken,
request: &GetSegmentSummariesInBoundsForChannelRequest,
) -> Result<Vec<SegmentSummaryV2>, Error>
async fn get_segment_summaries_in_bounds_v2( &self, auth_: &BearerToken, request: &GetSegmentSummariesInBoundsForChannelRequest, ) -> Result<Vec<SegmentSummaryV2>, Error>
Returns the min and max absolute and media timestamps for each segment matching a video series
(identified by channel + tags) within the specified bounds.
Source§async fn get_segment_metadata_v2(
&self,
auth_: &BearerToken,
request: &GetSegmentMetadataForChannelRequest,
) -> Result<Option<VideoChannelSegmentsMetadata>, Error>
async fn get_segment_metadata_v2( &self, auth_: &BearerToken, request: &GetSegmentMetadataForChannelRequest, ) -> Result<Option<VideoChannelSegmentsMetadata>, Error>
Returns aggregated segment metadata for a video channel series, including total frames,
segment count, min/max timestamps, and average frame rate. Optionally filter by time bounds.
Source§async fn get_segment_by_timestamp_v2(
&self,
auth_: &BearerToken,
request: &GetSegmentByTimestampV2Request,
) -> Result<Option<SegmentV2>, Error>
async fn get_segment_by_timestamp_v2( &self, auth_: &BearerToken, request: &GetSegmentByTimestampV2Request, ) -> Result<Option<SegmentV2>, Error>
Returns metadata for the segment within a video series containing the requested absolute timestamp.
Source§async fn get_segment_at_or_after_timestamp(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
request: &GetSegmentAtOrAfterTimestampRequest,
) -> Result<Option<Segment>, Error>
async fn get_segment_at_or_after_timestamp( &self, auth_: &BearerToken, video_rid: &VideoRid, request: &GetSegmentAtOrAfterTimestampRequest, ) -> Result<Option<Segment>, Error>
Returns metadata for the segment containing the requested absolute timestamp. If no segment contains
the timestamp, returns the closest segment starting after the timestamp. Returns empty if no segment
is found at or after the timestamp.
Source§async fn get_file_summaries(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
request: &GetFileSummariesRequest,
) -> Result<GetFileSummariesResponse, Error>
async fn get_file_summaries( &self, auth_: &BearerToken, video_rid: &VideoRid, request: &GetFileSummariesRequest, ) -> Result<GetFileSummariesResponse, Error>
Returns the min and max absolute timestamps from non-archived video files associated with a given video that
overlap with an optional set of bounds. The files on the edges of the bounds will be truncated to segments
that are inside or overlap with the bounds.
Source§async fn generate_whip_stream(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
) -> Result<GenerateWhipStreamResponse, Error>
async fn generate_whip_stream( &self, auth_: &BearerToken, video_rid: &VideoRid, ) -> Result<GenerateWhipStreamResponse, Error>
Generates a stream ID scoped to a video and returns a WHIP URL with a MediaMTX JWT and ICE servers.
Enforces write permission on the video.
Source§async fn generate_whep_stream(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
) -> Result<Option<GenerateWhepStreamResponse>, Error>
async fn generate_whep_stream( &self, auth_: &BearerToken, video_rid: &VideoRid, ) -> Result<Option<GenerateWhepStreamResponse>, Error>
Returns WHEP URL, ICE servers, and token for playing back the active stream.
Returns empty if there is no active stream.
Enforces read permission on the video.
Source§async fn get_stream(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
stream_id: &str,
) -> Result<Option<VideoStream>, Error>
async fn get_stream( &self, auth_: &BearerToken, video_rid: &VideoRid, stream_id: &str, ) -> Result<Option<VideoStream>, Error>
Returns stream session metadata for a given stream ID scoped to the video.
Enforces read permission on the video.
Source§async fn get_streams_in_bounds(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
request: &GetStreamsInBoundsRequest,
) -> Result<GetStreamsInBoundsResponse, Error>
async fn get_streams_in_bounds( &self, auth_: &BearerToken, video_rid: &VideoRid, request: &GetStreamsInBoundsRequest, ) -> Result<GetStreamsInBoundsResponse, Error>
Returns all stream sessions for a video that overlap with the specified time bounds.
A stream overlaps if there is any intersection between its [start, end] interval and the provided bounds.
Enforces read permission on the video.
Source§async fn end_stream(
&self,
auth_: &BearerToken,
video_rid: &VideoRid,
) -> Result<EndStreamResponse, Error>
async fn end_stream( &self, auth_: &BearerToken, video_rid: &VideoRid, ) -> Result<EndStreamResponse, Error>
Marks the active stream session as ended for the video.
Throws VIDEO_NOT_FOUND if no active stream exists.
Enforces write permission on the video.
Source§async fn upload_segment_from_media_mtx(
&self,
auth_: &BearerToken,
stream_path: &str,
file_path: &str,
duration: &str,
min_timestamp_seconds: SafeLong,
min_timestamp_nanos: SafeLong,
content_length: SafeLong,
body: impl AsyncWriteBody<O> + Sync + Send,
) -> Result<(), Error>
async fn upload_segment_from_media_mtx( &self, auth_: &BearerToken, stream_path: &str, file_path: &str, duration: &str, min_timestamp_seconds: SafeLong, min_timestamp_nanos: SafeLong, content_length: SafeLong, body: impl AsyncWriteBody<O> + Sync + Send, ) -> Result<(), Error>
MediaMTX segment upload endpoint. Receives video segments from MediaMTX hooks.
Validates JWT and logs session. Future: create video segments from uploaded files.
Source§impl<C: Clone> Clone for AsyncVideoServiceClient<C>
impl<C: Clone> Clone for AsyncVideoServiceClient<C>
Source§fn clone(&self) -> AsyncVideoServiceClient<C>
fn clone(&self) -> AsyncVideoServiceClient<C>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<C> Freeze for AsyncVideoServiceClient<C>where
C: Freeze,
impl<C> !RefUnwindSafe for AsyncVideoServiceClient<C>
impl<C> Send for AsyncVideoServiceClient<C>where
C: Send,
impl<C> Sync for AsyncVideoServiceClient<C>where
C: Sync,
impl<C> Unpin for AsyncVideoServiceClient<C>where
C: Unpin,
impl<C> UnsafeUnpin for AsyncVideoServiceClient<C>where
C: UnsafeUnpin,
impl<C> !UnwindSafe for AsyncVideoServiceClient<C>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request