Merge branch 'drop-ffmpeg' into 'main'

Drop ffmpeg support

Closes #5581

See merge request GNOME/gtk!6872
This commit is contained in:
Matthias Clasen 2024-02-10 11:53:41 +00:00
commit 3a26e29795
8 changed files with 4 additions and 1259 deletions

View File

@ -234,7 +234,7 @@ By default, GTK will try to build with support for the Vulkan graphics
API in addition to cairo and OpenGL. This option can be used to explicitly
control whether Vulkan should be used.
### `media-gstreamer` and `media-ffmpeg`
### `media-gstreamer`
By default, GTK will try to build the gstreamer backend for
media playback support. These options can be used to explicitly

View File

@ -126,8 +126,8 @@ available on the system.
### `GTK_MEDIA`
Specifies what backend to load for [class@Gtk.MediaFile]. The possible values
depend on what options GTK was built with, and can include 'gstreamer',
'ffmpeg' and 'none'. If set to 'none', media playback will be unavailable.
depend on what options GTK was built with, and can include 'gstreamer'
and 'none'. If set to 'none', media playback will be unavailable.
The special value 'help' can be used to obtain a list of all supported
media backends.

View File

@ -37,7 +37,7 @@
* GTK provides a GIO extension point for `GtkMediaFile` implementations
* to allow for external implementations using various media frameworks.
*
* GTK itself includes implementations using GStreamer and ffmpeg.
* GTK itself includes an implementation using GStreamer.
*/
typedef struct _GtkMediaFilePrivate GtkMediaFilePrivate;

View File

@ -29,11 +29,6 @@ option('macos-backend',
# For distros: GTK guarantees support for WebM video (VP8 and VP9), so a supported build
# should provide that.
option('media-ffmpeg',
type: 'feature',
value: 'disabled',
description : 'Build the experimental ffmpeg media backend')
option('media-gstreamer',
type: 'feature',
value: 'enabled',

File diff suppressed because it is too large Load Diff

View File

@ -1,30 +0,0 @@
/*
* Copyright © 2018 Benjamin Otte
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
* Authors: Benjamin Otte <otte@gnome.org>
*/
#pragma once
#include <gtk/gtkmediafile.h>
G_BEGIN_DECLS
#define GTK_TYPE_FF_MEDIA_FILE (gtk_ff_media_file_get_type ())
G_DECLARE_FINAL_TYPE (GtkFfMediaFile, gtk_ff_media_file, GTK, FF_MEDIA_FILE, GtkMediaFile)
G_END_DECLS

View File

@ -5,40 +5,6 @@ media_backends = []
extra_c_args = ['-DGTK_COMPILATION']
extra_c_args += common_cflags
ffmpeg_opt = get_option('media-ffmpeg')
ffmpeg_versions = {
'libavfilter': '>= 6.47.100',
'libavformat': '>= 57.41.100',
'libavcodec': '>= 57.48.101',
'libavdevice': '>= 57.48.101',
'libavutil': '>= 55.28.100',
'libswresample': '>= 3.9.100',
'libswscale': '>= 4.6.100',
}
ffmpeg_deps = []
ffmpeg_found = true
foreach name, version : ffmpeg_versions
dep = dependency(name, version: version, required: ffmpeg_opt)
ffmpeg_deps += dep
if not dep.found()
ffmpeg_found = false
break
endif
endforeach
if ffmpeg_found
media_backends += 'ffmpeg'
cdata.set('HAVE_FFMPEG', 1)
shared_module('media-ffmpeg',
sources: 'gtkffmediafile.c',
c_args: extra_c_args,
dependencies: [ libgtk_dep, ffmpeg_deps ],
name_suffix: module_suffix,
install_dir: media_install_dir,
install: true,
)
endif
gstplayer_dep = dependency('gstreamer-player-1.0', version: '>= 1.12.3',
required: get_option('media-gstreamer'))
gstgl_dep = dependency('gstreamer-gl-1.0', version: '>= 1.12.3',

View File

@ -413,7 +413,6 @@ gtk/ui/gtkscalebutton.ui
gtk/ui/gtksidebarrow.ui
gtk/ui/gtkstatusbar.ui
gtk/ui/gtkvolumebutton.ui
modules/media/gtkffmediafile.c
modules/media/gtkgstsink.c
modules/printbackends/gtkprintbackendcpdb.c
modules/printbackends/gtkprintbackendcups.c