mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	Revert "libcamera: Implement proper dmabuf negotiation support"
This reverts commit 950b62a8d8.
It depends on ABI break
			
			
This commit is contained in:
		
							parent
							
								
									950b62a8d8
								
							
						
					
					
						commit
						bdc0720bcb
					
				
					 1 changed files with 42 additions and 52 deletions
				
			
		| 
						 | 
					@ -326,60 +326,50 @@ next_fmt:
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	port->size_index++;
 | 
						port->size_index++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i = 0; i < 2; i++) {
 | 
						spa_pod_builder_init(&b, buffer, sizeof(buffer));
 | 
				
			||||||
		if (i > 0)
 | 
						spa_pod_builder_push_object(&b, &f[0], SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat);
 | 
				
			||||||
			result.index = result.next++;
 | 
						spa_pod_builder_add(&b,
 | 
				
			||||||
 | 
								SPA_FORMAT_mediaType,    SPA_POD_Id(info->media_type),
 | 
				
			||||||
 | 
								SPA_FORMAT_mediaSubtype, SPA_POD_Id(info->media_subtype),
 | 
				
			||||||
 | 
								0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		spa_pod_builder_init(&b, buffer, sizeof(buffer));
 | 
						if (info->media_subtype == SPA_MEDIA_SUBTYPE_raw) {
 | 
				
			||||||
		spa_pod_builder_push_object(&b, &f[0], SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat);
 | 
							spa_pod_builder_prop(&b, SPA_FORMAT_VIDEO_format, 0);
 | 
				
			||||||
		spa_pod_builder_add(&b,
 | 
							spa_pod_builder_id(&b, info->format);
 | 
				
			||||||
				SPA_FORMAT_mediaType,    SPA_POD_Id(info->media_type),
 | 
					 | 
				
			||||||
				SPA_FORMAT_mediaSubtype, SPA_POD_Id(info->media_subtype),
 | 
					 | 
				
			||||||
				0);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (info->media_subtype == SPA_MEDIA_SUBTYPE_raw) {
 | 
					 | 
				
			||||||
			spa_pod_builder_prop(&b, SPA_FORMAT_VIDEO_format, 0);
 | 
					 | 
				
			||||||
			spa_pod_builder_id(&b, info->format);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (i == 0) {
 | 
					 | 
				
			||||||
			spa_pod_builder_prop(&b, SPA_FORMAT_VIDEO_modifier, SPA_POD_PROP_FLAG_MANDATORY);
 | 
					 | 
				
			||||||
			spa_pod_builder_long(&b, info->pix.modifier());
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		spa_pod_builder_prop(&b, SPA_FORMAT_VIDEO_size, 0);
 | 
					 | 
				
			||||||
		if (sizeRange.hStep != 0 && sizeRange.vStep != 0) {
 | 
					 | 
				
			||||||
			spa_pod_builder_push_choice(&b, &f[1], SPA_CHOICE_Step, 0);
 | 
					 | 
				
			||||||
			spa_pod_builder_frame(&b, &f[1]);
 | 
					 | 
				
			||||||
			spa_pod_builder_rectangle(&b,
 | 
					 | 
				
			||||||
					sizeRange.min.width,
 | 
					 | 
				
			||||||
					sizeRange.min.height);
 | 
					 | 
				
			||||||
			spa_pod_builder_rectangle(&b,
 | 
					 | 
				
			||||||
					sizeRange.min.width,
 | 
					 | 
				
			||||||
					sizeRange.min.height);
 | 
					 | 
				
			||||||
			spa_pod_builder_rectangle(&b,
 | 
					 | 
				
			||||||
					sizeRange.max.width,
 | 
					 | 
				
			||||||
					sizeRange.max.height);
 | 
					 | 
				
			||||||
			spa_pod_builder_rectangle(&b,
 | 
					 | 
				
			||||||
					sizeRange.hStep,
 | 
					 | 
				
			||||||
					sizeRange.vStep);
 | 
					 | 
				
			||||||
			spa_pod_builder_pop(&b, &f[1]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			spa_pod_builder_rectangle(&b, frameSize.width, frameSize.height);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		fmt = (struct spa_pod*) spa_pod_builder_pop(&b, &f[0]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (spa_pod_filter(&b, &result.param, fmt, filter) < 0) {
 | 
					 | 
				
			||||||
			if (i == 0)
 | 
					 | 
				
			||||||
				continue;
 | 
					 | 
				
			||||||
			else
 | 
					 | 
				
			||||||
				goto next;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		spa_node_emit_result(&impl->hooks, seq, 0, SPA_RESULT_TYPE_NODE_PARAMS, &result);
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if (info->pix.modifier()) {
 | 
				
			||||||
 | 
							spa_pod_builder_prop(&b, SPA_FORMAT_VIDEO_modifier, 0);
 | 
				
			||||||
 | 
							spa_pod_builder_long(&b, info->pix.modifier());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						spa_pod_builder_prop(&b, SPA_FORMAT_VIDEO_size, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (sizeRange.hStep != 0 && sizeRange.vStep != 0) {
 | 
				
			||||||
 | 
							spa_pod_builder_push_choice(&b, &f[1], SPA_CHOICE_Step, 0);
 | 
				
			||||||
 | 
							spa_pod_builder_frame(&b, &f[1]);
 | 
				
			||||||
 | 
							spa_pod_builder_rectangle(&b,
 | 
				
			||||||
 | 
									sizeRange.min.width,
 | 
				
			||||||
 | 
									sizeRange.min.height);
 | 
				
			||||||
 | 
							spa_pod_builder_rectangle(&b,
 | 
				
			||||||
 | 
									sizeRange.min.width,
 | 
				
			||||||
 | 
									sizeRange.min.height);
 | 
				
			||||||
 | 
							spa_pod_builder_rectangle(&b,
 | 
				
			||||||
 | 
									sizeRange.max.width,
 | 
				
			||||||
 | 
									sizeRange.max.height);
 | 
				
			||||||
 | 
							spa_pod_builder_rectangle(&b,
 | 
				
			||||||
 | 
									sizeRange.hStep,
 | 
				
			||||||
 | 
									sizeRange.vStep);
 | 
				
			||||||
 | 
							spa_pod_builder_pop(&b, &f[1]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							spa_pod_builder_rectangle(&b, frameSize.width, frameSize.height);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fmt = (struct spa_pod*) spa_pod_builder_pop(&b, &f[0]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (spa_pod_filter(&b, &result.param, fmt, filter) < 0)
 | 
				
			||||||
 | 
							goto next;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spa_node_emit_result(&impl->hooks, seq, 0, SPA_RESULT_TYPE_NODE_PARAMS, &result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (++count != num)
 | 
						if (++count != num)
 | 
				
			||||||
		goto next;
 | 
							goto next;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue