Bug 63472 - [Qt] Change default backend to use GStreamer on Linux and QuickTime on Mac.
Summary: [Qt] Change default backend to use GStreamer on Linux and QuickTime on Mac.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Qt (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Alexis Menard (darktears)
URL:
Keywords: Qt, QtTriaged
Depends on: 58548 65369
Blocks:
  Show dependency treegraph
 
Reported: 2011-06-27 12:27 PDT by Alexis Menard (darktears)
Modified: 2024-04-14 21:50 PDT (History)
15 users (show)

See Also:


Attachments
Patch (7.93 KB, patch)
2011-06-27 12:47 PDT, Alexis Menard (darktears)
no flags Details | Formatted Diff | Diff
Patch (7.60 KB, patch)
2011-07-25 12:04 PDT, Alexis Menard (darktears)
kling: review+
ossy: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexis Menard (darktears) 2011-06-27 12:27:09 PDT
As discussed on the mailing list https://lists.webkit.org/pipermail/webkit-qt/2011-June/001633.html, it is better for the Qt port to move away from Qt Multimedia as the default backends on Linux and Mac. We can rely on QuickTime and GStreamer backends inside WebKit as they are more easy to change, more reliable to use and we share the maintenance with the WebKit community. USE_QTMULTIMEDIA=1 is now the option to force the usage of Qt Multimedia.

I'll commit later this patch when we have a public build bot on Mac and the 58548 will be fixed.
Comment 1 Alexis Menard (darktears) 2011-06-27 12:47:06 PDT
Created attachment 98768 [details]
Patch
Comment 2 Laszlo Gombos 2011-06-27 14:21:44 PDT
Comment on attachment 98768 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=98768&action=review

> Source/WebCore/WebCore.pri:-257
> -        DEFINES += WTF_USE_QTKIT=1

I do not see where QuickTime backend is set as a default media player. Where is WTF_USE_QTKIT set to 1 ?

> Source/WebCore/WebCore.pri:-266
> -        DEFINES += WTF_USE_GSTREAMER=1

Same as above; where is WTF_USE_GSTREAMER set to 1 ?
Comment 3 Alexis Menard (darktears) 2011-06-27 14:34:05 PDT
Comment on attachment 98768 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=98768&action=review

>> Source/WebCore/WebCore.pri:-257
>> -        DEFINES += WTF_USE_QTKIT=1
> 
> I do not see where QuickTime backend is set as a default media player. Where is WTF_USE_QTKIT set to 1 ?

feature.pri which is include everywhere first.

>> Source/WebCore/WebCore.pri:-266
>> -        DEFINES += WTF_USE_GSTREAMER=1
> 
> Same as above; where is WTF_USE_GSTREAMER set to 1 ?

Ditto.
Comment 4 Laszlo Gombos 2011-06-28 21:42:54 PDT
Comment on attachment 98768 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=98768&action=review

Overall the direction looks good to me.

> Source/WebCore/features.pri:213
>          DEFINES -= ENABLE_VIDEO=0
>          DEFINES += ENABLE_VIDEO=1
>          DEFINES -= WTF_USE_QT_MULTIMEDIA=0
>          DEFINES += WTF_USE_QT_MULTIMEDIA=1
> +        DEFINES -= WTF_USE_QTKIT=1
> +        DEFINES += WTF_USE_QTKIT=0
> +        DEFINES -= WTF_USE_GSTREAMER=1
> +        DEFINES += WTF_USE_GSTREAMER=0

Are the "DEFINES += XXX=0" statements are really necessary? It seems that the corresponding tests are all testing for "contains(DEFINES, XXX=1)"  I also find it hard to maintain and read. Would the following work instead ? 

# HTML5 Media Support
!contains(DEFINES, ENABLE_VIDEO=.) {
    linux-*|mac|contains(MOBILITY_CONFIG, multimedia) {

        DEFINES += ENABLE_VIDEO=1

        mac:!contains(DEFINES, USE_QTMULTIMEDIA=1) {
            DEFINES += WTF_USE_QTKIT=1
        } else: linux-*:!contains(DEFINES, USE_QTMULTIMEDIA=1) {
            DEFINES += WTF_USE_GSTREAMER=1
        } else: contains(MOBILITY_CONFIG, multimedia) {
            DEFINES += WTF_USE_QT_MULTIMEDIA=1
        }
    }
}
Comment 5 Yael 2011-07-07 14:48:38 PDT
Comment on attachment 98768 [details]
Patch

Since you are turning video on by default now, you should update http://trac.webkit.org/wiki/BuildingQtOnLinux with the new build dependencies.
Comment 6 Alexis Menard (darktears) 2011-07-25 12:04:28 PDT
Created attachment 101890 [details]
Patch
Comment 7 Csaba Osztrogonác 2011-07-26 05:37:00 PDT
Comment on attachment 101890 [details]
Patch

r- because it broke incremental build. And it killed the Qt EWS too.
Check https://bugs.webkit.org/show_bug.cgi?id=38054 for details.
Comment 8 Andreas Kling 2011-07-26 06:20:09 PDT
Comment on attachment 101890 [details]
Patch

r=me, but you need to find a way to land this without making our bot masters cry.
Comment 9 Andras Becsi 2011-07-26 06:34:53 PDT
Committed r91752: <http://trac.webkit.org/changeset/91752>
Comment 10 Ademar Reis 2011-07-29 08:41:36 PDT
Revision r91752 cherry-picked into qtwebkit-2.2 with commit 7a53b15 <http://gitorious.org/webkit/qtwebkit/commit/7a53b15>
Comment 11 walmartonelogin 2018-08-09 18:42:07 PDT Comment hidden (spam)
Comment 12 Paul 2024-02-19 21:44:04 PST Comment hidden (spam)
Comment 13 Paul 2024-02-20 22:02:04 PST Comment hidden (spam)
Comment 14 reply 2024-03-26 00:54:04 PDT Comment hidden (spam)
Comment 15 Christopher 2024-03-26 02:31:35 PDT Comment hidden (spam)
Comment 16 reply 2024-03-26 22:17:47 PDT Comment hidden (spam)
Comment 17 Christopher 2024-03-26 22:57:34 PDT Comment hidden (spam)
Comment 18 Michael 2024-04-05 00:35:53 PDT Comment hidden (spam)
Comment 19 Sookes04 2024-04-08 04:32:46 PDT Comment hidden (spam)
Comment 20 Sookes04 2024-04-08 23:31:16 PDT Comment hidden (spam)
Comment 21 Michael 2024-04-09 03:51:12 PDT Comment hidden (spam)
Comment 22 Clarence 2024-04-10 03:34:09 PDT
To summarize, you want to change the default backend for Qt to use GStreamer on Linux and QuickTime on macOS. Here's how you can achieve this:

1. **Using GStreamer on Linux**:
   - First, ensure that GStreamer is installed on your Linux system. You can typically install it using your distribution's package manager.
   - In your Qt application, set the multimedia backend to GStreamer. You can do this by setting the environment variable `QT_MULTIMEDIA_PREFERRED_PLUGINS` to `gstreamer`.
   - You can set this environment variable before launching your Qt application using a script or by setting it in your development environment.

2. **Using QuickTime on macOS**:
   - By default, Qt on macOS uses the AVFoundation backend, which is the modern multimedia framework on macOS. However, if you specifically want to use QuickTime, you can override this behavior.
   - In your Qt application, set the multimedia backend to QuickTime. You can do this by setting the environment variable `QT_MULTIMEDIA_PREFERRED_PLUGINS` to `quicktime`.
   - As with Linux, you can set this environment variable before launching your Qt application.

Here's a summary of the steps in code:

```bash
# For Linux (GStreamer)
export QT_MULTIMEDIA_PREFERRED_PLUGINS=gstreamer

# For macOS (QuickTime)
export QT_MULTIMEDIA_PREFERRED_PLUGINS=quicktime
```

Ensure that you set the appropriate environment variable based on the platform before launching your Qt application. This will instruct Qt to use the specified multimedia backend.

Keep in mind that while GStreamer is widely used and well-supported on Linux, QuickTime may have limitations and compatibility issues on newer versions of macOS. Consider the specific requirements and compatibility of your application when choosing the multimedia backend.
Comment 23 Clarence 2024-04-10 21:57:52 PDT
(In reply to Clarence from comment #22)
> To summarize, you want to change the default backend for Qt to use GStreamer
> on Linux and QuickTime on macOS. Here's how you can achieve this:
> 
> 1. **Using GStreamer on Linux**:
>    - First, ensure that GStreamer is installed on your Linux system. You can
> typically install it using your distribution's package manager.
>    - In your Qt application, set the multimedia backend to GStreamer. You
> can do this by setting the environment variable
> `QT_MULTIMEDIA_PREFERRED_PLUGINS` to `gstreamer`.
>    - You can set this environment variable before launching your Qt
> application using a script or by setting it in your development environment.
> 
> 2. **Using QuickTime on macOS**:
>    - By default, Qt on macOS uses the AVFoundation backend, which is the
> modern multimedia framework on macOS. However, if you specifically want to
> use QuickTime, you can override this behavior.
>    - In your Qt application, set the multimedia backend to QuickTime. You
> can do this by setting the environment variable
> `QT_MULTIMEDIA_PREFERRED_PLUGINS` to `quicktime`.
>    - As with Linux, you can set this environment variable before launching
> your Qt application.
> 
> Here's a summary of the steps in code:
> 
> ```bash
> # For Linux (GStreamer)
> export QT_MULTIMEDIA_PREFERRED_PLUGINS=gstreamer
> 
> # For macOS (QuickTime)
> export QT_MULTIMEDIA_PREFERRED_PLUGINS=quicktime
> ```
> 
> Ensure that you set the appropriate environment variable based on the
> platform before launching your Qt application. This will instruct Qt to use
> the specified multimedia backend.
> 
> Keep in mind that while GStreamer is widely used and well-supported on
> Linux, QuickTime may have limitations and compatibility issues on newer
> versions of macOS. Consider the specific requirements and compatibility of
> your application when choosing the multimedia backend.https://mybalancenow.fun/.
Comment 24 Corguive 2024-04-11 01:54:43 PDT
It appears that you're referencing a bug report related to the WebKit project, specifically regarding changing the default backend to use GStreamer on Linux and QuickTime on Mac within the WebKit Qt component. The bug was reported in 2011 and has since been resolved.

The resolution of the bug indicates that it has been fixed, but without additional context or access to the bug report itself, it's challenging to provide specific details about the fix or the current status.

If you have any questions or need further information about the resolution of this bug or the WebKit project in general, you may want to consult the WebKit bug tracking system, relevant documentation, or reach out to the WebKit community for assistance.
Comment 25 Corguive 2024-04-11 21:37:51 PDT
(In reply to Corguive from comment #24)
> It appears that you're referencing a bug report related to the WebKit
> project, specifically regarding changing the default backend to use
> GStreamer on Linux and QuickTime on Mac within the WebKit Qt component. The
> bug was reported in 2011 and has since been resolved.
> 
> The resolution of the bug indicates that it has been fixed, but without
> additional context or access to the bug report itself, it's challenging to
> provide specific details about the fix or the current status.
> 
> If you have any questions or need further information about the resolution
> of this bug or the WebKit project in general, you may want to consult the
> WebKit bug tracking system, relevant documentation, or reach out to the
> WebKit community for assistance.

.https://tellthebell.fun/.
Comment 26 Ronald 2024-04-11 23:07:54 PDT
Thanks for sharing your knowledge! It's contributions like yours that make our discussions richer.
Comment 27 Ronald 2024-04-14 21:50:19 PDT
Thanks for sharing your knowledge! It's contributions like yours that make our discussions richer. https://officeally.fun/