Public Member Functions | Private Attributes | List of all members
movie_publisher::MovieReader Class Reference

Helper class for opening movie files. More...

#include <movie_reader.h>

Inheritance diagram for movie_publisher::MovieReader:
Inheritance graph
[legend]

Public Member Functions

virtual cras::expected< MovieOpenConfig, std::string > createDefaultConfig () const
 Create a default config for opening movie files. More...
 
 MovieReader (const cras::LogHelperPtr &log, const cras::BoundParamHelperPtr &params)
 Create the movie reader instance. More...
 
virtual cras::expected< MoviePtr, std::string > open (const std::string &filename, const MovieOpenConfig &config)
 Open a movie in the referenced file. More...
 
virtual ~MovieReader ()
 
- Public Member Functions inherited from cras::HasLogger
::cras::LogHelperConstPtr getCrasLogger () const
 
 HasLogger (const ::cras::LogHelperPtr &log)
 
void setCrasLogger (const ::cras::LogHelperPtr &log)
 

Private Attributes

std::unique_ptr< MovieReaderPrivate > data
 PIMPL. More...
 

Additional Inherited Members

- Protected Attributes inherited from cras::HasLogger
::cras::LogHelperPtr log
 

Detailed Description

Helper class for opening movie files.

MovieReader holds configuration that will be applied to all movies open using its open() method. Changing the configuration does not affect any already opened movies.

Typical usage:

MovieReader reader({new NodeLogHelper()});
// configuration for opening movies
auto config = reader.createDefaultConfig().or_else([](const auto& error) {throw std::runtime_error(error);});
config.setAllowYUVFallback(true);
auto movie = reader.open("path/file.mp4", config).or_else([](const auto& error) {throw std::runtime_error(error);});
// You can call seek() here
while (true)
{
  const auto& [state, image] = *movie->nextFrame().or_else([](const auto& error) {throw std::runtime_error(error);});
  if (image == nullptr)
    break;  // or you can seek to the start if you want to loop
  // Process the image
}

Definition at line 51 of file movie_reader.h.

Constructor & Destructor Documentation

◆ MovieReader()

movie_publisher::MovieReader::MovieReader ( const cras::LogHelperPtr log,
const cras::BoundParamHelperPtr params 
)
explicit

Create the movie reader instance.

Parameters
[in]logcras_cpp_common logging helper.
[in]paramsROS/YAML parameters of movie opening and metadata extractors.

◆ ~MovieReader()

virtual movie_publisher::MovieReader::~MovieReader ( )
virtual

Member Function Documentation

◆ createDefaultConfig()

virtual cras::expected<MovieOpenConfig, std::string> movie_publisher::MovieReader::createDefaultConfig ( ) const
virtual

Create a default config for opening movie files.

Returns
The config object or error string.

Reimplemented in movie_publisher::MovieReaderRos.

◆ open()

virtual cras::expected<MoviePtr, std::string> movie_publisher::MovieReader::open ( const std::string &  filename,
const MovieOpenConfig config 
)
virtual

Open a movie in the referenced file.

Parameters
[in]filenamePath to the file with the movie.
[in]configExtra configuration for the movie opening.
Returns
The movie object or an error message on failure.

Reimplemented in movie_publisher::MovieReaderRos.

Member Data Documentation

◆ data

std::unique_ptr<MovieReaderPrivate> movie_publisher::MovieReader::data
private

PIMPL.

Definition at line 77 of file movie_reader.h.


The documentation for this class was generated from the following file:


movie_publisher
Author(s): Martin Pecka
autogenerated on Wed May 28 2025 02:07:22