1/**********
2This library is free software; you can redistribute it and/or modify it under
3the terms of the GNU Lesser General Public License as published by the
4Free Software Foundation; either version 3 of the License, or (at your
5option) any later version. (See <http://www.gnu.org/copyleft/lesser.html>.)
6
7This library is distributed in the hope that it will be useful, but WITHOUT
8ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
10more details.
11
12You should have received a copy of the GNU Lesser General Public License
13along with this library; if not, write to the Free Software Foundation, Inc.,
1451 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15**********/
16// "liveMedia"
17// Copyright (c) 1996-2020 Live Networks, Inc. All rights reserved.
18// MP3 Transcoder
19// Implementation
20
21#include "MP3Transcoder.hh"
22
23MP3Transcoder::MP3Transcoder(UsageEnvironment& env,
24 MP3ADUTranscoder* aduTranscoder)
25 : MP3FromADUSource(env, aduTranscoder, False) {
26}
27
28MP3Transcoder::~MP3Transcoder() {
29}
30
31MP3Transcoder* MP3Transcoder::createNew(UsageEnvironment& env,
32 unsigned outBitrate /* in kbps */,
33 FramedSource* inputSource) {
34 MP3Transcoder* newSource = NULL;
35
36 do {
37 // Create the intermediate filters that help implement the transcoder:
38 ADUFromMP3Source* aduFromMP3
39 = ADUFromMP3Source::createNew(env, inputSource, False);
40 // Note: This also checks that "inputSource" is an MP3 source
41 if (aduFromMP3 == NULL) break;
42
43 MP3ADUTranscoder* aduTranscoder
44 = MP3ADUTranscoder::createNew(env, outBitrate, aduFromMP3);
45 if (aduTranscoder == NULL) break;
46
47 // Then create the transcoder itself:
48 newSource = new MP3Transcoder(env, aduTranscoder);
49 } while (0);
50
51 return newSource;
52}
53