Changeset 6382 in orxonox.OLD for branches/avi_play
- Timestamp:
- Jan 1, 2006, 7:58:56 PM (19 years ago)
- Location:
- branches/avi_play/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/avi_play/src/lib/graphics/importer/media_container.cc
r6373 r6382 88 88 89 89 // Find the first video stream and take it 90 video_stream = -1; 91 for(int i = 0; i < format_context->nb_streams; i++) 92 { 93 // NOTE: different code for the 0.4.9-pre1 release of ffmpeg (tardis) 94 // if(format_context->streams[i]->codec.codec_type == CODEC_TYPE_VIDEO) 95 if(format_context->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO) 96 { 97 video_stream = i; 98 break; 99 } 100 } 101 90 video_stream = av_find_default_stream_index(format_context); 91 102 92 if(video_stream == -1) 103 93 PRINTF(1)("Could not find a video stream in %s\n", filename); … … 124 114 num_bytes = avpicture_get_size(PIX_FMT_RGB24, codec_context->width, codec_context->height); 125 115 buffer=new uint8_t[num_bytes]; 116 117 // data buffer for the texture 118 data = new uint8_t[codec_context->width*codec_context->height*3*sizeof(uint8_t)]; 126 119 127 120 // Assign appropriate parts of buffer to image planes in RGB_frame … … 180 173 codec_context->pix_fmt, codec_context->width, codec_context->height); 181 174 182 data = 0;183 data = new uint8_t[codec_context->width*codec_context->height*3*sizeof(uint8_t)];184 175 for(int i = 0; i < codec_context->height; i++) 185 176 memcpy(&data[i*codec_context->width*3], … … 187 178 ((AVPicture*)RGB_frame)->linesize[0], 188 179 codec_context->width*sizeof(uint8_t)*3); 189 /* 190 surface = SDL_CreateRGBSurfaceFrom(data, codec_context->width,180 181 /*surface = SDL_CreateRGBSurfaceFrom(data, codec_context->width, 191 182 codec_context->height,24, 192 183 codec_context->width*sizeof(uint8_t)*3, … … 226 217 GL_UNSIGNED_BYTE, 227 218 surface->pixels); 228 glBindTexture(GL_TEXTURE_2D, 0); */219 glBindTexture(GL_TEXTURE_2D, 0); */ 229 220 230 221 // Create an OpenGL texture -
branches/avi_play/src/lib/graphics/importer/movie_player.cc
r6373 r6382 102 102 103 103 // 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); 115 105 116 106 if(video_stream == -1) … … 141 131 // Assign appropriate parts of buffer to image planes in RGB_frame 142 132 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)]; 143 136 144 137 // Calculate fps … … 192 185 codec_context->pix_fmt, codec_context->width, codec_context->height); 193 186 194 data = 0;195 data = new uint8_t[codec_context->width*codec_context->height*3*sizeof(uint8_t)];196 187 for(int i = 0; i < codec_context->height; i++) 197 188 memcpy(&data[i*codec_context->width*3], ((AVPicture*)RGB_frame)->data[0]+i * … … 247 238 data); 248 239 glBindTexture(GL_TEXTURE_2D, 0); 249 250 //avcodec_flush_buffers(codec_context);251 240 252 241 } … … 327 316 } 328 317 329 void MoviePlayer::start( unsigned int start_time)318 void MoviePlayer::start(float start_time) 330 319 { 331 320 status = PLAY; … … 339 328 void MoviePlayer::resume() 340 329 { 341 if(status == STOP) 342 this->start(0); 343 else 330 if(status == PAUSE) 331 { 344 332 status = PLAY; 345 346 PRINTF(0)("resume\n");333 PRINTF(0)("resume\n"); 334 } 347 335 } 348 336 349 337 void MoviePlayer::pause() 350 338 { 351 if(status != STOP) 339 if(status == PLAY) 340 { 352 341 status = PAUSE; 353 354 PRINTF(0)("pause\n");342 PRINTF(0)("pause\n"); 343 } 355 344 } 356 345 -
branches/avi_play/src/lib/graphics/importer/movie_player.h
r6373 r6382 71 71 void loadMovie(const char* filename); 72 72 73 void start( unsigned int start_time);73 void start(float start_time); 74 74 void resume(); 75 75 void pause(); -
branches/avi_play/src/subprojects/importer/movie_player_test.cc
r6353 r6382 22 22 23 23 MoviePlayer* movie_player; 24 float start_time; 24 25 25 26 void Framework::moduleInit(int argc, char** argv) 26 27 { 28 if( argc <= 1) 29 { 30 printf("Wrong arguments try following notations:\n"); 31 printf("./movie_player_test [media_file]\n"); 32 exit(0); 33 } 34 27 35 movie_player = new MoviePlayer(argv[1]); 28 29 36 movie_player->printInformation(); 37 38 //start_time = atoi(argv[2]); 39 start_time = 0; 30 40 } 31 41 … … 38 48 { 39 49 case SDLK_1: 40 movie_player->start( 0);50 movie_player->start(start_time); 41 51 break; 42 52 case SDLK_2: -
branches/avi_play/src/subprojects/importer/multitex.cc
r6353 r6382 74 74 obj = new PrimitiveModel(PRIM_PLANE, 10.0); 75 75 break; 76 case SDLK_5:77 media_container->loadFrames();78 counter = 0;79 timer = 0;80 SDL_Delay(1000);81 break;82 76 // increase fps 83 77 case SDLK_9: … … 107 101 timer = 0; 108 102 counter = 0; 109 PRINTF(0)("BEGIN\n");110 PRINTF(0)("total_frames: %i\n", media_container->getFrameCount());111 103 } 112 104 }
Note: See TracChangeset
for help on using the changeset viewer.