/usr/include/liveMedia/MP3ADU.hh is in liblivemedia-dev 2018.02.18-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | /**********
This library is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 3 of the License, or (at your
option) any later version. (See <http://www.gnu.org/copyleft/lesser.html>.)
This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
more details.
You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
**********/
// "liveMedia"
// Copyright (c) 1996-2018 Live Networks, Inc. All rights reserved.
// 'ADU' MP3 streams (for improved loss-tolerance)
// C++ header
#ifndef _MP3_ADU_HH
#define _MP3_ADU_HH
#ifndef _FRAMED_FILTER_HH
#include "FramedFilter.hh"
#endif
class ADUFromMP3Source: public FramedFilter {
public:
static ADUFromMP3Source* createNew(UsageEnvironment& env,
FramedSource* inputSource,
Boolean includeADUdescriptors = True);
void resetInput();
// This is called whenever there's a discontinuity in the input MP3 source
// (e.g., due to seeking within the source). It causes any still-unprocessed
// MP3 frame data within our queue to be discarded, so that it does not
// erroneously get used by backpointers from the new MP3 frames.
Boolean setScaleFactor(int scale);
protected:
ADUFromMP3Source(UsageEnvironment& env,
FramedSource* inputSource,
Boolean includeADUdescriptors);
// called only by createNew()
virtual ~ADUFromMP3Source();
private:
// Redefined virtual functions:
virtual void doGetNextFrame();
virtual char const* MIMEtype() const;
private:
Boolean doGetNextFrame1();
private:
Boolean fAreEnqueueingMP3Frame;
class SegmentQueue* fSegments;
Boolean fIncludeADUdescriptors;
unsigned fTotalDataSizeBeforePreviousRead;
int fScale;
unsigned fFrameCounter;
};
class MP3FromADUSource: public FramedFilter {
public:
static MP3FromADUSource* createNew(UsageEnvironment& env,
FramedSource* inputSource,
Boolean includeADUdescriptors = True);
protected:
MP3FromADUSource(UsageEnvironment& env,
FramedSource* inputSource,
Boolean includeADUdescriptors);
// called only by createNew()
virtual ~MP3FromADUSource();
private:
// Redefined virtual functions:
virtual void doGetNextFrame();
virtual char const* MIMEtype() const;
private:
Boolean needToGetAnADU();
void insertDummyADUsIfNecessary();
Boolean generateFrameFromHeadADU();
private:
Boolean fAreEnqueueingADU;
class SegmentQueue* fSegments;
};
// Definitions of external C functions that implement various MP3 operations:
extern "C" int mp3ZeroOutSideInfo(unsigned char*, unsigned, unsigned);
#endif
|