File tree Expand file tree Collapse file tree 2 files changed +27
-15
lines changed Expand file tree Collapse file tree 2 files changed +27
-15
lines changed Original file line number Diff line number Diff line change @@ -110,6 +110,30 @@ void Transcoder::add( const InputStreamsDesc& streamDefs )
110
110
throw std::runtime_error ( " _inputStreams and _streamTranscoders must have the same number of streams" );
111
111
}
112
112
113
+
114
+ void Transcoder::processFrame ()
115
+ {
116
+ for ( size_t streamIndex = 0 ; streamIndex < _inputStreams.size (); ++streamIndex )
117
+ {
118
+ if ( ( _streamTranscoders.size () > streamIndex ) &&
119
+ ! _streamTranscoders.at ( streamIndex )->processFrame () )
120
+ {
121
+ // _inputStreams.erase( _inputStreams.begin() + streamIndex );
122
+ _inputStreams.clear ();
123
+ }
124
+ }
125
+
126
+ if ( _inputStreams.size () == 0 )
127
+ {
128
+ break ;
129
+ }
130
+ for ( size_t i = 0 ; i < _streamTranscoders.size (); ++i )
131
+ {
132
+ _streamTranscoders.at ( i )->processFrame ();
133
+ }
134
+ }
135
+
136
+
113
137
void Transcoder::process ( ProgressListener& progress )
114
138
{
115
139
size_t frame = 0 ;
@@ -134,21 +158,7 @@ void Transcoder::process( ProgressListener& progress )
134
158
break ;
135
159
}
136
160
137
-
138
- for ( size_t streamIndex = 0 ; streamIndex < _inputStreams.size (); ++streamIndex )
139
- {
140
- if ( ( _streamTranscoders.size () > streamIndex ) &&
141
- ! _streamTranscoders.at ( streamIndex )->processFrame () )
142
- {
143
- // _inputStreams.erase( _inputStreams.begin() + streamIndex );
144
- _inputStreams.clear ();
145
- }
146
- }
147
-
148
- if ( _inputStreams.size () == 0 )
149
- {
150
- break ;
151
- }
161
+ processFrame ();
152
162
153
163
++frame;
154
164
}
Original file line number Diff line number Diff line change @@ -41,6 +41,8 @@ class Transcoder
41
41
void add ( const std::string& filename, const size_t streamIndex, const std::string& profile );
42
42
void add ( const InputStreamsDesc& streamDefs );
43
43
44
+ void processFrame ();
45
+
44
46
void process ( ProgressListener& progress );
45
47
46
48
private:
You can’t perform that action at this time.
0 commit comments