Commit 357a9b4a authored by Thibault Saunier's avatar Thibault Saunier

docs: Port to hotdoc

parent 5705e4ea
Pipeline #36617 failed with stages
in 5 minutes and 39 seconds
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
COMMON_SUBDIRS = ext docs common tests
COMMON_SUBDIRS = ext common tests
SUBDIRS = $(LIBAV_SUBDIRS) $(COMMON_SUBDIRS) pkgconfig
DIST_SUBDIRS = $(COMMON_SUBDIRS) gst-libs pkgconfig
......@@ -44,9 +42,6 @@ CRUFT_FILES = \
$(top_builddir)/common/m4/ltversion.m4 \
$(top_builddir)/common/m4/lt~obsolete.m4
CRUFT_DIRS = \
$(top_srcdir)/docs/plugins/tmpl
include $(top_srcdir)/common/cruft.mak
all-local: check-cruft
......@@ -96,10 +96,6 @@ AM_PROG_CC_C_O
AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
dnl check for documentation tools
GTK_DOC_CHECK([1.12])
AG_GST_PLUGIN_DOCS([1.12])
dnl *** checks for libraries ***
dnl check for libm, for sin()
......@@ -473,9 +469,6 @@ ext/Makefile
ext/libav/Makefile
gst-libs/Makefile
gst-libs/ext/Makefile
docs/Makefile
docs/plugins/Makefile
docs/version.entities
tests/Makefile
tests/check/Makefile
tests/files/Makefile
......
if ENABLE_GTK_DOC
if ENABLE_PLUGIN_DOCS
PLUGIN_DOCS_DIRS = plugins
else
PLUGIN_DOCS_DIRS =
endif
else
PLUGIN_DOCS_DIRS = plugins
endif
SUBDIRS = $(PLUGIN_DOCS_DIRS)
DIST_SUBDIRS = plugins
EXTRA_DIST = \
version.entities.in
upload:
@if test "x$(SUBDIRS)" != x; then for a in $(SUBDIRS); do cd $$a; make upload; cd ..; done; fi
This diff is collapsed.
---
short-description: GStreamer plugins from gst-ffmpeg
...
# FFMPEG plugin
build_hotdoc = false
if meson.is_cross_build()
if get_option('doc').enabled()
error('Documentation enabled but building the doc while cross building is not supported yet.')
endif
message('Documentation not built as building it while cross building is not supported yet.')
subdir_done()
endif
required_hotdoc_extensions = ['gst-extension']
if gst_dep.type_name() == 'internal'
gst_proj = subproject('gstreamer')
plugins_cache_generator = gst_proj.get_variable('plugins_cache_generator')
else
plugins_cache_generator = find_program(join_paths(gst_dep.get_pkgconfig_variable('libexecdir'), 'gstreamer-' + api_version, 'gst-plugins-doc-cache-generator'))
endif
plugins_cache = join_paths(meson.current_source_dir(), 'gst_plugins_cache.json')
if plugins_cache_generator.found()
plugins_doc_dep = custom_target('libav-plugins-doc-cache',
build_by_default: true,
command: [plugins_cache_generator, plugins_cache, '@OUTPUT@', '@INPUT@'],
input: plugins,
output: 'gst_plugins_cache.json',
)
else
warning('GStreamer plugin inspector for documentation not found, can\'t update the cache')
endif
hotdoc_p = find_program('hotdoc', required: get_option('doc'))
if not hotdoc_p.found()
message('Hotdoc not found, not building the documentation')
subdir_done()
endif
build_hotdoc = true
hotdoc = import('hotdoc')
docconf = configuration_data()
docconf.set('GST_API_VERSION', api_version)
foreach extension: required_hotdoc_extensions
if not hotdoc.has_extensions(extension)
if get_option('doc').enabled()
error('Documentation enabled but gi-extension missing')
endif
message('@0@ extensions not found, not building documentation requiring it'.format(extension))
subdir_done()
endif
endforeach
libs_doc = []
plugins_doc = [hotdoc.generate_doc('libav',
project_version: api_version,
sitemap: 'sitemap.txt',
index: 'index.md',
gst_index: 'index.md',
gst_smart_index: true,
gst_c_sources: ['../ext/*/*.[ch]',],
gst_cache_file: plugins_cache,
gst_plugin_name: 'libav',
dependencies: [gst_dep, gstlibav_plugin, plugins_doc_dep],
disable_incremental_build: true,
)]
*-plugins-decl-list.txt
*-plugins-decl.txt
*-plugins-overrides.txt
*-plugins-undocumented.txt
*-plugins.args.new
*-plugins.signals.new
*-plugins-unused.txt
html
html-build.stamp
html.stamp
scan-build.stamp
sgml-build.stamp
sgml.stamp
tmpl
tmpl-build.stamp
tmpl.stamp
xml
GST_DOC_SCANOBJ = $(top_srcdir)/common/gstdoc-scangobj
## Process this file with automake to produce Makefile.in
# The name of the module, e.g. 'glib'.
#DOC_MODULE=gst-plugins-libs-@GST_API_VERSION@
MODULE=gst-libav
DOC_MODULE=$(MODULE)-plugins
# for upload-doc.mak
DOC=$(MODULE)-plugins
FORMATS=html
html: html-build.stamp
include $(srcdir)/../../common/upload-doc.mak
# The top-level SGML file. Change it if you want.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# The directory containing the source code.
# gtk-doc will search all .c & .h files beneath here for inline comments
# documenting functions and macros.
DOC_SOURCE_DIR = $(top_srcdir)/ext/libav
# Extra options to supply to gtkdoc-scan.
SCAN_OPTIONS=--rebuild-sections
# Extra options to supply to gtkdoc-mkdb.
MKDB_OPTIONS=--sgml-mode
# Extra options to supply to gtkdoc-fixref.
# FIXME get the location of the installed gstreamer docs
#FIXXREF_OPTIONS=--extra-dir=../gst/html
# Used for dependencies.
HFILE_GLOB=$(top_srcdir)/ext/libav/*.h
CFILE_GLOB=$(top_srcdir)/ext/libav/*.c
# Header files to ignore when scanning.
IGNORE_HFILES =
IGNORE_CFILES =
# we add all .h files of elements that have signals/args we want
# sadly this also pulls in the private methods - maybe we should
# move those around in the source ?
# also, we should add some stuff here conditionally based on whether
# or not the plugin will actually build
# but I'm not sure about that - it might be this Just Works given that
# the registry won't have the element
# Images to copy into HTML directory.
HTML_IMAGES =
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
content_files =
# Other files to distribute.
extra_files =
# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
# contains GtkObjects/GObjects and you want to document signals and properties.
GTKDOC_CFLAGS = $(LIBAV_CFLAGS) $(GST_CFLAGS) -I$(top_builddir) -I$(top_builddir)/ext/libav
GTKDOC_LIBS = -L$(top_builddir)/ext/libav -lgstlibav \
$(LIBAV_LIBS) $(GST_BASE_LIBS)
# If you need to override some of the declarations, place them in this file
# and uncomment this line.
#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
DOC_OVERRIDES =
include $(top_srcdir)/common/gtk-doc-plugins.mak
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY % version-entities SYSTEM "version.entities">
%version-entities;
]>
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
<bookinfo>
<title>GStreamer libav &GST_API_VERSION; Plugins Reference Manual</title>
<releaseinfo>
for GStreamer libav Plugins &GST_API_VERSION; (&GST_VERSION;)
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-ffmpeg-plugins/html/">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-ffmpeg-plugins/html/</ulink>.
</releaseinfo>
</bookinfo>
<chapter>
<title>gst-libav Base and Support classes</title>
<xi:include href="xml/gstav.xml" />
<xi:include href="xml/gstavauddec.xml" />
<xi:include href="xml/gstavaudenc.xml" />
<xi:include href="xml/gstavcfg.xml" />
<xi:include href="xml/gstavcodecmap.xml" />
<xi:include href="xml/gstavprotocol.xml" />
<xi:include href="xml/gstavutils.xml" />
<xi:include href="xml/gstavviddec.xml" />
<xi:include href="xml/gstavvidenc.xml" />
</chapter>
<chapter>
<title>gst-libav Plugins</title>
<xi:include href="xml/plugin-libav.xml" />
</chapter>
<chapter>
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml" />
</chapter>
</book>
This diff is collapsed.
This diff is collapsed.
GstAudioEncoder GstPreset
GstBin GstChildProxy
GstPipeline GstChildProxy
GstVideoEncoder GstPreset
avenc_a64multi GstPreset
avenc_a64multi5 GstPreset
avenc_aac GstPreset
avenc_ac3 GstPreset
avenc_ac3_fixed GstPreset
avenc_adpcm_adx GstPreset
avenc_adpcm_ima_qt GstPreset
avenc_adpcm_ima_wav GstPreset
avenc_adpcm_ms GstPreset
avenc_adpcm_swf GstPreset
avenc_adpcm_yamaha GstPreset
avenc_alac GstPreset
avenc_alias_pix GstPreset
avenc_amv GstPreset
avenc_apng GstPreset
avenc_aptx GstPreset
avenc_aptx_hd GstPreset
avenc_asv1 GstPreset
avenc_asv2 GstPreset
avenc_avrp GstPreset
avenc_avui GstPreset
avenc_ayuv GstPreset
avenc_bmp GstPreset
avenc_cinepak GstPreset
avenc_cljr GstPreset
avenc_comfortnoise GstPreset
avenc_dca GstPreset
avenc_dnxhd GstPreset
avenc_dpx GstPreset
avenc_dvvideo GstPreset
avenc_eac3 GstPreset
avenc_ffv1 GstPreset
avenc_ffvhuff GstPreset
avenc_fits GstPreset
avenc_flashsv GstPreset
avenc_flashsv2 GstPreset
avenc_flv GstPreset
avenc_g722 GstPreset
avenc_g723_1 GstPreset
avenc_g726 GstPreset
avenc_g726le GstPreset
avenc_h261 GstPreset
avenc_h263 GstPreset
avenc_h263p GstPreset
avenc_huffyuv GstPreset
avenc_jpeg2000 GstPreset
avenc_jpegls GstPreset
avenc_ljpeg GstPreset
avenc_magicyuv GstPreset
avenc_mjpeg GstPreset
avenc_mlp GstPreset
avenc_mp2 GstPreset
avenc_mp2fixed GstPreset
avenc_mpeg1video GstPreset
avenc_mpeg2video GstPreset
avenc_mpeg4 GstPreset
avenc_msmpeg4 GstPreset
avenc_msmpeg4v2 GstPreset
avenc_msvideo1 GstPreset
avenc_nellymoser GstPreset
avenc_opus GstPreset
avenc_pam GstPreset
avenc_pbm GstPreset
avenc_pcm_s16be_planar GstPreset
avenc_pcm_s24le_planar GstPreset
avenc_pcm_s32le_planar GstPreset
avenc_pcm_s8_planar GstPreset
avenc_pcm_vidc GstPreset
avenc_pcx GstPreset
avenc_pgm GstPreset
avenc_pgmyuv GstPreset
avenc_png GstPreset
avenc_ppm GstPreset
avenc_prores GstPreset
avenc_prores_aw GstPreset
avenc_prores_ks GstPreset
avenc_qtrle GstPreset
avenc_r10k GstPreset
avenc_real_144 GstPreset
avenc_roq_dpcm GstPreset
avenc_roqvideo GstPreset
avenc_rv10 GstPreset
avenc_rv20 GstPreset
avenc_s302m GstPreset
avenc_sbc GstPreset
avenc_sgi GstPreset
avenc_snow GstPreset
avenc_sonic GstPreset
avenc_sonicls GstPreset
avenc_sunrast GstPreset
avenc_svq1 GstPreset
avenc_targa GstPreset
avenc_tiff GstPreset
avenc_truehd GstPreset
avenc_tta GstPreset
avenc_utvideo GstPreset
avenc_v308 GstPreset
avenc_v408 GstPreset
avenc_v410 GstPreset
avenc_vc2 GstPreset
avenc_wavpack GstPreset
avenc_wmav1 GstPreset
avenc_wmav2 GstPreset
avenc_wmv1 GstPreset
avenc_wmv2 GstPreset
avenc_wrapped_avframe GstPreset
avenc_xbm GstPreset
avenc_xface GstPreset
avenc_xwd GstPreset
avenc_y41p GstPreset
avenc_yuv4 GstPreset
avenc_zmbv GstPreset
avmux_3g2 GstTagSetter
avmux_3gp GstTagSetter
avmux_a64 GstTagSetter
avmux_adts GstTagSetter
avmux_adx GstTagSetter
avmux_aiff GstTagSetter
avmux_amr GstTagSetter
avmux_apng GstTagSetter
avmux_asf GstTagSetter
avmux_asf_stream GstTagSetter
avmux_ast GstTagSetter
avmux_au GstTagSetter
avmux_avi GstTagSetter
avmux_avm2 GstTagSetter
avmux_bit GstTagSetter
avmux_caf GstTagSetter
avmux_codec2 GstTagSetter
avmux_dash GstTagSetter
avmux_daud GstTagSetter
avmux_dv GstTagSetter
avmux_dvd GstTagSetter
avmux_f4v GstTagSetter
avmux_ffm GstTagSetter
avmux_fifo GstTagSetter
avmux_film_cpk GstTagSetter
avmux_filmstrip GstTagSetter
avmux_fits GstTagSetter
avmux_flv GstTagSetter
avmux_gxf GstTagSetter
avmux_hash GstTagSetter
avmux_hds GstTagSetter
avmux_hls GstTagSetter
avmux_ico GstTagSetter
avmux_ilbc GstTagSetter
avmux_ipod GstTagSetter
avmux_ircam GstTagSetter
avmux_ismv GstTagSetter
avmux_ivf GstTagSetter
avmux_latm GstTagSetter
avmux_matroska GstTagSetter
avmux_md5 GstTagSetter
avmux_mkvtimestamp_v2 GstTagSetter
avmux_mmf GstTagSetter
avmux_mov GstTagSetter
avmux_mp2 GstTagSetter
avmux_mp3 GstTagSetter
avmux_mp4 GstTagSetter
avmux_mpeg GstTagSetter
avmux_mpegts GstTagSetter
avmux_mpjpeg GstTagSetter
avmux_mxf GstTagSetter
avmux_mxf_d10 GstTagSetter
avmux_mxf_opatom GstTagSetter
avmux_nut GstTagSetter
avmux_oga GstTagSetter
avmux_ogg GstTagSetter
avmux_ogv GstTagSetter
avmux_oma GstTagSetter
avmux_opus GstTagSetter
avmux_psp GstTagSetter
avmux_rcv GstTagSetter
avmux_rm GstTagSetter
avmux_rso GstTagSetter
avmux_scc GstTagSetter
avmux_singlejpeg GstTagSetter
avmux_smjpeg GstTagSetter
avmux_smoothstreaming GstTagSetter
avmux_sox GstTagSetter
avmux_spdif GstTagSetter
avmux_spx GstTagSetter
avmux_svcd GstTagSetter
avmux_swf GstTagSetter
avmux_tta GstTagSetter
avmux_uncodedframecrc GstTagSetter
avmux_vc1test GstTagSetter
avmux_vcd GstTagSetter
avmux_vidc GstTagSetter
avmux_vob GstTagSetter
avmux_voc GstTagSetter
avmux_w64 GstTagSetter
avmux_wav GstTagSetter
avmux_webm GstTagSetter
avmux_webp GstTagSetter
avmux_wtv GstTagSetter
avmux_yuv4mpegpipe GstTagSetter
ffmux_3g2 GstTagSetter
ffmux_3gp GstTagSetter
ffmux_amr GstTagSetter
ffmux_asf GstTagSetter
ffmux_dv GstTagSetter
ffmux_flv GstTagSetter
ffmux_gif GstTagSetter
ffmux_mmf GstTagSetter
ffmux_mov GstTagSetter
ffmux_mp4 GstTagSetter
ffmux_mpeg GstTagSetter
ffmux_mpegts GstTagSetter
ffmux_vob GstTagSetter
GstChildProxy GObject
GstChildProxy GstObject
GstTagSetter GstElement
GstTagSetter GstObject GstElement
This diff is collapsed.
<!ENTITY GST_API_VERSION "@GST_API_VERSION@">
<!ENTITY GST_VERSION "@VERSION@">
......@@ -23,3 +23,4 @@ gstlibav_plugin = library('gstlibav',
install_dir : plugins_install_dir,
)
pkgconfig.generate(gstlibav_plugin, install_dir : plugins_pkgconfig_install_dir)
plugins += [gstlibav_plugin]
project('gst-libav', 'c', 'cpp',
version : '1.17.0.1',
meson_version : '>= 0.46.0',
meson_version : '>= 0.48.0',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
......@@ -15,6 +15,7 @@ else
gst_version_nano = 0
endif
api_version = '1.0'
libavfilter_dep = dependency('libavfilter', version: '>= 7.16.100',
fallback: ['FFmpeg', 'libavfilter_dep'])
libavformat_dep = dependency('libavformat', version: '>= 58.12.100',
......@@ -175,13 +176,17 @@ endforeach
configinc = include_directories('.')
plugins_install_dir = '@0@/gstreamer-1.0'.format(get_option('libdir'))
pkgconfig = import('pkgconfig')
plugins_pkgconfig_install_dir = join_paths(plugins_install_dir, 'pkgconfig')
if get_option('default_library') == 'shared'
# If we don't build static plugins there is no need to generate pc files
plugins_pkgconfig_install_dir = disabler()
endif
plugins = []
subdir('ext/libav')
subdir('docs')
python3 = import('python').find_installation()
run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")')
......@@ -3,3 +3,5 @@ option('package-name', type : 'string', yield : true,
option('package-origin', type : 'string',
value : 'Unknown package origin', yield : true,
description : 'package origin URL to use in plugins')
option('doc', type : 'feature', value : 'auto', yield: true,
description: 'Enable documentation.')
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment