Changeset 6324 in orxonox.OLD for branches/avi_play/src/lib/graphics/importer/media_container.cc
- Timestamp:
- Dec 27, 2005, 10:25:48 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/avi_play/src/lib/graphics/importer/media_container.cc
r6323 r6324 87 87 } 88 88 89 GLuint MediaContainer::getFrame(int frame_number)89 void MediaContainer::gotoFrame(int frame_number) 90 90 { 91 91 // seek doesnt work for the first two frames … … 96 96 av_seek_frame(format_context, video_stream, 0, AVSEEK_FLAG_BACKWARD); 97 97 frame_num = 0; 98 return this->getNextFrame();99 98 } 100 99 else … … 117 116 118 117 frame_num = frame_number; 119 120 return this->getNextFrame();121 118 } 122 119 } … … 215 212 } 216 213 217 void MediaContainer::skipFrame(int num_frames) 218 { 219 214 GLuint MediaContainer::skipFrame(int num_frames) 215 { 216 frame_num += num_frames; 217 218 while(num_frames != 0) 219 { 220 if(av_read_frame(format_context, &packet) < 0) 221 break; 222 if(packet.stream_index == video_stream) 223 { 224 int frame_finished; 225 // We have to decode the frame to not get ugly fragments 226 avcodec_decode_video(codec_context, frame, &frame_finished, 227 packet.data, packet.size); 228 229 // Did we get a video frame? 230 if(frame_finished) 231 num_frames--; 232 } 233 av_free_packet(&packet); 234 } 235 236 return this->getNextFrame(); 220 237 } 221 238
Note: See TracChangeset
for help on using the changeset viewer.