mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	gst: fix JPEG format
Since commit f400ff2050 ("gst: Check for video/ caps before parsing
for info") JPEG support in the GStreamer elements is broken as JPEG is
not recognized as a video format anymore.
gst_video_info_from_caps is able to handle "video/" and "image/"
formats. Therefore, the check needs to allow "image/" too.
While at it, cleanup the formatting to make the check more readable.
			
			
This commit is contained in:
		
							parent
							
								
									3b68b5088b
								
							
						
					
					
						commit
						a9bf5fa24a
					
				
					 2 changed files with 9 additions and 8 deletions
				
			
		| 
						 | 
					@ -204,6 +204,7 @@ set_config (GstBufferPool * pool, GstStructure * config)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  GstPipeWirePool *p = GST_PIPEWIRE_POOL (pool);
 | 
					  GstPipeWirePool *p = GST_PIPEWIRE_POOL (pool);
 | 
				
			||||||
  GstCaps *caps;
 | 
					  GstCaps *caps;
 | 
				
			||||||
 | 
					  GstStructure *structure;
 | 
				
			||||||
  guint size, min_buffers, max_buffers;
 | 
					  guint size, min_buffers, max_buffers;
 | 
				
			||||||
  gboolean has_video;
 | 
					  gboolean has_video;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -217,9 +218,9 @@ set_config (GstBufferPool * pool, GstStructure * config)
 | 
				
			||||||
    return FALSE;
 | 
					    return FALSE;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (g_str_has_prefix (gst_structure_get_name (
 | 
					  structure = gst_caps_get_structure (caps, 0);
 | 
				
			||||||
          gst_caps_get_structure (caps, 0)),
 | 
					  if (g_str_has_prefix (gst_structure_get_name (structure), "video/") ||
 | 
				
			||||||
        "video/")) {
 | 
					      g_str_has_prefix (gst_structure_get_name (structure), "image/")) {
 | 
				
			||||||
    has_video = TRUE;
 | 
					    has_video = TRUE;
 | 
				
			||||||
    gst_video_info_from_caps (&p->video_info, caps);
 | 
					    gst_video_info_from_caps (&p->video_info, caps);
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1019,6 +1019,7 @@ static void
 | 
				
			||||||
handle_format_change (GstPipeWireSrc *pwsrc,
 | 
					handle_format_change (GstPipeWireSrc *pwsrc,
 | 
				
			||||||
                   const struct spa_pod *param)
 | 
					                   const struct spa_pod *param)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  GstStructure *structure;
 | 
				
			||||||
  g_autoptr (GstCaps) pw_peer_caps = NULL;
 | 
					  g_autoptr (GstCaps) pw_peer_caps = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  g_clear_pointer (&pwsrc->caps, gst_caps_unref);
 | 
					  g_clear_pointer (&pwsrc->caps, gst_caps_unref);
 | 
				
			||||||
| 
						 | 
					@ -1040,9 +1041,9 @@ handle_format_change (GstPipeWireSrc *pwsrc,
 | 
				
			||||||
  if (pwsrc->caps && gst_caps_is_fixed (pwsrc->caps)) {
 | 
					  if (pwsrc->caps && gst_caps_is_fixed (pwsrc->caps)) {
 | 
				
			||||||
    pwsrc->negotiated = TRUE;
 | 
					    pwsrc->negotiated = TRUE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (g_str_has_prefix (gst_structure_get_name (
 | 
					    structure = gst_caps_get_structure (pwsrc->caps, 0);
 | 
				
			||||||
            gst_caps_get_structure (pwsrc->caps, 0)),
 | 
					    if (g_str_has_prefix (gst_structure_get_name (structure), "video/") ||
 | 
				
			||||||
          "video/")) {
 | 
					        g_str_has_prefix (gst_structure_get_name (structure), "image/")) {
 | 
				
			||||||
      pwsrc->is_video = TRUE;
 | 
					      pwsrc->is_video = TRUE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef HAVE_GSTREAMER_DMA_DRM
 | 
					#ifdef HAVE_GSTREAMER_DMA_DRM
 | 
				
			||||||
| 
						 | 
					@ -1062,8 +1063,7 @@ handle_format_change (GstPipeWireSrc *pwsrc,
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
        gst_video_info_dma_drm_init (&pwsrc->drm_info);
 | 
					        gst_video_info_dma_drm_init (&pwsrc->drm_info);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
        gst_video_info_from_caps (&pwsrc->video_info,
 | 
					        gst_video_info_from_caps (&pwsrc->video_info, pwsrc->caps);
 | 
				
			||||||
            pwsrc->caps);
 | 
					 | 
				
			||||||
#ifdef HAVE_GSTREAMER_DMA_DRM
 | 
					#ifdef HAVE_GSTREAMER_DMA_DRM
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue