Skip to content

Commit 4122382

Browse files
author
Clement Champetier
committed
Merge branch 'master' into develop
2 parents 7566857 + eaf480e commit 4122382

20 files changed

+95
-80
lines changed

src/AvTranscoder/mediaProperty/FileProperties.cpp

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,22 +82,40 @@ void FileProperties::extractStreamProperties( IProgress& progress, const EAnalys
8282

8383
// once the streams vectors are filled, add their references the base streams vector
8484
for( size_t streamIndex = 0; streamIndex < _videoStreams.size(); ++streamIndex )
85-
_streams[ _videoStreams.at( streamIndex ).getStreamIndex() ] = &_videoStreams.at( streamIndex );
85+
{
86+
const size_t videoStreamIndex = _videoStreams.at( streamIndex ).getStreamIndex();
87+
_streams[ videoStreamIndex ] = &_videoStreams.at( streamIndex );
88+
}
8689

8790
for( size_t streamIndex = 0; streamIndex < _audioStreams.size(); ++ streamIndex )
88-
_streams[ _audioStreams.at(streamIndex).getStreamIndex() ] = &_audioStreams.at(streamIndex);
91+
{
92+
const size_t audioStreamIndex = _audioStreams.at( streamIndex ).getStreamIndex();
93+
_streams[ audioStreamIndex ] = &_audioStreams.at(streamIndex);
94+
}
8995

9096
for( size_t streamIndex = 0; streamIndex < _dataStreams.size(); ++ streamIndex )
91-
_streams[ _dataStreams.at(streamIndex).getStreamIndex() ] = &_dataStreams.at(streamIndex);
97+
{
98+
const size_t dataStreamIndex = _dataStreams.at( streamIndex ).getStreamIndex();
99+
_streams[ dataStreamIndex ] = &_dataStreams.at(streamIndex);
100+
}
92101

93102
for( size_t streamIndex = 0; streamIndex < _subtitleStreams.size(); ++ streamIndex )
94-
_streams[ _subtitleStreams.at(streamIndex).getStreamIndex() ] = &_subtitleStreams.at(streamIndex);
103+
{
104+
const size_t subtitleStreamIndex = _subtitleStreams.at( streamIndex ).getStreamIndex();
105+
_streams[ subtitleStreamIndex ] = &_subtitleStreams.at(streamIndex);
106+
}
95107

96108
for( size_t streamIndex = 0; streamIndex < _attachementStreams.size(); ++ streamIndex )
97-
_streams[ _attachementStreams.at(streamIndex).getStreamIndex() ] = &_attachementStreams.at(streamIndex);
109+
{
110+
const size_t attachementStreamIndex = _attachementStreams.at( streamIndex ).getStreamIndex();
111+
_streams[ attachementStreamIndex ] = &_attachementStreams.at(streamIndex);
112+
}
98113

99114
for( size_t streamIndex = 0; streamIndex < _unknownStreams.size(); ++ streamIndex )
100-
_streams[ _unknownStreams.at(streamIndex).getStreamIndex() ] = &_unknownStreams.at(streamIndex);
115+
{
116+
const size_t unknownStreamIndex = _unknownStreams.at( streamIndex ).getStreamIndex();
117+
_streams[ unknownStreamIndex ] = &_unknownStreams.at(streamIndex);
118+
}
101119

102120
// if the analysis level has decoded some streams parts, return at the beginning
103121
if( level > eAnalyseLevelHeader )
@@ -139,7 +157,7 @@ double FileProperties::getStartTime() const
139157
return 1.0 * (unsigned int)_avFormatContext->start_time / AV_TIME_BASE;
140158
}
141159

142-
double FileProperties::getDuration() const
160+
float FileProperties::getDuration() const
143161
{
144162
if( ! _avFormatContext )
145163
throw std::runtime_error( "unknown format context" );

src/AvTranscoder/mediaProperty/FileProperties.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class AvExport FileProperties
4444

4545
size_t getProgramsCount() const;
4646
double getStartTime() const;
47-
double getDuration() const; ///< in seconds
47+
float getDuration() const; ///< in seconds
4848
size_t getBitRate() const; ///< total stream bitrate in bit/s, 0 if not available (result of a computation by ffmpeg)
4949
size_t getPacketSize() const;
5050

src/AvTranscoder/mediaProperty/StreamProperties.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,10 @@ Rational StreamProperties::getTimeBase() const
3737
return timeBase;
3838
}
3939

40-
double StreamProperties::getDuration() const
40+
float StreamProperties::getDuration() const
4141
{
4242
Rational timeBase = getTimeBase();
43-
double duration = ( timeBase.num / (double) timeBase.den ) * _formatContext->streams[_streamIndex]->duration;
44-
return duration;
43+
return ( timeBase.num / (float) timeBase.den ) * _formatContext->streams[_streamIndex]->duration;
4544
}
4645

4746
PropertyVector StreamProperties::getPropertiesAsVector() const

