mpeg2enc_opt = get_option('mpeg2enc').require(gpl_allowed, error_message: '''
  Plugin mpeg2enc explicitly required via options but GPL-licensed plugins disabled via options.
  Pass option -Dgpl=enabled to Meson to allow GPL-licensed plugins to be built.
  ''')

# mjpegtools upstream breaks API constantly and doesn't export the version in
# a header anywhere. The configure file has a lot of logic to support old
# versions, but it all seems untested and broken. Require 2.0.0. Can be changed
# if someone complains.
mjpegtools_dep = dependency('mjpegtools', version : '>=2.0.0', required : mpeg2enc_opt)
mpeg2enc_dep = cxx.find_library('mpeg2encpp', required : mpeg2enc_opt)

mpeg2enc_sources = [
  'gstmpeg2enc.cc',
  'gstmpeg2encoptions.cc',
  'gstmpeg2encoder.cc',
  'gstmpeg2encstreamwriter.cc',
  'gstmpeg2encpicturereader.cc',
]

mpeg2enc_headers = [
  'gstmpeg2enc.hh',
  'gstmpeg2encoptions.hh',
  'gstmpeg2encpicturereader.hh',
  'gstmpeg2encoder.hh',
  'gstmpeg2encstreamwriter.hh',
]

doc_sources = []
foreach s: mpeg2enc_sources + mpeg2enc_headers
  doc_sources += meson.current_source_dir() / s
endforeach

plugin_sources += {
  'mpeg2enc': pathsep.join(doc_sources)
}

if mjpegtools_dep.found() and mpeg2enc_dep.found()
  no_warn_args = []
  foreach arg : [
      '-Wno-mismatched-tags', # mjpeg headers get class/struct mixed up
      '-Wno-header-guard',
    ]
    if cxx.has_argument(arg)
      no_warn_args += [arg]
    endif
  endforeach

  gstmpeg2enc = library('gstmpeg2enc',
    mpeg2enc_sources,
    cpp_args : gst_plugins_bad_args + ['-DGST_MJPEGTOOLS_API=20000'] + no_warn_args,
    link_args : noseh_link_args,
    include_directories : [configinc, libsinc],
    dependencies : [gstvideo_dep, mjpegtools_dep, mpeg2enc_dep],
    install : true,
    install_dir : plugins_install_dir,
  )
  plugins += [gstmpeg2enc]
endif
