| 
																	
																	
																		
																	
																	
																 | 
																@@ -546,9 +546,8 @@ static void decoder_init(Decoder *d, AVCodecContext *avctx, PacketQueue *queue, | 
															
														
														
													
														
															
																 | 
																 | 
																    d->start_pts = AV_NOPTS_VALUE; | 
																 | 
																 | 
																    d->start_pts = AV_NOPTS_VALUE; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																static int decoder_decode_frame(Decoder *d, void *fframe) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static int decoder_decode_frame(Decoder *d, AVFrame *frame, AVSubtitle *sub) { | 
															
														
														
													
														
															
																 | 
																 | 
																    int got_frame = 0; | 
																 | 
																 | 
																    int got_frame = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																    AVFrame *frame = fframe; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																    d->flushed = 0; | 
																 | 
																 | 
																    d->flushed = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -608,7 +607,7 @@ static int decoder_decode_frame(Decoder *d, void *fframe) { | 
															
														
														
													
														
															
																 | 
																 | 
																                } | 
																 | 
																 | 
																                } | 
															
														
														
													
														
															
																 | 
																 | 
																                break; | 
																 | 
																 | 
																                break; | 
															
														
														
													
														
															
																 | 
																 | 
																            case AVMEDIA_TYPE_SUBTITLE: | 
																 | 
																 | 
																            case AVMEDIA_TYPE_SUBTITLE: | 
															
														
														
													
														
															
																 | 
																 | 
																                ret = avcodec_decode_subtitle2(d->avctx, fframe, &got_frame, &d->pkt_temp); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                ret = avcodec_decode_subtitle2(d->avctx, sub, &got_frame, &d->pkt_temp); | 
															
														
														
													
														
															
																 | 
																 | 
																                break; | 
																 | 
																 | 
																                break; | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -1863,7 +1862,7 @@ static int get_video_frame(VideoState *is, AVFrame *frame) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																    int got_picture; | 
																 | 
																 | 
																    int got_picture; | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																    if ((got_picture = decoder_decode_frame(&is->viddec, frame)) < 0) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if ((got_picture = decoder_decode_frame(&is->viddec, frame, NULL)) < 0) | 
															
														
														
													
														
															
																 | 
																 | 
																        return -1; | 
																 | 
																 | 
																        return -1; | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																    if (got_picture) { | 
																 | 
																 | 
																    if (got_picture) { | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -2219,7 +2218,7 @@ static int subtitle_thread(void *arg) | 
															
														
														
													
														
															
																 | 
																 | 
																        if (!(sp = frame_queue_peek_writable(&is->subpq))) | 
																 | 
																 | 
																        if (!(sp = frame_queue_peek_writable(&is->subpq))) | 
															
														
														
													
														
															
																 | 
																 | 
																            return 0; | 
																 | 
																 | 
																            return 0; | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																        if ((got_subtitle = decoder_decode_frame(&is->subdec, &sp->sub)) < 0) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        if ((got_subtitle = decoder_decode_frame(&is->subdec, NULL, &sp->sub)) < 0) | 
															
														
														
													
														
															
																 | 
																 | 
																            break; | 
																 | 
																 | 
																            break; | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																        pts = 0; | 
																 | 
																 | 
																        pts = 0; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -2483,7 +2482,7 @@ static int audio_decode_frame(VideoState *is) | 
															
														
														
													
														
															
																 | 
																 | 
																            return resampled_data_size; | 
																 | 
																 | 
																            return resampled_data_size; | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																        if ((got_frame = decoder_decode_frame(&is->auddec, is->frame)) < 0) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        if ((got_frame = decoder_decode_frame(&is->auddec, is->frame, NULL)) < 0) | 
															
														
														
													
														
															
																 | 
																 | 
																            return -1; | 
																 | 
																 | 
																            return -1; | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																        if (is->auddec.flushed) | 
																 | 
																 | 
																        if (is->auddec.flushed) | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																	
																 | 
																
  |