[MacPorts] #69640: webkit2-gtk: +x11 error: GStreamerGL is needed for USE_GSTREAMER_GL

MacPorts noreply at macports.org
Mon Apr 15 10:17:13 UTC 2024


#69640: webkit2-gtk: +x11 error: GStreamerGL is needed for USE_GSTREAMER_GL
-------------------------------------------------+-------------------------
  Reporter:  JonnyTech                           |      Owner:  dbevans
      Type:  defect                              |     Status:  assigned
  Priority:  Normal                              |  Milestone:
 Component:  ports                               |    Version:  2.9.1
Resolution:                                      |   Keywords:  sonoma
      Port:  webkit2-gtk, gstreamer1-gst-        |
  plugins-base                                   |
-------------------------------------------------+-------------------------

Comment (by christophecvr):

 What needs to be changed in the gstreamer paranoia plugin is this function
 which is located in file ext/cdparanoia/gstcdparanoiasrc.c
 line 122 - 298 .
 {{{
 static gboolean
 gst_cd_paranoia_src_open (GstAudioCdSrc * audiocdsrc, const gchar *
 device)
 {
   GstCdParanoiaSrc *src = GST_CD_PARANOIA_SRC (audiocdsrc);
   gint i, cache_size;

   GST_DEBUG_OBJECT (src, "trying to open device %s (generic-device=%s)
 ...",
       device, GST_STR_NULL (src->generic_device));

   /* find the device */
   if (src->generic_device != NULL) {
     src->d = cdda_identify_scsi (src->generic_device, device, FALSE,
 NULL);
   } else {
     if (device != NULL) {
       src->d = cdda_identify (device, FALSE, NULL);
     } else {
       src->d = cdda_identify ("/dev/cdrom", FALSE, NULL);
     }
   }

   /* fail if the device couldn't be found */
   if (src->d == NULL)
     goto no_device;

   /* set verbosity mode */
   cdda_verbose_set (src->d, CDDA_MESSAGE_FORGETIT, CDDA_MESSAGE_FORGETIT);

   /* open the disc */
   if (cdda_open (src->d))
     goto open_failed;

   GST_INFO_OBJECT (src, "set read speed to %d", src->read_speed);
   cdda_speed_set (src->d, src->read_speed);

   for (i = 1; i < src->d->tracks + 1; i++) {
     GstAudioCdSrcTrack track = { 0, };

     track.num = i;
     track.is_audio = IS_AUDIO (src->d, i - 1);
     track.start = cdda_track_firstsector (src->d, i);
     track.end = cdda_track_lastsector (src->d, i);
     track.tags = NULL;

     gst_audio_cd_src_add_track (GST_AUDIO_CD_SRC (src), &track);
   }

   /* create the paranoia struct and set it up */
   src->p = paranoia_init (src->d);
   if (src->p == NULL)
     goto init_failed;

   paranoia_modeset (src->p, src->paranoia_mode);
   GST_INFO_OBJECT (src, "set paranoia mode to 0x%02x",
 src->paranoia_mode);

   if (src->search_overlap != -1) {
     paranoia_overlapset (src->p, src->search_overlap);
     GST_INFO_OBJECT (src, "search overlap set to %u",
 src->search_overlap);
   }

   cache_size = src->cache_size;
   if (cache_size == -1) {
     /* if paranoia mode is low (the default), assume we're doing playback
 */
     if (src->paranoia_mode <= PARANOIA_MODE_FRAGMENT)
       cache_size = 150;
     else
       cache_size = paranoia_cachemodel_size (src->p, -1);
   }
   paranoia_cachemodel_size (src->p, cache_size);
   GST_INFO_OBJECT (src, "set cachemodel size to %u", cache_size);

   src->next_sector = -1;

   return TRUE;

   /* ERRORS */
 no_device:
   {
     GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
         (_("Could not open CD device for reading.")), ("cdda_identify
 failed"));
     return FALSE;
   }
 open_failed:
   {
     GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
         (_("Could not open CD device for reading.")), ("cdda_open
 failed"));
     cdda_close (src->d);
     src->d = NULL;
     return FALSE;
   }
 init_failed:
   {
     GST_ELEMENT_ERROR (src, LIBRARY, INIT,
         ("failed to initialize paranoia"), ("failed to initialize
 paranoia"));
     return FALSE;
   }
 }
 }}}

 to use

 in cdparanoia-III-10.2/interface/scan_devices.c  (patched version)
 the procedure added for mac to open cd:


 {{{
 #ifdef __APPLE__
 cdrom_drive *cdda_find_a_cdrom(int messagedest,char **messages){
     cdrom_drive *d = calloc(1, sizeof(cdrom_drive));
     if(!d)
         return NULL;
     d->interface = IOKIT_INTERFACE;
     return d;
 }

 #else
 }}}

 But unfortunately I do not know how.

-- 
Ticket URL: <https://trac.macports.org/ticket/69640#comment:40>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list