src/AvTranscoder/mediaProperty/StreamProperties.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class AvExport StreamProperties
1818
size_t getStreamIndex() const { return _streamIndex; }
1919
size_t getStreamId() const;
2020
Rational getTimeBase() const;
21-
double getDuration() const; ///< in seconds
21+
float getDuration() const; ///< in seconds
2222
const PropertyVector& getMetadatas() const { return _metadatas; }
2323

2424
#ifndef SWIG

src/AvTranscoder/mediaProperty/VideoProperties.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -518,20 +518,20 @@ int VideoProperties::getLevel() const
518518
return _codecContext->level;
519519
}
520520

521-
double VideoProperties::getFps() const
521+
float VideoProperties::getFps() const
522522
{
523-
size_t nbFrames = getNbFrames();
523+
const size_t nbFrames = getNbFrames();
524524
if( nbFrames )
525525
{
526-
double duration = getDuration();
527-
double epsilon = std::numeric_limits<double>::epsilon();
526+
const float duration = getDuration();
527+
const float epsilon = std::numeric_limits<float>::epsilon();
528528
if( duration > epsilon )
529529
return nbFrames / duration;
530530
}
531531

532532
// if nbFrames of stream is unknwon
533533
Rational timeBase = getTimeBase();
534-
double fps = timeBase.den / (double) timeBase.num;
534+
float fps = timeBase.den / (double) timeBase.num;
535535
if( std::isinf( fps ) )
536536
{
537537
std::ostringstream os;

src/AvTranscoder/mediaProperty/VideoProperties.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class AvExport VideoProperties : public StreamProperties
5656
int getProfile() const;
5757
int getLevel() const;
5858

59-
double getFps() const;
59+
float getFps() const;
6060

6161
bool hasBFrames() const;
6262
//bool isClosedGop() const;

src/AvTranscoder/stat/AudioStat.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ namespace avtranscoder
1212
class AvExport AudioStat
1313
{
1414
public:
15-
AudioStat( const double duration, const size_t nbPackets )
15+
AudioStat( const float duration, const size_t nbPackets )
1616
: _duration( duration )
1717
, _nbPackets( nbPackets )
1818
{}
1919

2020
public:
21-
double _duration;
21+
float _duration;
2222
size_t _nbPackets;
2323
};
2424

src/AvTranscoder/stat/VideoStat.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace avtranscoder
77

88
double VideoStat::psnr( const double d )
99
{
10-
return -10.0 * log(d) / log(10.0);
10+
return -10.0 * log10(d);
1111
}
1212

1313
}

src/AvTranscoder/stat/VideoStat.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace avtranscoder
1212
class AvExport VideoStat
1313
{
1414
public:
15-
VideoStat( const double duration, const size_t nbFrames )
15+
VideoStat( const float duration, const size_t nbFrames )
1616
: _duration( duration )
1717
, _nbFrames( nbFrames )
1818
, _quality( 0 )
@@ -23,7 +23,7 @@ class AvExport VideoStat
2323
static double psnr( const double d );
2424

2525
public:
26-
double _duration;
26+
float _duration;
2727
size_t _nbFrames;
2828
size_t _quality; ///< Between 1 (good) and FF_LAMBDA_MAX (bad). 0 if unknown.
2929
double _psnr; ///< 0 if unknown.

src/AvTranscoder/stream/IInputStream.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class AvExport IInputStream
2222
virtual bool readNextPacket( CodedData& data ) = 0;
2323

2424
virtual size_t getStreamIndex() const = 0;
25-
virtual double getDuration() const = 0;
25+
virtual float getDuration() const = 0;
2626
virtual AVMediaType getStreamType() const = 0;
2727

2828
//@{

src/AvTranscoder/stream/IOutputStream.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class AvExport IOutputStream
2525
virtual ~IOutputStream() {};
2626

2727
virtual size_t getStreamIndex() const = 0;
28-
virtual double getStreamDuration() const = 0;
28+
virtual float getStreamDuration() const = 0;
2929
virtual size_t getNbFrames() const = 0;
3030

3131
virtual EWrappingStatus wrap( const CodedData& data ) = 0;

src/AvTranscoder/stream/InputStream.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ AVMediaType InputStream::getStreamType() const
111111
return _inputFile->getFormatContext().getAVStream( _streamIndex ).codec->codec_type;
112112
}
113113

114-
double InputStream::getDuration() const
114+
float InputStream::getDuration() const
115115
{
116116
return _inputFile->getProperties().getStreamPropertiesWithIndex( _streamIndex ).getDuration();
117117
}

src/AvTranscoder/stream/InputStream.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class AvExport InputStream : public IInputStream
2626

2727
size_t getStreamIndex() const { return _streamIndex; }
2828
/// Get duration of the stream, in seconds
29-
double getDuration() const;
29+
float getDuration() const;
3030
AVMediaType getStreamType() const;
3131

3232
VideoCodec& getVideoCodec();

src/AvTranscoder/stream/OutputStream.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ OutputStream::OutputStream( OutputFile& outputFile, const size_t streamIndex )
1414
{
1515
}
1616

17-
double OutputStream::getStreamDuration() const
17+
float OutputStream::getStreamDuration() const
1818
{
1919
AVStream& outputStream = _outputFile->getFormatContext().getAVStream( _streamIndex );
2020
#if AVTRANSCODER_FFMPEG_DEPENDENCY && LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(55, 40, 100)

src/AvTranscoder/stream/OutputStream.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class AvExport OutputStream : public IOutputStream
1414
OutputStream( OutputFile& outputFile, const size_t streamIndex );
1515

1616
size_t getStreamIndex() const { return _streamIndex; }
17-
double getStreamDuration() const;
17+
float getStreamDuration() const;
1818
size_t getNbFrames() const; ///< If audio stream, returns number of packets
1919

2020
IOutputStream::EWrappingStatus wrap( const CodedData& data );

src/AvTranscoder/transcoder/StreamTranscoder.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ namespace avtranscoder
2323
StreamTranscoder::StreamTranscoder(
2424
IInputStream& inputStream,
2525
IOutputFile& outputFile,
26-
const double offset
26+
const float offset
2727
)
2828
: _inputStream( &inputStream )
2929
, _outputStream( NULL )
@@ -109,7 +109,7 @@ StreamTranscoder::StreamTranscoder(
109109
IOutputFile& outputFile,
110110
const ProfileLoader::Profile& profile,
111111
const int subStreamIndex,
112-
const double offset
112+
const float offset
113113
)
114114
: _inputStream( &inputStream )
115115
, _outputStream( NULL )
@@ -400,7 +400,7 @@ bool StreamTranscoder::processRewrap()
400400
return true;
401401
case IOutputStream::eWrappingWaitingForData:
402402
// the wrapper needs more data to write the current packet
403-
return processRewrap();
403+
return processFrame();
404404
case IOutputStream::eWrappingError:
405405
return false;
406406
}
@@ -458,7 +458,7 @@ bool StreamTranscoder::processTranscode( const int subStreamIndex )
458458
return true;
459459
case IOutputStream::eWrappingWaitingForData:
460460
// the wrapper needs more data to write the current packet
461-
return processTranscode( subStreamIndex );
461+
return processFrame();
462462
case IOutputStream::eWrappingError:
463463
return false;
464464
}
@@ -482,11 +482,11 @@ void StreamTranscoder::switchToInputDecoder()
482482
assert( _currentDecoder != NULL );
483483
}
484484

