Skip to content

Commit da3e09c

Browse files
author
Clement Champetier
committed
InputFile: refactore readNextPacket
1 parent f7fb3a0 commit da3e09c

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

src/AvTranscoder/file/InputFile.cpp

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,10 @@ AvInputStream& InputFile::getStream( size_t index )
147147
bool InputFile::readNextPacket( CodedData& data, const size_t streamIndex )
148148
{
149149
AVPacket packet;
150-
av_init_packet( &packet );
151-
while( 1 )
150+
bool nextPacketFound = false;
151+
while( ! nextPacketFound )
152152
{
153+
av_init_packet( &packet );
153154
int ret = av_read_frame( _formatContext, &packet );
154155
if( ret < 0 ) // error or end of file
155156
{
@@ -164,20 +165,16 @@ bool InputFile::readNextPacket( CodedData& data, const size_t streamIndex )
164165
data.getBuffer().resize( packet.size );
165166
if( packet.size != 0 )
166167
memcpy( data.getPtr(), packet.data, packet.size );
167-
av_free_packet( &packet );
168-
return true;
168+
nextPacketFound = true;
169169
}
170170
// else add the packet data to the stream cache
171171
else
172172
{
173173
_inputStreams.at( packet.stream_index )->addPacket( packet );
174174
}
175-
176-
// do not delete these 2 lines
177-
// need to skip packet, delete this one and re-init for reading the next one
178175
av_free_packet( &packet );
179-
av_init_packet( &packet );
180176
}
177+
return true;
181178
}
182179

183180
void InputFile::seekAtFrame( const size_t frame )

0 commit comments

Comments
 (0)