[vlc-devel] [PATCH 0/4] Define C++ types in namespaces

Romain Vimont rom1v at videolabs.io
Fri Apr 27 22:04:59 CEST 2018


Remove all *_sys_t typedefs from vlc_common.h (declare them locally in
each module), then define C++ types in namespaces to respect ODR.

See #17078 and #18033

Romain Vimont (4):
  core: remove global *_sys_t typedefs
  core: remove global picture_sys_t typedef
  core: remove global sout_stream_id_sys_t typedef
  Define C++ types in namespaces

 include/vlc_common.h                          | 16 ------
 include/vlc_picture.h                         |  2 +-
 include/vlc_sout.h                            | 23 ++++-----
 modules/access/alsa.c                         |  4 +-
 modules/access/attachment.c                   |  4 +-
 modules/access/avio.c                         |  9 ++--
 modules/access/bluray.c                       |  9 ++--
 modules/access/cdda.c                         |  8 +--
 modules/access/concat.c                       |  4 +-
 modules/access/dc1394.c                       |  4 +-
 modules/access/dcp/dcp.cpp                    |  4 ++
 modules/access/decklink.cpp                   |  7 +++
 modules/access/directory.c                    |  4 +-
 modules/access/dshow/access.h                 |  8 +++
 modules/access/dshow/crossbar.cpp             |  4 ++
 modules/access/dshow/dshow.cpp                | 10 ++++
 modules/access/dshow/filter.cpp               |  4 ++
 modules/access/dshow/filter.h                 |  4 ++
 modules/access/dshow/vlc_dshow.h              |  4 ++
 modules/access/dsm/sd.c                       |  4 +-
 modules/access/dtv/access.c                   |  4 +-
 modules/access/dv.c                           |  4 +-
 modules/access/dvb/access.c                   |  4 +-
 modules/access/dvdnav.c                       |  4 +-
 modules/access/dvdread.c                      |  4 +-
 modules/access/file.c                         |  4 +-
 modules/access/ftp.c                          |  3 ++
 modules/access/http.c                         |  4 +-
 modules/access/http/access.c                  |  4 +-
 modules/access/idummy.c                       |  4 +-
 modules/access/imem-access.c                  |  4 +-
 modules/access/imem.c                         |  4 +-
 modules/access/jack.c                         |  4 +-
 modules/access/linsys/linsys_hdsdi.c          |  4 +-
 modules/access/linsys/linsys_sdi.c            |  4 +-
 modules/access/live555.cpp                    |  5 +-
 modules/access/mms/mms.c                      |  4 +-
 modules/access/mms/mmsh.h                     |  4 +-
 modules/access/mms/mmstu.h                    |  4 +-
 modules/access/nfs.c                          |  4 +-
 modules/access/oss.c                          |  4 +-
 modules/access/pulse.c                        |  4 +-
 modules/access/rdp.c                          |  4 +-
 modules/access/rtp/rtp.h                      |  4 +-
 modules/access/rtsp/access.c                  |  4 +-
 modules/access/samba.c                        |  4 +-
 modules/access/satip.c                        |  5 +-
 modules/access/screen/screen.h                |  4 +-
 modules/access/screen/wayland.c               |  4 +-
 modules/access/screen/xcb.c                   |  4 +-
 modules/access/sftp.c                         |  4 +-
 modules/access/shm.c                          |  2 +
 modules/access/srt.c                          |  4 +-
 modules/access/timecode.c                     |  4 +-
 modules/access/udp.c                          |  4 +-
 modules/access/unc.c                          |  4 +-
 modules/access/v4l2/access.c                  |  4 +-
 modules/access/v4l2/demux.c                   |  4 +-
 modules/access/v4l2/radio.c                   |  4 +-
 modules/access/vcd/vcd.c                      |  4 +-
 modules/access/vdr.c                          |  4 +-
 modules/access/vnc.c                          |  4 +-
 modules/access/wasapi.c                       |  4 +-
 modules/access_output/http.c                  |  4 +-
 modules/access_output/livehttp.c              |  4 +-
 modules/access_output/shout.c                 |  4 +-
 modules/access_output/srt.c                   |  4 +-
 modules/access_output/udp.c                   |  4 +-
 modules/audio_filter/audiobargraph_a.c        |  4 +-
 modules/audio_filter/channel_mixer/dolby.c    |  4 +-
 .../audio_filter/channel_mixer/headphone.c    | 10 ++--
 modules/audio_filter/channel_mixer/mono.c     |  8 +--
 modules/audio_filter/channel_mixer/remap.c    |  4 +-
 .../channel_mixer/spatialaudio.cpp            |  4 +-
 modules/audio_filter/channel_mixer/trivial.c  |  4 +-
 modules/audio_filter/chorus_flanger.c         |  2 +
 modules/audio_filter/compressor.c             |  4 +-
 modules/audio_filter/converter/tospdif.c      |  4 +-
 modules/audio_filter/equalizer.c              |  4 +-
 modules/audio_filter/gain.c                   |  4 +-
 modules/audio_filter/normvol.c                |  6 +--
 modules/audio_filter/param_eq.c               |  4 +-
 modules/audio_filter/resampler/bandlimited.c  |  4 +-
 modules/audio_filter/resampler/soxr.c         |  6 +--
 modules/audio_filter/resampler/speex.c        |  2 +-
 modules/audio_filter/resampler/src.c          |  2 +-
 modules/audio_filter/scaletempo.c             |  4 +-
 .../audio_filter/spatializer/spatializer.cpp  |  9 ++++
 modules/audio_filter/stereo_widen.c           |  4 +-
 modules/audio_output/alsa.c                   |  4 +-
 modules/audio_output/amem.c                   |  4 +-
 modules/audio_output/audiotrack.c             |  5 +-
 modules/audio_output/auhal.c                  |  4 +-
 modules/audio_output/directsound.c            |  4 +-
 modules/audio_output/file.c                   |  4 +-
 modules/audio_output/jack.c                   | 18 +++----
 modules/audio_output/kai.c                    |  4 +-
 modules/audio_output/mmdevice.c               |  4 +-
 modules/audio_output/opensles_android.c       |  4 +-
 modules/audio_output/oss.c                    |  4 +-
 modules/audio_output/pulse.c                  |  4 +-
 modules/audio_output/sndio.c                  |  4 +-
 modules/audio_output/tizen_audio.c            |  5 +-
 modules/audio_output/waveout.c                |  3 ++
 modules/audio_output/winstore.c               |  4 +-
 modules/codec/a52.c                           |  4 +-
 modules/codec/adpcm.c                         |  4 +-
 modules/codec/aes3.c                          |  4 +-
 modules/codec/aom.c                           |  8 +--
 modules/codec/araw.c                          |  4 +-
 modules/codec/arib/aribsub.c                  |  4 +-
 modules/codec/audiotoolbox_midi.c             |  4 +-
 modules/codec/avcodec/audio.c                 |  4 +-
 modules/codec/avcodec/directx_va.c            |  5 +-
 modules/codec/avcodec/encoder.c               |  4 +-
 modules/codec/avcodec/subtitle.c              |  5 +-
 modules/codec/avcodec/va.c                    |  6 +--
 modules/codec/avcodec/va.h                    |  2 +-
 modules/codec/avcodec/va_surface.c            |  5 +-
 modules/codec/avcodec/va_surface.h            |  2 +-
 modules/codec/avcodec/vaapi.c                 |  4 +-
 modules/codec/avcodec/video.c                 |  4 +-
 modules/codec/bpg.c                           |  4 +-
 modules/codec/cc.c                            |  4 +-
 modules/codec/cdg.c                           |  4 +-
 modules/codec/crystalhd.c                     |  4 +-
 modules/codec/cvdsub.c                        |  4 +-
 modules/codec/daala.c                         |  8 +--
 modules/codec/dca.c                           |  4 +-
 modules/codec/dmo/dmo.c                       |  8 +--
 modules/codec/dvbsub.c                        |  8 +--
 modules/codec/faad.c                          |  4 +-
 modules/codec/fdkaac.c                        |  4 +-
 modules/codec/flac.c                          |  8 +--
 modules/codec/fluidsynth.c                    |  4 +-
 modules/codec/g711.c                          |  4 +-
 modules/codec/gstreamer/gstdecode.c           |  4 +-
 modules/codec/jpeg.c                          |  8 +--
 modules/codec/kate.c                          |  4 +-
 modules/codec/libass.c                        |  4 +-
 modules/codec/libmpeg2.c                      |  4 +-
 modules/codec/lpcm.c                          |  8 +--
 modules/codec/mad.c                           |  4 +-
 modules/codec/mft.c                           |  4 +-
 modules/codec/mpg123.c                        |  4 +-
 modules/codec/oggspots.c                      |  4 +-
 modules/codec/omxil/mediacodec.c              |  4 +-
 modules/codec/omxil/omxil.h                   |  4 +-
 modules/codec/opus.c                          |  8 +--
 modules/codec/png.c                           |  8 +--
 modules/codec/qsv.c                           |  4 +-
 modules/codec/rawvideo.c                      |  4 +-
 modules/codec/schroedinger.c                  |  8 +--
 modules/codec/scte18.c                        |  4 +-
 modules/codec/scte27.c                        |  5 +-
 modules/codec/sdl_image.c                     |  4 +-
 modules/codec/shine.c                         |  4 +-
 modules/codec/speex.c                         |  8 +--
 modules/codec/spudec/spudec.h                 |  4 +-
 modules/codec/stl.c                           |  5 +-
 modules/codec/subsdec.c                       |  4 +-
 modules/codec/substx3g.c                      |  2 +-
 modules/codec/subsusf.c                       |  4 +-
 modules/codec/svcdsub.c                       |  4 +-
 modules/codec/svg.c                           |  4 +-
 modules/codec/telx.c                          |  4 +-
 modules/codec/textst.c                        |  4 +-
 modules/codec/theora.c                        |  8 +--
 modules/codec/ttml/substtml.c                 |  4 +-
 modules/codec/twolame.c                       |  4 +-
 modules/codec/uleaddvaudio.c                  |  4 +-
 modules/codec/vorbis.c                        |  8 +--
 modules/codec/vpx.c                           |  8 +--
 modules/codec/webvtt/subsvtt.c                |  4 +-
 modules/codec/wmafixed/wma.c                  |  4 +-
 modules/codec/x264.c                          |  4 +-
 modules/codec/x265.c                          |  4 +-
 modules/codec/zvbi.c                          |  4 +-
 modules/demux/adaptive/adaptive.cpp           |  2 +-
 modules/demux/adaptive/plumbing/FakeESOut.cpp |  2 +-
 .../demux/adaptive/plumbing/SourceStream.cpp  |  2 +-
 modules/demux/aiff.c                          |  4 +-
 modules/demux/asf/asf.c                       |  4 +-
 modules/demux/au.c                            |  4 +-
 modules/demux/avformat/demux.c                |  4 +-
 modules/demux/avformat/mux.c                  |  4 +-
 modules/demux/avi/avi.c                       |  4 +-
 modules/demux/caf.c                           |  4 +-
 modules/demux/cdg.c                           |  4 +-
 modules/demux/flac.c                          |  4 +-
 modules/demux/gme.c                           |  4 +-
 modules/demux/image.c                         |  4 +-
 modules/demux/mjpeg.c                         |  4 +-
 modules/demux/mkv/Ebml_parser.cpp             |  3 ++
 modules/demux/mkv/Ebml_parser.hpp             |  4 ++
 modules/demux/mkv/chapter_command.cpp         |  5 +-
 modules/demux/mkv/chapter_command.hpp         |  6 +--
 modules/demux/mkv/chapters.cpp                |  3 ++
 modules/demux/mkv/chapters.hpp                |  4 ++
 modules/demux/mkv/demux.cpp                   |  3 ++
 modules/demux/mkv/demux.hpp                   |  3 ++
 modules/demux/mkv/matroska_segment.cpp        |  4 ++
 modules/demux/mkv/matroska_segment.hpp        |  4 ++
 modules/demux/mkv/matroska_segment_parse.cpp  |  4 ++
 modules/demux/mkv/matroska_segment_seeker.cpp |  3 ++
 modules/demux/mkv/matroska_segment_seeker.hpp |  4 ++
 modules/demux/mkv/mkv.cpp                     |  7 +++
 modules/demux/mkv/mkv.hpp                     |  3 ++
 modules/demux/mkv/stream_io_callback.cpp      |  3 ++
 modules/demux/mkv/stream_io_callback.hpp      |  3 ++
 modules/demux/mkv/util.cpp                    |  4 ++
 modules/demux/mkv/util.hpp                    |  4 ++
 modules/demux/mkv/virtual_segment.cpp         |  4 ++
 modules/demux/mkv/virtual_segment.hpp         |  4 ++
 modules/demux/mod.c                           |  4 +-
 modules/demux/mp4/mp4.c                       |  4 +-
 modules/demux/mpc.c                           |  4 +-
 modules/demux/mpeg/es.c                       |  4 +-
 modules/demux/mpeg/h26x.c                     |  4 +-
 modules/demux/mpeg/mpgv.c                     |  4 +-
 modules/demux/mpeg/ps.c                       |  4 +-
 modules/demux/mpeg/ts_pid.h                   |  2 +
 modules/demux/nsv.c                           |  4 +-
 modules/demux/nuv.c                           |  4 +-
 modules/demux/ogg.h                           |  4 +-
 modules/demux/playlist/sgimb.c                |  4 +-
 modules/demux/pva.c                           |  4 +-
 modules/demux/rawaud.c                        |  4 +-
 modules/demux/rawdv.c                         |  4 +-
 modules/demux/rawvid.c                        |  4 +-
 modules/demux/real.c                          |  4 +-
 modules/demux/sid.cpp                         | 17 ++++---
 modules/demux/smf.c                           |  4 +-
 modules/demux/stl.c                           |  5 +-
 modules/demux/subtitle.c                      |  4 +-
 modules/demux/tta.c                           |  4 +-
 modules/demux/ttml.c                          |  4 +-
 modules/demux/ty.c                            |  4 +-
 modules/demux/vc1.c                           |  4 +-
 modules/demux/vobsub.c                        |  4 +-
 modules/demux/voc.c                           |  4 +-
 modules/demux/wav.c                           |  4 +-
 modules/demux/webvtt.c                        |  4 +-
 modules/demux/xa.c                            |  4 +-
 modules/hw/d3d11/d3d11_deinterlace.c          |  4 +-
 modules/hw/d3d11/d3d11_filters.c              |  4 +-
 modules/hw/d3d11/d3d11_surface.c              | 16 +++---
 modules/hw/d3d9/d3d9_filters.c                |  4 +-
 modules/hw/d3d9/dxa9.c                        | 12 +++--
 modules/hw/d3d9/dxva2_deinterlace.c           |  4 +-
 modules/hw/mmal/codec.c                       |  5 +-
 modules/hw/mmal/deinterlace.c                 |  5 +-
 modules/hw/mmal/mmal_picture.h                |  5 +-
 modules/hw/vaapi/chroma.c                     |  4 +-
 modules/hw/vaapi/filters.c                    |  4 +-
 modules/hw/vaapi/vlc_vaapi.c                  | 11 ++--
 modules/hw/vaapi/vlc_vaapi.h                  |  5 +-
 modules/hw/vdpau/adjust.c                     |  4 +-
 modules/hw/vdpau/chroma.c                     |  4 +-
 modules/hw/vdpau/deinterlace.c                |  4 +-
 modules/hw/vdpau/sharpen.c                    |  4 +-
 modules/hw/vdpau/vlc_vdpau.h                  |  4 +-
 modules/lua/services_discovery.c              |  4 +-
 modules/misc/rtsp.c                           |  4 +-
 modules/misc/stats.c                          |  4 +-
 modules/misc/xml/libxml.c                     |  4 +-
 modules/mux/asf.c                             |  4 +-
 modules/mux/avi.c                             |  4 +-
 modules/mux/dummy.c                           |  4 +-
 modules/mux/mp4/mp4.c                         |  4 +-
 modules/mux/mpeg/ps.c                         |  4 +-
 modules/mux/mpeg/ts.c                         |  4 +-
 modules/mux/ogg.c                             |  4 +-
 modules/mux/wav.c                             |  4 +-
 modules/packetizer/a52.c                      |  4 +-
 modules/packetizer/avparser.c                 |  4 +-
 modules/packetizer/copy.c                     |  4 +-
 modules/packetizer/dts.c                      |  4 +-
 modules/packetizer/flac.c                     |  4 +-
 modules/packetizer/h264.c                     |  4 +-
 modules/packetizer/hevc.c                     |  4 +-
 modules/packetizer/mlp.c                      |  4 +-
 modules/packetizer/mpeg4audio.c               |  4 +-
 modules/packetizer/mpeg4video.c               |  4 +-
 modules/packetizer/mpegaudio.c                |  4 +-
 modules/packetizer/mpegvideo.c                |  4 +-
 modules/packetizer/vc1.c                      |  4 +-
 modules/services_discovery/avahi.c            |  4 +-
 modules/services_discovery/mediadirs.c        |  4 +-
 modules/services_discovery/microdns.c         |  4 +-
 modules/services_discovery/mtp.c              |  4 +-
 modules/services_discovery/podcast.c          |  4 +-
 modules/services_discovery/pulse.c            |  4 +-
 modules/services_discovery/sap.c              |  8 +--
 modules/services_discovery/udev.c             |  4 +-
 modules/services_discovery/upnp.cpp           |  4 ++
 modules/services_discovery/xcb_apps.c         |  4 +-
 modules/spu/audiobargraph_v.c                 |  4 +-
 modules/spu/dynamicoverlay/dynamicoverlay.h   |  4 +-
 modules/spu/logo.c                            |  4 +-
 modules/spu/marq.c                            |  4 +-
 modules/spu/mosaic.c                          |  4 +-
 modules/spu/remoteosd.c                       |  2 +
 modules/spu/rss.c                             |  4 +-
 modules/spu/subsdelay.c                       |  4 +-
 modules/stream_filter/accesstweaks.c          |  4 +-
 modules/stream_filter/aribcam.c               |  4 +-
 modules/stream_filter/cache_block.c           |  4 +-
 modules/stream_filter/cache_read.c            |  4 +-
 modules/stream_filter/decomp.c                |  4 +-
 modules/stream_filter/hds/hds.c               |  4 +-
 modules/stream_filter/inflate.c               |  4 +-
 modules/stream_filter/prefetch.c              |  4 +-
 modules/stream_filter/record.c                |  4 +-
 modules/stream_out/autodel.c                  | 21 ++++----
 modules/stream_out/bridge.c                   | 36 ++++++-------
 modules/stream_out/chromaprint.c              | 19 +++----
 modules/stream_out/chromecast/cast.cpp        | 39 +++++++++------
 .../chromecast/chromecast_demux.cpp           |  1 -
 modules/stream_out/cycle.c                    | 14 +++---
 modules/stream_out/delay.c                    | 19 ++++---
 modules/stream_out/description.c              | 17 +++----
 modules/stream_out/display.c                  | 19 ++++---
 modules/stream_out/dummy.c                    | 13 +++--
 modules/stream_out/duplicate.c                | 24 ++++-----
 modules/stream_out/es.c                       | 23 +++++----
 modules/stream_out/gather.c                   | 23 +++++----
 modules/stream_out/mosaic_bridge.c            | 19 ++++---
 modules/stream_out/record.c                   | 20 ++++----
 modules/stream_out/rtp.c                      | 39 +++++++--------
 modules/stream_out/rtp.h                      |  1 +
 modules/stream_out/setid.c                    | 21 ++++----
 modules/stream_out/smem.c                     | 50 ++++++++-----------
 modules/stream_out/standard.c                 | 15 +++---
 modules/stream_out/stats.c                    | 23 +++++----
 modules/stream_out/transcode/transcode.c      | 16 +++---
 modules/stream_out/transcode/transcode.h      |  6 ++-
 modules/stream_out/vod.c                      |  4 +-
 modules/text_renderer/freetype/freetype.h     |  4 +-
 modules/text_renderer/svg.c                   |  4 +-
 modules/video_chroma/chain.c                  |  4 +-
 modules/video_chroma/cvpx.c                   |  4 +-
 modules/video_chroma/d3d11_fmt.h              |  4 +-
 modules/video_chroma/d3d9_fmt.h               |  4 +-
 modules/video_chroma/i420_nv12.c              |  4 +-
 modules/video_chroma/i420_rgb.h               |  4 +-
 modules/video_chroma/swscale.c                |  4 +-
 modules/video_filter/adjust.c                 |  4 +-
 modules/video_filter/alphamask.c              |  4 +-
 modules/video_filter/anaglyph.c               |  4 +-
 modules/video_filter/antiflicker.c            |  4 +-
 modules/video_filter/ball.c                   |  3 ++
 modules/video_filter/blend.cpp                |  8 +++
 modules/video_filter/blendbench.c             |  4 +-
 modules/video_filter/bluescreen.c             |  4 +-
 modules/video_filter/canvas.c                 |  4 +-
 modules/video_filter/colorthres.c             |  4 +-
 modules/video_filter/croppadd.c               |  4 +-
 .../video_filter/deinterlace/deinterlace.h    |  4 +-
 modules/video_filter/edgedetection.c          |  4 +-
 modules/video_filter/erase.c                  |  4 +-
 modules/video_filter/extract.c                |  4 +-
 modules/video_filter/fps.c                    |  4 +-
 modules/video_filter/freeze.c                 |  5 +-
 modules/video_filter/gaussianblur.c           |  4 +-
 modules/video_filter/gradfun.c                |  5 +-
 modules/video_filter/gradient.c               |  4 +-
 modules/video_filter/grain.c                  |  5 +-
 modules/video_filter/hqdn3d.c                 |  4 +-
 modules/video_filter/magnify.c                |  4 +-
 modules/video_filter/mirror.c                 |  4 +-
 modules/video_filter/motionblur.c             |  2 +
 modules/video_filter/motiondetect.c           |  4 +-
 modules/video_filter/oldmovie.c               |  5 +-
 modules/video_filter/opencv_example.cpp       |  5 ++
 modules/video_filter/opencv_wrapper.c         |  4 +-
 modules/video_filter/posterize.c              |  4 +-
 modules/video_filter/postproc.c               |  4 +-
 modules/video_filter/psychedelic.c            |  4 +-
 modules/video_filter/puzzle_mgt.h             |  2 +
 modules/video_filter/ripple.c                 |  4 +-
 modules/video_filter/rotate.c                 |  8 +--
 modules/video_filter/scene.c                  |  4 +-
 modules/video_filter/sepia.c                  |  4 +-
 modules/video_filter/sharpen.c                |  4 +-
 modules/video_filter/transform.c              |  5 +-
 modules/video_filter/vhs.c                    |  5 +-
 modules/video_filter/wave.c                   |  4 +-
 modules/video_output/android/display.h        |  4 +-
 modules/video_output/decklink.cpp             | 10 ++--
 modules/video_output/kva.c                    |  4 +-
 modules/video_output/opengl/converter_sw.c    |  4 +-
 modules/video_output/vmem.c                   |  5 +-
 modules/video_output/wayland/shm.c            |  2 +-
 modules/video_output/win32/directdraw.c       |  5 +-
 modules/visualization/glspectrum.c            |  4 +-
 modules/visualization/goom.c                  |  4 +-
 modules/visualization/projectm.cpp            |  3 ++
 modules/visualization/visual/visual.c         |  4 +-
 modules/visualization/vsxu.cpp                |  3 ++
 src/input/es_out.c                            |  4 +-
 src/input/es_out_timeshift.c                  |  4 +-
 src/stream_output/stream_output.h             |  2 +-
 403 files changed, 1189 insertions(+), 998 deletions(-)  <-- sorry ;-)

-- 
2.17.0



More information about the vlc-devel mailing list