@@ -25,6 +25,7 @@ OutputFile::OutputFile( const std::string& filename )
25
25
, _stream ( NULL )
26
26
, _filename ( filename )
27
27
, _packetCount ( 0 )
28
+ , _verbose ( false )
28
29
{
29
30
}
30
31
@@ -129,12 +130,15 @@ bool OutputFile::beginWrap( )
129
130
msg += err;
130
131
throw std::runtime_error ( msg );
131
132
}
133
+ _frameCount.clear ();
134
+ _frameCount.resize ( _outputStreams.size (), 0 );
132
135
return true ;
133
136
}
134
137
135
138
bool OutputFile::wrap ( const DataStream& data, const size_t streamId )
136
139
{
137
- // std::cout << "wrap on stream " << streamId << " (" << data.getSize() << ")" << std::endl;
140
+ if ( _verbose )
141
+ std::cout << " wrap on stream " << streamId << " (" << data.getSize () << " bytes for frame " << _frameCount.at ( streamId ) << " )" << std::endl;
138
142
AVPacket packet;
139
143
av_init_packet ( &packet );
140
144
@@ -144,10 +148,11 @@ bool OutputFile::wrap( const DataStream& data, const size_t streamId )
144
148
145
149
packet.data = (uint8_t *)data.getPtr ();
146
150
packet.size = data.getSize ();
147
- packet.dts = 0 ;
148
- packet.pts = _packetCount ;
151
+ // packet.dts = _frameCount.at( streamId ) ;
152
+ // packet.pts = ;
149
153
150
- int ret = av_interleaved_write_frame ( _formatContext, &packet );
154
+ int ret = av_write_frame ( _formatContext, &packet );
155
+ // int ret = av_interleaved_write_frame( _formatContext, &packet );
151
156
152
157
if ( ret != 0 )
153
158
{
@@ -163,6 +168,7 @@ bool OutputFile::wrap( const DataStream& data, const size_t streamId )
163
168
av_free_packet ( &packet );
164
169
165
170
_packetCount++;
171
+ _frameCount.at ( streamId )++;
166
172
return true ;
167
173
}
168
174
0 commit comments