485-
double StreamTranscoder::getDuration() const
485+
float StreamTranscoder::getDuration() const
486486
{
487487
if( _inputStream )
488488
{
489-
double totalDuration = _inputStream->getDuration() + _offset;
489+
const float totalDuration = _inputStream->getDuration() + _offset;
490490
if( totalDuration < 0 )
491491
{
492492
LOG_WARN( "Offset of " << _offset << "s applied to a stream with a duration of " << _inputStream->getDuration() << "s. Set its duration to 0s." )
@@ -495,7 +495,7 @@ double StreamTranscoder::getDuration() const
495495
return totalDuration;
496496
}
497497
else
498-
return std::numeric_limits<double>::max();
498+
return std::numeric_limits<float>::max();
499499
}
500500

501501
StreamTranscoder::EProcessCase StreamTranscoder::getProcessCase() const

src/AvTranscoder/transcoder/StreamTranscoder.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ class AvExport StreamTranscoder
2929
* @brief rewrap stream
3030
* @note offset feature when rewrap a stream is not supported
3131
**/
32-
StreamTranscoder( IInputStream& inputStream, IOutputFile& outputFile, const double offset = 0 );
32+
StreamTranscoder( IInputStream& inputStream, IOutputFile& outputFile, const float offset = 0 );
3333

3434
/**
3535
* @brief transcode stream
3636
**/
37-
StreamTranscoder( IInputStream& inputStream, IOutputFile& outputFile, const ProfileLoader::Profile& profile, const int subStreamIndex = -1, const double offset = 0 );
37+
StreamTranscoder( IInputStream& inputStream, IOutputFile& outputFile, const ProfileLoader::Profile& profile, const int subStreamIndex = -1, const float offset = 0 );
3838

3939
/**
4040
* @brief encode from a generated stream
@@ -68,7 +68,7 @@ class AvExport StreamTranscoder
6868
* @note if it's a generated stream, return limit of double.
6969
* @note if offset > duration of the stream, return 0
7070
*/
71-
double getDuration() const;
71+
float getDuration() const;
7272

7373
/// Returns a reference to the current decoder (from input file or from generator)
7474
IDecoder& getCurrentDecoder() const { return *_currentDecoder; }
@@ -121,7 +121,7 @@ class AvExport StreamTranscoder
121121

122122
int _subStreamIndex; ///< Index of channel that is processed from the input stream (<0 if no demultiplexing).
123123

124-
double _offset; ///< Offset, in seconds, at the beginning of the StreamTranscoder.
124+
float _offset; ///< Offset, in seconds, at the beginning of the StreamTranscoder.
125125

126126
bool _canSwitchToGenerator; ///< Automatically switch to a generator at the end of the stream
127127
};

0 commit comments

Comments
 (0)