frame stepping patch by (Wolfgang Hesseler <qv at multimediaware dot com>)
Originally committed as revision 2632 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
							parent
							
								
									2c293402b0
								
							
						
					
					
						commit
						bba04f1e9d
					
				
							
								
								
									
										18
									
								
								ffplay.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								ffplay.c
									
									
									
									
									
								
							| @ -166,6 +166,7 @@ static int show_status; | ||||
| static int av_sync_type = AV_SYNC_AUDIO_MASTER; | ||||
| static int64_t start_time = AV_NOPTS_VALUE; | ||||
| static int debug = 0; | ||||
| static int step = 0; | ||||
| 
 | ||||
| /* current context */ | ||||
| static int is_full_screen; | ||||
| @ -919,6 +920,9 @@ static int video_thread(void *arg) | ||||
|             } | ||||
|         } | ||||
|         av_free_packet(pkt); | ||||
|         if (step)  | ||||
|             if (cur_stream) | ||||
|                 stream_pause(cur_stream); | ||||
|     } | ||||
|  the_end: | ||||
|     av_free(frame); | ||||
| @ -1584,6 +1588,17 @@ void toggle_pause(void) | ||||
| { | ||||
|     if (cur_stream) | ||||
|         stream_pause(cur_stream); | ||||
|     step = 0; | ||||
| } | ||||
| 
 | ||||
| void step_to_next_frame(void) | ||||
| { | ||||
|     if (cur_stream) { | ||||
|         if (cur_stream->paused) | ||||
|             cur_stream->paused=0; | ||||
|         cur_stream->video_current_pts = get_video_clock(cur_stream); | ||||
|     } | ||||
|     step = 1; | ||||
| } | ||||
| 
 | ||||
| void do_exit(void) | ||||
| @ -1627,6 +1642,9 @@ void event_loop(void) | ||||
|             case SDLK_SPACE: | ||||
|                 toggle_pause(); | ||||
|                 break; | ||||
|             case SDLK_s: //S: Step to next frame
 | ||||
|                 step_to_next_frame(); | ||||
|                 break; | ||||
|             case SDLK_a: | ||||
|                 if (cur_stream)  | ||||
|                     stream_cycle_channel(cur_stream, CODEC_TYPE_AUDIO); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user