PIMPL structure for Movie. More...
#include <movie_private.h>
Public Member Functions | |
cras::expected< void, std::string > | addRotationFilter () |
Add an image rotation filter to the libav graph so that the outputs are upright. More... | |
cras::expected< void, std::string > | configSwscale () |
Add a scaling filter to the libav graph so that the outputs are properly scaled and color-transformed. More... | |
void | detectTargetPixelFormat () |
Detect the pixel format into which we should extract images. More... | |
void | extractMetadata () |
Run metadata extractors to parse as much as possible in the *Msg members. More... | |
StreamDuration | getContainerDuration () const |
StreamDuration | getDuration () const |
RationalNumber | getFrameRate () const |
size_t | getNumFrames () const |
StreamDuration | getStreamDuration () const |
StreamTime | getStreamEnd () const |
StreamTime | getStreamStart () const |
ros::Time | getTimestamp (const StreamTime &ptsTime) const |
Compute ROS timestamp corresponding to the given stream timestamp taking into account the configured timestamp source. More... | |
bool | isSeekable () const |
bool | isStillImage () const |
MoviePrivate (const cras::LogHelperPtr &log) | |
Constructor. More... | |
cras::expected< void, std::string > | openCodec (const AVCodec *codec) |
Open the given codec for decoding. More... | |
void | prepareMetadataExtractors () |
Prepare metadata extractors. More... | |
cras::expected< std::pair< AVCodec *, int >, std::string > | selectStream () |
Select the best quality stream and open it for decoding. More... | |
void | updateMetadata (const StreamTime &ptsTime) |
Update the metadata for another frame (if some metadata are time-dependent). More... | |
~MoviePrivate () | |
![]() | |
::cras::LogHelperConstPtr | getCrasLogger () const |
HasLogger (const ::cras::LogHelperPtr &log) | |
void | setCrasLogger (const ::cras::LogHelperPtr &log) |
Public Attributes | |
AVCodecContext * | codecContext {} |
Codec context. More... | |
MovieOpenConfig::Ptr | config |
AVFilterContext * | filterBuffersinkContext {} |
Context for filter outputs. More... | |
AVFilterContext * | filterBuffersrcContext {} |
Context for filter inputs. More... | |
AVFilterGraph * | filterGraph {} |
Filter graph for decoding effects. More... | |
AVFormatContext * | formatContext {} |
Format context. More... | |
int | imageBufferSize |
Size of the image buffer. More... | |
MovieInfo::Ptr | info |
StreamTime | lastSeek |
The value of the last seek request (0 before first seek). More... | |
std::shared_ptr< MovieMetadataListener > | metadataListener |
Listener to the extracted metadata. More... | |
std::shared_ptr< MetadataManager > | metadataManager |
Manager of the extractable metadata. More... | |
MoviePlaybackState::Ptr | playbackState |
Playback state of the movie. More... | |
cras::optional< int64_t > | seekRequest |
When set, the next returned frame should be seeked to this position. More... | |
AVStream * | stream {} |
The selected stream. More... | |
cras::optional< StreamDuration > | subclipDuration |
If nonempty, specifies the duration of subclip to process. More... | |
cras::optional< StreamTime > | subclipEnd |
If nonempty, specifies the end of subclip to process. More... | |
cras::optional< StreamTime > | subclipStart |
If nonempty, specifies the start of subclip to process. More... | |
SwsContext * | swscaleContext {} |
Scaling context. More... | |
AVPixelFormat | targetPixelFormat |
The desired output pixel format. More... | |
Additional Inherited Members | |
![]() | |
::cras::LogHelperPtr | log |
PIMPL structure for Movie.
Definition at line 102 of file movie_private.h.
|
explicit |
Constructor.
[in] | log | Logger. |
movie_publisher::MoviePrivate::~MoviePrivate | ( | ) |
cras::expected<void, std::string> movie_publisher::MoviePrivate::addRotationFilter | ( | ) |
Add an image rotation filter to the libav graph so that the outputs are upright.
cras::expected<void, std::string> movie_publisher::MoviePrivate::configSwscale | ( | ) |
Add a scaling filter to the libav graph so that the outputs are properly scaled and color-transformed.
void movie_publisher::MoviePrivate::detectTargetPixelFormat | ( | ) |
Detect the pixel format into which we should extract images.
void movie_publisher::MoviePrivate::extractMetadata | ( | ) |
Run metadata extractors to parse as much as possible in the *Msg members.
StreamDuration movie_publisher::MoviePrivate::getContainerDuration | ( | ) | const |
StreamDuration movie_publisher::MoviePrivate::getDuration | ( | ) | const |
RationalNumber movie_publisher::MoviePrivate::getFrameRate | ( | ) | const |
size_t movie_publisher::MoviePrivate::getNumFrames | ( | ) | const |
StreamDuration movie_publisher::MoviePrivate::getStreamDuration | ( | ) | const |
StreamTime movie_publisher::MoviePrivate::getStreamEnd | ( | ) | const |
StreamTime movie_publisher::MoviePrivate::getStreamStart | ( | ) | const |
ros::Time movie_publisher::MoviePrivate::getTimestamp | ( | const StreamTime & | ptsTime | ) | const |
Compute ROS timestamp corresponding to the given stream timestamp taking into account the configured timestamp source.
[in] | ptsTime | Stream timestamp. |
bool movie_publisher::MoviePrivate::isSeekable | ( | ) | const |
bool movie_publisher::MoviePrivate::isStillImage | ( | ) | const |
cras::expected<void, std::string> movie_publisher::MoviePrivate::openCodec | ( | const AVCodec * | codec | ) |
Open the given codec for decoding.
[in] | codec | The codec to open. |
void movie_publisher::MoviePrivate::prepareMetadataExtractors | ( | ) |
Prepare metadata extractors.
cras::expected<std::pair<AVCodec*, int>, std::string> movie_publisher::MoviePrivate::selectStream | ( | ) |
Select the best quality stream and open it for decoding.
void movie_publisher::MoviePrivate::updateMetadata | ( | const StreamTime & | ptsTime | ) |
Update the metadata for another frame (if some metadata are time-dependent).
[in] | ptsTime | Stream time of the current frame. |
AVCodecContext* movie_publisher::MoviePrivate::codecContext {} |
Codec context.
Definition at line 134 of file movie_private.h.
MovieOpenConfig::Ptr movie_publisher::MoviePrivate::config |
Definition at line 111 of file movie_private.h.
AVFilterContext* movie_publisher::MoviePrivate::filterBuffersinkContext {} |
Context for filter outputs.
Definition at line 132 of file movie_private.h.
AVFilterContext* movie_publisher::MoviePrivate::filterBuffersrcContext {} |
Context for filter inputs.
Definition at line 131 of file movie_private.h.
AVFilterGraph* movie_publisher::MoviePrivate::filterGraph {} |
Filter graph for decoding effects.
Definition at line 130 of file movie_private.h.
AVFormatContext* movie_publisher::MoviePrivate::formatContext {} |
Format context.
Definition at line 136 of file movie_private.h.
int movie_publisher::MoviePrivate::imageBufferSize |
Size of the image buffer.
Definition at line 129 of file movie_private.h.
MovieInfo::Ptr movie_publisher::MoviePrivate::info |
Definition at line 112 of file movie_private.h.
StreamTime movie_publisher::MoviePrivate::lastSeek |
The value of the last seek request (0 before first seek).
Definition at line 121 of file movie_private.h.
std::shared_ptr<MovieMetadataListener> movie_publisher::MoviePrivate::metadataListener |
Listener to the extracted metadata.
Definition at line 125 of file movie_private.h.
std::shared_ptr<MetadataManager> movie_publisher::MoviePrivate::metadataManager |
Manager of the extractable metadata.
Definition at line 124 of file movie_private.h.
MoviePlaybackState::Ptr movie_publisher::MoviePrivate::playbackState |
Playback state of the movie.
Definition at line 113 of file movie_private.h.
cras::optional<int64_t> movie_publisher::MoviePrivate::seekRequest |
When set, the next returned frame should be seeked to this position.
Definition at line 120 of file movie_private.h.
AVStream* movie_publisher::MoviePrivate::stream {} |
The selected stream.
Definition at line 135 of file movie_private.h.
cras::optional<StreamDuration> movie_publisher::MoviePrivate::subclipDuration |
If nonempty, specifies the duration of subclip to process.
Definition at line 117 of file movie_private.h.
cras::optional<StreamTime> movie_publisher::MoviePrivate::subclipEnd |
If nonempty, specifies the end of subclip to process.
Definition at line 116 of file movie_private.h.
cras::optional<StreamTime> movie_publisher::MoviePrivate::subclipStart |
If nonempty, specifies the start of subclip to process.
Definition at line 115 of file movie_private.h.
SwsContext* movie_publisher::MoviePrivate::swscaleContext {} |
Scaling context.
Definition at line 133 of file movie_private.h.
AVPixelFormat movie_publisher::MoviePrivate::targetPixelFormat |
The desired output pixel format.
Definition at line 128 of file movie_private.h.