Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jan 1, 2006, 7:58:56 PM (18 years ago)
Author:
hdavid
Message:

branches\avi_play: removed memory leak

File:
1 edited

Legend:

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

    r6373 r6382  
    102102
    103103  // Find the first video stream and take it
    104   video_stream = -1;
    105   for(int i = 0; i < format_context->nb_streams; i++)
    106   {
    107     // NOTE: different code for the 0.4.9-pre1 release of ffmpeg (tardis)
    108     // if(format_context->streams[i]->codec.codec_type == CODEC_TYPE_VIDEO)
    109     if(format_context->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO)
    110     {
    111       video_stream = i;
    112       break;
    113     }
    114   }
     104  video_stream = av_find_default_stream_index(format_context);
    115105
    116106  if(video_stream == -1)
     
    141131  // Assign appropriate parts of buffer to image planes in RGB_frame
    142132  avpicture_fill((AVPicture *)RGB_frame, buffer, PIX_FMT_RGB24, codec_context->width, codec_context->height);
     133
     134  // data buffer for the texture
     135  data = new uint8_t[codec_context->width*codec_context->height*3*sizeof(uint8_t)];
    143136
    144137  // Calculate fps
     
    192185                    codec_context->pix_fmt, codec_context->width, codec_context->height);
    193186
    194         data = 0;
    195         data = new uint8_t[codec_context->width*codec_context->height*3*sizeof(uint8_t)];
    196187        for(int i = 0; i < codec_context->height; i++)
    197188          memcpy(&data[i*codec_context->width*3], ((AVPicture*)RGB_frame)->data[0]+i *
     
    247238                        data);
    248239        glBindTexture(GL_TEXTURE_2D, 0);
    249 
    250         //avcodec_flush_buffers(codec_context);
    251240
    252241      }
     
    327316}
    328317
    329 void MoviePlayer::start(unsigned int start_time)
     318void MoviePlayer::start(float start_time)
    330319{
    331320  status = PLAY;
     
    339328void MoviePlayer::resume()
    340329{
    341   if(status == STOP)
    342     this->start(0);
    343   else
     330  if(status == PAUSE)
     331  {
    344332    status = PLAY;
    345 
    346    PRINTF(0)("resume\n");
     333    PRINTF(0)("resume\n");
     334  }
    347335}
    348336
    349337void MoviePlayer::pause()
    350338{
    351   if(status != STOP)
     339  if(status == PLAY)
     340  {
    352341    status = PAUSE;
    353 
    354   PRINTF(0)("pause\n");
     342    PRINTF(0)("pause\n");
     343  }
    355344}
    356345
Note: See TracChangeset for help on using the changeset viewer.