mpegts_sources = [
  'gstmpegtssection.c',
  'gstmpegtsdescriptor.c',
  'gst-dvb-descriptor.c',
  'gst-dvb-section.c',
  'gst-atsc-section.c',
]

mpegts_headers = [
  'gstmpegtssection.h',
  'gst-atsc-section.h',
  'gst-dvb-section.h',
  'gst-scte-section.h',
  'gstmpegtsdescriptor.h',
  'gst-dvb-descriptor.h',
  'mpegts-prelude.h',
  'mpegts.h',
]
install_headers(mpegts_headers, subdir : 'gstreamer-1.0/gst/mpegts')

mkenums = find_program('mpegts_enum.py')

mpegts_h = custom_target('mpegtsenum_h',
  output : 'gstmpegts-enumtypes.h',
  input : mpegts_headers,
  install : true,
  install_dir : 'include/gstreamer-1.0/gst/mpegts',
  command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
gen_sources = [mpegts_h]

mpegts_c = custom_target('mpegtsenum_c',
  output : 'gstmpegts-enumtypes.c',
  input : mpegts_headers,
  command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])

gstmpegts = library('gstmpegts-' + api_version,
  mpegts_sources, mpegts_h, mpegts_c,
  c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
  include_directories : [configinc, libsinc],
  version : libversion,
  soversion : soversion,
  install : true,
  dependencies : [gst_dep],
)
if build_gir
  mpegts_gir = gnome.generate_gir(gstmpegts,
    sources : mpegts_sources + mpegts_headers,
    namespace : 'GstMpegts',
    nsversion : api_version,
    identifier_prefix : 'GstMpegts',
    symbol_prefix : 'gst_mpegts', #FIXME ['gst_mpegts', 'gst'],
    export_packages : 'gstreamer-mpegts-1.0',
    includes : ['Gst-1.0'],
    install : true,
    extra_args : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/mpegts/mpegts.h'],
    dependencies : [gst_dep]
  )
  gen_sources += mpegts_gir
endif


gstmpegts_dep = declare_dependency(link_with : gstmpegts,
  include_directories : [libsinc],
  dependencies : [gst_dep],
  sources : gen_sources)
