Skip to content

Commit bd205f4

Browse files
change some methods in wrapping
1 parent 03a82cd commit bd205f4

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/AvTranscoder/File/OutputFile.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ OutputFile::OutputFile( const std::string& filename )
2525
, _stream ( NULL )
2626
, _filename ( filename )
2727
, _packetCount ( 0 )
28+
, _verbose ( false )
2829
{
2930
}
3031

@@ -129,12 +130,15 @@ bool OutputFile::beginWrap( )
129130
msg += err;
130131
throw std::runtime_error( msg );
131132
}
133+
_frameCount.clear();
134+
_frameCount.resize( _outputStreams.size(), 0 );
132135
return true;
133136
}
134137

135138
bool OutputFile::wrap( const DataStream& data, const size_t streamId )
136139
{
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;
138142
AVPacket packet;
139143
av_init_packet( &packet );
140144

@@ -144,10 +148,11 @@ bool OutputFile::wrap( const DataStream& data, const size_t streamId )
144148

145149
packet.data = (uint8_t*)data.getPtr();
146150
packet.size = data.getSize();
147-
packet.dts = 0;
148-
packet.pts = _packetCount;
151+
// packet.dts = _frameCount.at( streamId );
152+
// packet.pts = ;
149153

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 );
151156

152157
if( ret != 0 )
153158
{
@@ -163,6 +168,7 @@ bool OutputFile::wrap( const DataStream& data, const size_t streamId )
163168
av_free_packet( &packet );
164169

165170
_packetCount++;
171+
_frameCount.at( streamId )++;
166172
return true;
167173
}
168174

src/AvTranscoder/File/OutputFile.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ class AvExport OutputFile
8383
**/
8484
virtual bool endWrap( );
8585

86+
virtual void setVerbose( bool verbose = false ){ _verbose = verbose; }
87+
8688
private:
8789
std::vector<AvOutputStream*> _outputStreams;
8890
AVOutputFormat* _outputFormat;
@@ -92,9 +94,13 @@ class AvExport OutputFile
9294
AVCodecContext* _codecContext;
9395
AVStream* _stream;
9496

97+
std::vector<size_t> _frameCount;
98+
9599
std::string _filename;
96100

97101
size_t _packetCount;
102+
103+
bool _verbose;
98104
};
99105

100106
}

0 commit comments

Comments
 (0)