Skip to content

Commit c06898b

Browse files
committed
IDecoder: add decoded frames counter
1 parent 388d847 commit c06898b

File tree

5 files changed

+31
-0
lines changed

5 files changed

+31
-0
lines changed

src/AvTranscoder/decoder/AudioDecoder.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,10 @@ bool AudioDecoder::decodeNextFrame(IFrame& frameBuffer)
121121
return false;
122122
}
123123
}
124+
125+
if(decodeNextFrame)
126+
incrementNbDecodedFrames(frameBuffer.getAVFrame().nb_samples);
127+
124128
return decodeNextFrame;
125129
}
126130

src/AvTranscoder/decoder/AudioGenerator.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ bool AudioGenerator::decodeNextFrame(IFrame& frameBuffer)
5858
LOG_DEBUG("Convert data of the audio specified when decode next frame")
5959
_audioTransform.convert(*_inputFrame, frameBuffer);
6060
}
61+
62+
incrementNbDecodedFrames(_silent->getNbSamplesPerChannel());
6163
return true;
6264
}
6365

src/AvTranscoder/decoder/IDecoder.hpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,16 @@ namespace avtranscoder
1010

1111
class AvExport IDecoder
1212
{
13+
protected:
14+
IDecoder::IDecoder()
15+
: _decoded_frames_counter(0)
16+
{
17+
}
18+
1319
public:
20+
21+
22+
1423
virtual ~IDecoder(){};
1524

1625
/**
@@ -51,6 +60,16 @@ class AvExport IDecoder
5160
* @note Not sense for generators.
5261
*/
5362
virtual void flushDecoder() {}
63+
64+
size_t getNbDecodedFrames() { return _decoded_frames_counter; }
65+
66+
protected:
67+
void incrementNbDecodedFrames(const size_t& nb_frames = 1) {
68+
_decoded_frames_counter += nb_frames;
69+
}
70+
71+
private:
72+
size_t _decoded_frames_counter;
5473
};
5574
}
5675

src/AvTranscoder/decoder/VideoDecoder.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,10 @@ bool VideoDecoder::decodeNextFrame(IFrame& frameBuffer)
114114
return false;
115115
}
116116
}
117+
118+
if(decodeNextFrame)
119+
incrementNbDecodedFrames();
120+
117121
return decodeNextFrame;
118122
}
119123

src/AvTranscoder/decoder/VideoGenerator.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ bool VideoGenerator::decodeNextFrame(IFrame& frameBuffer)
5151
LOG_DEBUG("Convert data of the image specified when decode next frame")
5252
_videoTransform.convert(*_inputFrame, frameBuffer);
5353
}
54+
55+
incrementNbDecodedFrames();
5456
return true;
5557
}
5658

0 commit comments

Comments
 (0)