MythTV
master
mythplugins
mythmusic
mythmusic
lameencoder.h
Go to the documentation of this file.
1
/*
2
MP3 encoding support using liblame for MythMusic
3
4
(c) 2003 Stefan Frank
5
6
Please send an e-mail to sfr@gmx.net if you have
7
questions or comments.
8
9
Project Website: http://www.mythtv.org/
10
11
This program is free software; you can redistribute it and/or modify
12
it under the terms of the GNU General Public License as published by
13
the Free Software Foundation; either version 2 of the License, or
14
(at your option) any later version.
15
16
This program is distributed in the hope that it will be useful,
17
but WITHOUT ANY WARRANTY; without even the implied warranty of
18
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
GNU General Public License for more details.
20
21
You should have received a copy of the GNU General Public License
22
along with this program; if not, write to the Free Software
23
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24
*/
25
26
#ifndef LAMEENCODER_H_
27
#define LAMEENCODER_H_
28
29
class
QString;
30
class
MusicMetadata
;
31
class
Encoder
;
32
33
#ifdef MMX
34
#define LAME_WORKAROUND 1 // NOLINT(cppcoreguidelines-macro-usage)
35
#undef MMX
36
#endif
37
38
#include <lame/lame.h>
39
40
#ifdef LAME_WORKAROUND
41
#define MMX 1 // NOLINT(cppcoreguidelines-macro-usage)
42
#endif
43
44
#include "
encoder.h
"
45
46
class
LameEncoder
:
public
Encoder
47
{
48
public
:
49
LameEncoder
(
const
QString &outfile,
int
qualitylevel,
MusicMetadata
*metadata,
50
bool
vbr =
false
);
51
~LameEncoder
()
override
;
52
int
addSamples
(int16_t *
bytes
,
unsigned
int
len)
override
;
// Encoder
53
54
private
:
55
int
init_encoder
(lame_global_flags *gf,
int
quality,
bool
vbr)
const
;
56
static
void
init_id3tags
(lame_global_flags *gf);
57
58
int
m_bits
{16};
59
int
m_channels
{2};
60
int
m_bytesPerSample
{
m_channels
*
m_bits
/ 8};
61
int
m_samplesPerChannel
{0};
62
63
// worst-case estimate
64
int
m_mp3BufSize
{(int)(1.25 * 16384 + 7200)};
65
char
*
m_mp3Buf
{
nullptr
};
66
67
lame_global_flags *
m_gf
{
nullptr
};
68
};
69
70
#endif
71
LameEncoder::m_bits
int m_bits
Definition:
lameencoder.h:58
LameEncoder::m_mp3Buf
char * m_mp3Buf
Definition:
lameencoder.h:65
LameEncoder::addSamples
int addSamples(int16_t *bytes, unsigned int len) override
Definition:
lameencoder.cpp:142
LameEncoder::m_bytesPerSample
int m_bytesPerSample
Definition:
lameencoder.h:60
LameEncoder::LameEncoder
LameEncoder(const QString &outfile, int qualitylevel, MusicMetadata *metadata, bool vbr=false)
Definition:
lameencoder.cpp:100
LameEncoder::~LameEncoder
~LameEncoder() override
Definition:
lameencoder.cpp:118
Encoder
Definition:
encoder.h:13
MusicMetadata
Definition:
musicmetadata.h:80
LameEncoder::m_gf
lame_global_flags * m_gf
Definition:
lameencoder.h:67
LameEncoder
Definition:
lameencoder.h:46
LameEncoder::m_channels
int m_channels
Definition:
lameencoder.h:59
LameEncoder::m_samplesPerChannel
int m_samplesPerChannel
Definition:
lameencoder.h:61
LameEncoder::init_id3tags
static void init_id3tags(lame_global_flags *gf)
Definition:
lameencoder.cpp:47
LameEncoder::m_mp3BufSize
int m_mp3BufSize
Definition:
lameencoder.h:64
LameEncoder::init_encoder
int init_encoder(lame_global_flags *gf, int quality, bool vbr) const
Definition:
lameencoder.cpp:61
musicbrainzngs.compat.bytes
bytes
Definition:
compat.py:49
encoder.h
Generated on Mon Nov 25 2024 03:16:00 for MythTV by
1.8.17