Alchemy 0.0.9999
Alchemy is a C++ library for multimedia file management.
Loading...
Searching...
No Matches
ffmpeg.hxx
1#pragma once
2
3#include <Alchemy/exception.hxx>
4#include <Alchemy/media/alias.hxx>
5#include <StormByte/expected.hxx>
6#include <StormByte/multimedia/media/property/tags.hxx>
7
8#include <filesystem>
9#include <memory>
10#include <string>
11#include <unordered_map>
12#include <vector>
13
14// Forward declarations
15namespace Json { class Value; }
16
21namespace Alchemy {
26 class ALCHEMY_PUBLIC FFMpeg {
27 friend class FFProbe;
28 public:
33 FFMpeg(const FFMpeg& other) = default;
34
39 FFMpeg(FFMpeg&& other) noexcept = default;
40
46 FFMpeg& operator=(const FFMpeg& other) = default;
47
53 FFMpeg& operator=(FFMpeg&& other) noexcept = default;
54
58 virtual ~FFMpeg() noexcept = default;
59
65 static StormByte::Expected<FFMpeg, StreamError> FromFile(const std::filesystem::path& path);
66
71 Media::Streams& Streams() noexcept;
72
77 const Media::Streams& Streams() const noexcept;
78
83 const std::filesystem::path& Path() const noexcept;
84
89 static const std::string Version();
90
91 void test(const std::filesystem::path& path) const;
92
93 protected:
94 std::filesystem::path m_path;
95 Media::Streams m_streams;
96
100 FFMpeg(const std::filesystem::path& path) noexcept;
101 };
102}
The FFMpeg class.
Definition ffmpeg.hxx:26
virtual ~FFMpeg() noexcept=default
Default destructor.
FFMpeg & operator=(FFMpeg &&other) noexcept=default
Move assignment operator.
FFMpeg(FFMpeg &&other) noexcept=default
Move constructor.
FFMpeg & operator=(const FFMpeg &other)=default
Copy assignment operator.
FFMpeg(const FFMpeg &other)=default
Copy constructor.
Exception thrown when a stream error occurs.
Definition exception.hxx:61
All the classes and functions of the Alchemy library.
All the media related classes and functions.