You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Merge commit '3d9fc21e593aa89b5877bd739268499b079052f2'
* commit '3d9fc21e593aa89b5877bd739268499b079052f2': h264: Refactor decode_frame_packing_arrangement Conflicts: libavcodec/h264_sei.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		| @@ -226,39 +226,30 @@ static int decode_buffering_period(H264Context *h) | ||||
|  | ||||
| static int decode_frame_packing_arrangement(H264Context *h) | ||||
| { | ||||
|     int cancel; | ||||
|     int quincunx =  0; | ||||
|     int content  = -1; | ||||
|     int type     = -1; | ||||
|  | ||||
|     h->sei_fpa.frame_packing_arrangement_id          = get_ue_golomb(&h->gb); | ||||
|     cancel = get_bits(&h->gb, 1); | ||||
|     if (cancel == 0) { | ||||
|         type = get_bits(&h->gb, 7);     // frame_packing_arrangement_type | ||||
|         quincunx = get_bits1(&h->gb);   // quincunx_sampling_flag | ||||
|         content = get_bits(&h->gb, 6);  // content_interpretation_type | ||||
|     h->sei_fpa.frame_packing_arrangement_cancel_flag = get_bits1(&h->gb); | ||||
|     h->sei_frame_packing_present = !h->sei_fpa.frame_packing_arrangement_cancel_flag; | ||||
|  | ||||
|     if (h->sei_frame_packing_present) { | ||||
|         h->sei_fpa.frame_packing_arrangement_type = | ||||
|         h->frame_packing_arrangement_type = get_bits(&h->gb, 7); | ||||
|         h->sei_fpa.quincunx_sampling_flag         = | ||||
|         h->quincunx_subsampling           = get_bits1(&h->gb); | ||||
|         h->sei_fpa.content_interpretation_type    = | ||||
|         h->content_interpretation_type    = get_bits(&h->gb, 6); | ||||
|  | ||||
|         // the following skips: spatial_flipping_flag, frame0_flipped_flag, | ||||
|         // field_views_flag, current_frame_is_frame0_flag, | ||||
|         // frame0_self_contained_flag, frame1_self_contained_flag | ||||
|         skip_bits(&h->gb, 6); | ||||
|         if (quincunx == 0 && type != 5) | ||||
|  | ||||
|         if (!h->quincunx_subsampling && h->frame_packing_arrangement_type != 5) | ||||
|             skip_bits(&h->gb, 16);      // frame[01]_grid_position_[xy] | ||||
|         skip_bits(&h->gb, 8);           // frame_packing_arrangement_reserved_byte | ||||
|         h->sei_fpa.frame_packing_arrangement_repetition_period = get_ue_golomb(&h->gb) /* frame_packing_arrangement_repetition_period */; | ||||
|     } | ||||
|     skip_bits1(&h->gb);                 // frame_packing_arrangement_extension_flag | ||||
|  | ||||
|     h->sei_frame_packing_present      = (cancel == 0); | ||||
|     h->frame_packing_arrangement_type = type; | ||||
|     h->content_interpretation_type    = content; | ||||
|     h->quincunx_subsampling           = quincunx; | ||||
|  | ||||
|     h->sei_fpa.frame_packing_arrangement_cancel_flag = cancel  ; | ||||
|     h->sei_fpa.frame_packing_arrangement_type        = type    ; | ||||
|     h->sei_fpa.quincunx_sampling_flag                = quincunx; | ||||
|     h->sei_fpa.content_interpretation_type           = content ; | ||||
|  | ||||
|     if (h->avctx->debug & FF_DEBUG_PICT_INFO) | ||||
|         av_log(h->avctx, AV_LOG_DEBUG, "SEI FPA %d %d %d %d %d %d\n", | ||||
|                                        h->sei_fpa.frame_packing_arrangement_id, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user