Loading...
Searching...
No Matches
Video::VideoDecoder Class Referencefinal
Inheritance diagram for Video::VideoDecoder:
Classes | |
| struct | SeekHold |
Public Member Functions | |
| VideoDecoder (DecoderConfiguration) noexcept | |
| bool | open (const std::string &inputFile) noexcept |
| bool | load (const std::string &inputFile) noexcept |
| const std::string & | file () const noexcept |
| int64_t | duration () const noexcept |
| void | seek (int64_t flicks) override |
| AVFrame * | dequeue_frame () noexcept override |
| void | release_frame (AVFrame *) noexcept override |
| SeekHold | holdSeekRequests () noexcept |
Public Member Functions inherited from Video::LibAVDecoder | |
| ReadFrame | enqueue_frame (const AVPacket *pkt) noexcept |
| std::pair< AVBufferRef *, const AVCodec * > | open_hwdec (const AVCodec &) noexcept |
| int | init_codec_context (const AVCodec *codec, AVBufferRef *hw_dev_ctx, const AVStream *stream, std::function< void(AVCodecContext &)> setup) |
| bool | open_codec_context (VideoInterface &self, const AVStream *stream, std::function< void(AVCodecContext &)> setup) |
| void | init_scaler (VideoInterface &self) noexcept |
| void | load_packet_in_frame (const AVPacket &packet, AVFrame &frame) |
| ReadFrame | read_one_frame (AVPacket &packet) |
| ReadFrame | read_one_frame_raw (AVPacket &packet) |
| ReadFrame | read_one_frame_avcodec (AVPacket &packet) |
| void | landSkip (AVFrame *f) noexcept |
| void | dropSkipCandidate () noexcept |
| Gives the held-back frame back to the frame pool. | |
| ReadFrame | takeSkipCandidate () noexcept |
| The held-back frame, converted as enqueue_frame converts its frames. | |
Additional Inherited Members | |
Public Attributes inherited from Video::VideoInterface | |
| std::atomic_int | seek_generation {} |
| std::atomic_int | seeks_done {} |
Public Attributes inherited from Video::VideoMetadata | |
| std::string | filePath |
| AVCodecID | codec_id = AV_CODEC_ID_NONE |
| FrameAccess | frame_access = FrameAccess::Unknown |
| int | max_keyframe_gap {-1} |
| double | fps {} |
| bool | realTime {} |
| double | flicks_per_dts {} |
| double | dts_per_flicks {} |
| int64_t | start_pts {} |
| The timestamp shown at playback time 0: see playbackStartPts. | |
| AVRational | time_base {0, 1} |
| The video stream's time base, which pts are counted in. | |
Public Attributes inherited from Video::ImageFormat | |
| int | width {} |
| int | height {} |
| AVPixelFormat | pixel_format = AVPixelFormat(-1) |
| AVPixelFormat | hwaccel_sw_format = AVPixelFormat(-1) |
| VideoPixelFormat | native_format = VideoPixelFormat::Unknown |
| AVColorRange | color_range = AVCOL_RANGE_UNSPECIFIED |
| AVColorPrimaries | color_primaries = AVCOL_PRI_UNSPECIFIED |
| AVColorTransferCharacteristic | color_trc = AVCOL_TRC_UNSPECIFIED |
| AVColorSpace | color_space = AVCOL_SPC_UNSPECIFIED |
| AVChromaLocation | chroma_location = AVCHROMA_LOC_UNSPECIFIED |
| AVMasteringDisplayMetadata | mastering_display {} |
| std::optional< AVContentLightMetadata > | content_light {} |
| Interlacing | interlacing = ::Video::Interlacing::None |
| OutputFormat | output_format = ::Video::OutputFormat::SDR |
| Tonemap | tonemap = ::Video::Tonemap::Auto |
| Deinterlace | deinterlace = ::Video::Deinterlace::Weave |
Public Attributes inherited from Video::LibAVDecoder | |
| DecoderConfiguration | m_conf |
| AVFormatContext * | m_formatContext {} |
| AVStream * | m_avstream {} |
| const AVCodec * | m_codec {} |
| AVCodecContext * | m_codecContext {} |
| FrameQueue | m_frames |
| Rescale | m_rescale |
| MissingTimestamps | m_missingTimestamps |
| int64_t | m_ptsLead {} |
| int64_t | m_skipBefore {AV_NOPTS_VALUE} |
| AVFrame * | m_skipCandidate {} |
| The last frame held back while m_skipBefore is set. | |
| int64_t | m_skipLandingPts {AV_NOPTS_VALUE} |
| std::atomic_bool | m_finished {} |
| Set by the decoding thread, polled by the owner waiting for the end. | |
Member Function Documentation
◆ dequeue_frame()
|
overridevirtualnoexcept |
Implements Video::VideoInterface.
◆ release_frame()
|
overridevirtualnoexcept |
Implements Video::VideoInterface.
◆ seek()
|
overridevirtual |
Asks for the frames from this playback time on; a source that cannot seek ignores it.
Reimplemented from Video::VideoInterface.
The documentation for this class was generated from the following files:
- VideoDecoder.hpp
- VideoDecoder.cpp
Public Member Functions inherited from