Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 27, 2005, 10:25:48 PM (20 years ago)
Author:
hdavid
Message:

branches\avi_play: MoviePlayer works, at the moment not very fast

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/avi_play/src/lib/graphics/importer/media_container.cc

    r6323 r6324  
    8787}
    8888
    89 GLuint MediaContainer::getFrame(int frame_number)
     89void MediaContainer::gotoFrame(int frame_number)
    9090{
    9191  // seek doesnt work for the first two frames
     
    9696    av_seek_frame(format_context, video_stream, 0, AVSEEK_FLAG_BACKWARD);
    9797    frame_num = 0;
    98     return this->getNextFrame();
    9998  }
    10099  else
     
    117116 
    118117    frame_num = frame_number;
    119 
    120     return this->getNextFrame();
    121118  }
    122119}
     
    215212}
    216213
    217 void MediaContainer::skipFrame(int num_frames)
    218 {
    219 
     214GLuint 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();
    220237}
    221238
Note: See TracChangeset for help on using the changeset viewer.