// This file is @generated by prost-build.
/// A single frame of a compressed video bitstream.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CompressedVideo {
    /// Timestamp of the video frame.
    #[prost(message, optional, tag = "1")]
    pub timestamp: ::core::option::Option<::prost_types::Timestamp>,
    /// Frame of reference for the video.
    #[prost(string, tag = "2")]
    pub frame_id: ::prost::alloc::string::String,
    /// Compressed video frame data.
    ///
    /// For packet-based video codecs this data must begin and end on packet
    /// boundaries (no partial packets), and must contain enough video packets to
    /// decode exactly one image (either a keyframe or delta frame). Note: Foxglove
    /// does not support video streams that include B frames because they require
    /// lookahead.
    ///
    /// Specifically, the requirements for different `format` values are:
    ///
    /// - `h264`
    ///    - Use Annex B formatted data
    ///    - Each CompressedVideo message should contain enough NAL units to decode
    ///      exactly one video frame
    ///    - Each message containing a key frame (IDR) must also include a SPS NAL
    ///      unit
    #[prost(bytes = "vec", tag = "3")]
    pub data: ::prost::alloc::vec::Vec<u8>,
    /// Video format.
    ///
    /// Supported values: `h264`, `h265`, `vp9`, `av1`.
    ///
    /// Note: compressed video support is subject to hardware limitations and
    /// patent licensing, so not all encodings may be supported on all platforms.
    /// See more about H.265 support at <https://caniuse.com/hevc,> VP9 at
    /// <https://caniuse.com/webm,> and AV1 at <https://caniuse.com/av1.>
    #[prost(string, tag = "4")]
    pub format: ::prost::alloc::string::String,
}
