FFmpegfs Fuse Multi Media Filesystem 2.16
ffmpeg_profiles.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017-2024 by Norbert Schlia (nschlia@oblivion-software.de)
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
17 *
18 * On Debian systems, the complete text of the GNU General Public License
19 * Version 3 can be found in `/usr/share/common-licenses/GPL-3'.
20 */
21
32#ifndef FFMPEG_PROFILES_H
33#define FFMPEG_PROFILES_H
34
35#pragma once
36
37#include "ffmpeg_utils.h"
38
43{
44public:
45#define OPT_ALL 0x00000000
46#define OPT_AUDIO 0x00000001
47#define OPT_VIDEO 0x00000002
48#define OPT_SW_ONLY 0x00000004
49#define OPT_HW_ONLY 0x00000008
51 typedef struct PROFILE_OPTION
52 {
53 const char * m_key;
54 const char * m_value;
55 const int m_flags;
56 const int m_options;
61 typedef std::vector<PROFILE_OPTION> PROFILE_OPTION_VEC;
63 typedef struct PROFILE_LIST
64 {
71 typedef PROFILE_LIST const * LPCPROFILE_LIST;
73 typedef std::vector<PROFILE_LIST> PROFILE_LIST_VEC;
75protected:
79 explicit FFmpeg_Profiles() = default;
83 virtual ~FFmpeg_Profiles() = default;
84
85protected:
87};
88
89#endif // FFMPEG_PROFILES_H
The FFmpeg_Profiles class.
FFmpeg_Profiles()=default
Construct a FFmpeg_Profiles object.
PROFILE_LIST * LPPROFILE_LIST
Pointer version of PROFILE_LIST.
struct FFmpeg_Profiles::PROFILE_LIST PROFILE_LIST
List of profiles.
static const PROFILE_LIST_VEC m_profile
List of profile options.
PROFILE_OPTION const * LPCPROFILE_OPTION
Pointer to const version of PROFILE_OPTION.
std::vector< PROFILE_OPTION > PROFILE_OPTION_VEC
PROFILE_OPTION array.
struct FFmpeg_Profiles::PROFILE_OPTION PROFILE_OPTION
Profiles options.
PROFILE_OPTION * LPPROFILE_OPTION
Pointer version of PROFILE_OPTION.
virtual ~FFmpeg_Profiles()=default
Destruct a FFmpeg_Profiles object.
std::vector< PROFILE_LIST > PROFILE_LIST_VEC
PROFILE_LIST array.
PROFILE_LIST const * LPCPROFILE_LIST
Pointer to const version of PROFILE_LIST.
Various FFmpegfs utility functions.
PROFILE
Definition: ffmpeg_utils.h:179
FILETYPE
Definition: ffmpeg_utils.h:154
const PROFILE_OPTION_VEC m_option_codec
av_opt_set() options
const PROFILE_OPTION_VEC m_option_format
av_dict_set() options
FILETYPE m_filetype
File type this option set is for.
PROFILE m_profile
One of PROFILE_.
const int m_flags
Flags, see av_opt_set() and av_dict_set() FFmpeg API function.
const int m_options
One of the OPT_* flags.
const char * m_value
Value, see av_opt_set() and av_dict_set() FFmpeg API function.
const char * m_key
Key, see av_opt_set() and av_dict_set() FFmpeg API function.