You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avcodec/mpeg12dec: respect side data preference
We only need to consider side data types that may possibly come from the packet. Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
		
				
					committed by
					
						 Anton Khirnov
						Anton Khirnov
					
				
			
			
				
	
			
			
			
						parent
						
							ed3cc8fc65
						
					
				
				
					commit
					ffb8dc7be6
				
			| @@ -1306,20 +1306,20 @@ static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size) | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         pan_scan = av_frame_new_side_data(s->current_picture_ptr->f, | ||||
|                                           AV_FRAME_DATA_PANSCAN, | ||||
|                                           sizeof(s1->pan_scan)); | ||||
|         if (!pan_scan) | ||||
|             return AVERROR(ENOMEM); | ||||
|         memcpy(pan_scan->data, &s1->pan_scan, sizeof(s1->pan_scan)); | ||||
|         ret = ff_frame_new_side_data(s->avctx, s->current_picture_ptr->f, | ||||
|                                      AV_FRAME_DATA_PANSCAN, sizeof(s1->pan_scan), | ||||
|                                      &pan_scan); | ||||
|         if (ret < 0) | ||||
|             return ret; | ||||
|         if (pan_scan) | ||||
|             memcpy(pan_scan->data, &s1->pan_scan, sizeof(s1->pan_scan)); | ||||
|  | ||||
|         if (s1->a53_buf_ref) { | ||||
|             AVFrameSideData *sd = av_frame_new_side_data_from_buf( | ||||
|                 s->current_picture_ptr->f, AV_FRAME_DATA_A53_CC, | ||||
|                 s1->a53_buf_ref); | ||||
|             if (!sd) | ||||
|                 av_buffer_unref(&s1->a53_buf_ref); | ||||
|             s1->a53_buf_ref = NULL; | ||||
|             ret = ff_frame_new_side_data_from_buf( | ||||
|                 s->avctx, s->current_picture_ptr->f, AV_FRAME_DATA_A53_CC, | ||||
|                 &s1->a53_buf_ref, NULL); | ||||
|             if (ret < 0) | ||||
|                 return ret; | ||||
|         } | ||||
|  | ||||
|         if (s1->has_stereo3d) { | ||||
| @@ -1332,13 +1332,13 @@ static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size) | ||||
|         } | ||||
|  | ||||
|         if (s1->has_afd) { | ||||
|             AVFrameSideData *sd = | ||||
|                 av_frame_new_side_data(s->current_picture_ptr->f, | ||||
|                                        AV_FRAME_DATA_AFD, 1); | ||||
|             if (!sd) | ||||
|                 return AVERROR(ENOMEM); | ||||
|  | ||||
|             *sd->data   = s1->afd; | ||||
|             AVFrameSideData *sd; | ||||
|             ret = ff_frame_new_side_data(s->avctx, s->current_picture_ptr->f, | ||||
|                                          AV_FRAME_DATA_AFD, 1, &sd); | ||||
|             if (ret < 0) | ||||
|                 return ret; | ||||
|             if (sd) | ||||
|                 *sd->data = s1->afd; | ||||
|             s1->has_afd = 0; | ||||
|         } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user