[vlc-devel] [PATCH 1/3] core: respect ODR for demux_sys_t

Thomas Guillem thomas at gllm.fr
Mon Apr 23 08:46:10 CEST 2018


I'm OK for the whole set.

On Sun, Apr 22, 2018, at 17:03, Romain Vimont wrote:
> See #17078 and #18033
> ---
>  include/vlc_common.h                            |  1 -
>  modules/access/alsa.c                           |  4 ++--
>  modules/access/bluray.c                         |  4 ++--
>  modules/access/cdda.c                           |  4 ++--
>  modules/access/dc1394.c                         |  4 ++--
>  modules/access/dcp/dcp.cpp                      |  2 ++
>  modules/access/decklink.cpp                     |  2 ++
>  modules/access/dvdnav.c                         |  4 ++--
>  modules/access/dvdread.c                        |  4 ++--
>  modules/access/idummy.c                         |  4 ++--
>  modules/access/imem.c                           |  2 +-
>  modules/access/jack.c                           |  4 ++--
>  modules/access/linsys/linsys_hdsdi.c            |  4 ++--
>  modules/access/linsys/linsys_sdi.c              |  4 ++--
>  modules/access/live555.cpp                      |  3 ++-
>  modules/access/oss.c                            |  4 ++--
>  modules/access/pulse.c                          |  4 ++--
>  modules/access/rdp.c                            |  4 ++--
>  modules/access/rtp/rtp.h                        |  4 ++--
>  modules/access/screen/screen.h                  |  4 ++--
>  modules/access/screen/wayland.c                 |  4 ++--
>  modules/access/screen/xcb.c                     |  4 ++--
>  modules/access/shm.c                            |  2 ++
>  modules/access/timecode.c                       |  4 ++--
>  modules/access/v4l2/demux.c                     |  4 ++--
>  modules/access/v4l2/radio.c                     |  4 ++--
>  modules/access/vnc.c                            |  4 ++--
>  modules/access/wasapi.c                         |  4 ++--
>  modules/demux/adaptive/adaptive.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/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           | 10 +++++-----
>  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                       |  8 +++++++-
>  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/misc/stats.c                            |  4 ++--
>  modules/services_discovery/sap.c                |  4 ++--
>  .../stream_out/chromecast/chromecast_demux.cpp  |  1 -
>  94 files changed, 228 insertions(+), 146 deletions(-)
> 
> diff --git a/include/vlc_common.h b/include/vlc_common.h
> index c11b76dbb3..5669e1f0d6 100644
> --- a/include/vlc_common.h
> +++ b/include/vlc_common.h
> @@ -356,7 +356,6 @@ typedef struct access_sys_t access_sys_t;
>  typedef struct stream_t     stream_t;
>  typedef struct stream_sys_t stream_sys_t;
>  typedef struct stream_t demux_t;
> -typedef struct demux_sys_t demux_sys_t;
>  typedef struct es_out_t     es_out_t;
>  typedef struct es_out_id_t  es_out_id_t;
>  typedef struct es_out_sys_t es_out_sys_t;
> diff --git a/modules/access/alsa.c b/modules/access/alsa.c
> index 1126d97c5d..99cb1dcbd8 100644
> --- a/modules/access/alsa.c
> +++ b/modules/access/alsa.c
> @@ -122,7 +122,7 @@ static void DumpDeviceStatus (vlc_object_t *obj, 
> snd_pcm_t *pcm)
>  #define DumpDeviceStatus(o, p) DumpDeviceStatus(VLC_OBJECT(o), p)
>  
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      snd_pcm_t *pcm;
>      es_out_id_t *es;
> @@ -132,7 +132,7 @@ struct demux_sys_t
>      mtime_t caching;
>      snd_pcm_uframes_t period_size;
>      unsigned rate;
> -};
> +} demux_sys_t;
>  
>  static void Poll (snd_pcm_t *pcm, int canc)
>  {
> diff --git a/modules/access/bluray.c b/modules/access/bluray.c
> index 50ff17d395..2ee3617adf 100644
> --- a/modules/access/bluray.c
> +++ b/modules/access/bluray.c
> @@ -145,7 +145,7 @@ typedef struct bluray_overlay_t
>      struct subpicture_updater_sys_t *p_updater;
>  } bluray_overlay_t;
>  
> -struct  demux_sys_t
> +typedef struct
>  {
>      BLURAY              *bluray;
>  
> @@ -200,7 +200,7 @@ struct  demux_sys_t
>  
>      /* Used to store bluray disc path */
>      char                *psz_bd_path;
> -};
> +} demux_sys_t;
>  
>  struct subpicture_updater_sys_t
>  {
> diff --git a/modules/access/cdda.c b/modules/access/cdda.c
> index 26bd2aa081..266b801d78 100644
> --- a/modules/access/cdda.c
> +++ b/modules/access/cdda.c
> @@ -115,7 +115,7 @@ static vcddev_t *DiscOpen(vlc_object_t *obj, const 
> char *location,
>  /* how many blocks Demux() will read in each iteration */
>  #define CDDA_BLOCKS_ONCE 20
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      vcddev_t    *vcddev;                            /* vcd device descriptor */
>      es_out_id_t *es;
> @@ -124,7 +124,7 @@ struct demux_sys_t
>      unsigned start; /**< Track first sector */
>      unsigned length; /**< Track total sectors */
>      unsigned position; /**< Current offset within track sectors */
> -};
> +} demux_sys_t;
>  
>  static int Demux(demux_t *demux)
>  {
> diff --git a/modules/access/dc1394.c b/modules/access/dc1394.c
> index adec9ac313..f3e381f4a4 100644
> --- a/modules/access/dc1394.c
> +++ b/modules/access/dc1394.c
> @@ -54,7 +54,7 @@ vlc_module_begin()
>      set_callbacks( Open, Close )
>  vlc_module_end()
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      /* camera info */
>      dc1394_t            *p_dccontext;
> @@ -77,7 +77,7 @@ struct demux_sys_t
>      unsigned int        focus;
>      es_out_id_t         *p_es_video;
>      dc1394video_frame_t *frame;
> -};
> +} demux_sys_t;
>  
>  /
> *****************************************************************************
>   * Local prototypes
> diff --git a/modules/access/dcp/dcp.cpp b/modules/access/dcp/dcp.cpp
> index 6867c94354..b420143d45 100644
> --- a/modules/access/dcp/dcp.cpp
> +++ b/modules/access/dcp/dcp.cpp
> @@ -120,6 +120,7 @@ struct audioReader_t
>      The classes for handling these essence types are defined in 
> AS_DCP.h and are different for each essence type, respectively. The 
> demux_sys_t structure contains members for handling each of these 
> essence types.
>  */
>  
> +namespace { // for ODR
>  class demux_sys_t
>  {
>   public:
> @@ -214,6 +215,7 @@ class demux_sys_t
>          delete p_dcp;
>      }
>  };
> +} // namespace
>  
>  /*TODO: basic correlation between SMPTE S428-3/S429-2
>   * Real sound is more complex with case of left/right surround, ...
> diff --git a/modules/access/decklink.cpp b/modules/access/decklink.cpp
> index eb5369eea2..6cc74e3e81 100644
> --- a/modules/access/decklink.cpp
> +++ b/modules/access/decklink.cpp
> @@ -129,6 +129,7 @@ static int Control(demux_t *, int, va_list);
>  
>  class DeckLinkCaptureDelegate;
>  
> +namespace { // for ODR
>  struct demux_sys_t
>  {
>      IDeckLink *card;
> @@ -155,6 +156,7 @@ struct demux_sys_t
>  
>      bool tenbits;
>  };
> +} // namespace
>  
>  static const char *GetFieldDominance(BMDFieldDominance dom, uint32_t *flags)
>  {
> diff --git a/modules/access/dvdnav.c b/modules/access/dvdnav.c
> index 1be6762199..0386102772 100644
> --- a/modules/access/dvdnav.c
> +++ b/modules/access/dvdnav.c
> @@ -120,7 +120,7 @@ vlc_module_end ()
>  /*****************************************************************************
>   * Local prototypes
>   *****************************************************************************/
> -struct demux_sys_t
> +typedef struct
>  {
>      dvdnav_t    *dvdnav;
>  
> @@ -165,7 +165,7 @@ struct demux_sys_t
>      mtime_t     i_pgc_length;
>      int         i_vobu_index;
>      int         i_vobu_flush;
> -};
> +} demux_sys_t;
>  
>  static int Control( demux_t *, int, va_list );
>  static int Demux( demux_t * );
> diff --git a/modules/access/dvdread.c b/modules/access/dvdread.c
> index 44ae8b60df..89ecfc8906 100644
> --- a/modules/access/dvdread.c
> +++ b/modules/access/dvdread.c
> @@ -92,7 +92,7 @@ vlc_module_end ()
>   * Local prototypes
>   *****************************************************************************/
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      /* DVDRead state */
>      dvd_reader_t *p_dvdread;
> @@ -145,7 +145,7 @@ struct demux_sys_t
>  
>      /* SPU */
>      uint32_t clut[16];
> -};
> +} demux_sys_t;
>  
>  static int Control   ( demux_t *, int, va_list );
>  static int Demux     ( demux_t * );
> diff --git a/modules/access/idummy.c b/modules/access/idummy.c
> index f95e68634f..b0e82166c5 100644
> --- a/modules/access/idummy.c
> +++ b/modules/access/idummy.c
> @@ -60,11 +60,11 @@ static int DemuxHold( demux_t *demux )
>      return 1;
>  }
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      mtime_t end;
>      mtime_t length;
> -};
> +} demux_sys_t;
>  
>  static int DemuxPause( demux_t *demux )
>  {
> diff --git a/modules/access/imem.c b/modules/access/imem.c
> index 008e0ebde2..80b26a41d8 100644
> --- a/modules/access/imem.c
> +++ b/modules/access/imem.c
> @@ -495,7 +495,7 @@ static int OpenDemux(vlc_object_t *object)
>      /* */
>      demux->pf_control = ControlDemux;
>      demux->pf_demux   = Demux;
> -    demux->p_sys      = (demux_sys_t*)sys;
> +    demux->p_sys      = sys;
>  
>      return VLC_SUCCESS;
>  }
> diff --git a/modules/access/jack.c b/modules/access/jack.c
> index d986dc14a0..ac166ea7bb 100644
> --- a/modules/access/jack.c
> +++ b/modules/access/jack.c
> @@ -83,7 +83,7 @@ vlc_module_end ()
>   * Local prototypes
>   *****************************************************************************/
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      /* Audio properties */
>      vlc_fourcc_t                i_acodec_raw;
> @@ -106,7 +106,7 @@ struct demux_sys_t
>      char                        *psz_ports;
>      char                        **pp_jack_port_table;
>      char                        i_match_ports;
> -};
> +} demux_sys_t;
>  
>  static int Demux( demux_t * );
>  static int Control( demux_t *p_demux, int i_query, va_list args );
> diff --git a/modules/access/linsys/linsys_hdsdi.c b/modules/access/
> linsys/linsys_hdsdi.c
> index 01f195a410..7b0aa17a94 100644
> --- a/modules/access/linsys/linsys_hdsdi.c
> +++ b/modules/access/linsys/linsys_hdsdi.c
> @@ -121,7 +121,7 @@ typedef struct hdsdi_audio_t
>      es_out_id_t *p_es;
>  } hdsdi_audio_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      /* video device reader */
>      int          i_vfd;
> @@ -157,7 +157,7 @@ struct demux_sys_t
>  
>      pthread_t thread;
>      int evfd;
> -};
> +} demux_sys_t;
>  
>  static int Control( demux_t *, int, va_list );
>  static void *Demux( void * );
> diff --git a/modules/access/linsys/linsys_sdi.c b/modules/access/linsys/
> linsys_sdi.c
> index c9efc415ea..5921b19af2 100644
> --- a/modules/access/linsys/linsys_sdi.c
> +++ b/modules/access/linsys/linsys_sdi.c
> @@ -146,7 +146,7 @@ enum {
>      STATE_SYNC,
>  };
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      /* device reader */
>      int              i_fd;
> @@ -186,7 +186,7 @@ struct demux_sys_t
>      es_out_id_t      *p_es_video;
>      sdi_audio_t      p_audios[MAX_AUDIOS];
>      es_out_id_t      *p_es_telx;
> -};
> +} demux_sys_t;
>  
>  static int Control( demux_t *, int, va_list );
>  static int DemuxControl( demux_t *, int, va_list );
> diff --git a/modules/access/live555.cpp b/modules/access/live555.cpp
> index cdc3741f35..1164c376bd 100644
> --- a/modules/access/live555.cpp
> +++ b/modules/access/live555.cpp
> @@ -194,6 +194,7 @@ class RTSPClientVlc;
>  #define CAP_SUBSESSION_PAUSE    (1 << 3)
>  #define CAPS_DEFAULT            CAP_RATE_CONTROL
>  
> +namespace { // for ODR
>  struct demux_sys_t
>  {
>      char            *p_sdp;    /* XXX mallocated */
> @@ -242,7 +243,7 @@ struct demux_sys_t
>  
>      float            f_seek_request;/* In case we receive a seek 
> request while paused*/
>  };
> -
> +} // namespace
>  
>  class RTSPClientVlc : public RTSPClient
>  {
> diff --git a/modules/access/oss.c b/modules/access/oss.c
> index aa03f6e4aa..44b8b17c17 100644
> --- a/modules/access/oss.c
> +++ b/modules/access/oss.c
> @@ -108,7 +108,7 @@ struct buffer_t
>      size_t  length;
>  };
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      const char *psz_device;  /* OSS device from MRL */
>  
> @@ -122,7 +122,7 @@ struct demux_sys_t
>      es_out_id_t *p_es;
>  
>      int64_t i_next_demux_date; /* Used to handle oss:// as input-slave 
> properly */
> -};
> +} demux_sys_t;
>  
>  static int FindMainDevice( demux_t *p_demux )
>  {
> diff --git a/modules/access/pulse.c b/modules/access/pulse.c
> index a5808ae387..f3ec93a498 100644
> --- a/modules/access/pulse.c
> +++ b/modules/access/pulse.c
> @@ -50,7 +50,7 @@ vlc_module_begin ()
>      set_callbacks (Open, Close)
>  vlc_module_end ()
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      pa_stream *stream; /**< PulseAudio playback stream object */
>      pa_context *context; /**< PulseAudio connection context */
> @@ -60,7 +60,7 @@ struct demux_sys_t
>      bool discontinuity; /**< The next block will not follow the last one */
>      unsigned framesize; /**< Byte size of a sample */
>      mtime_t caching; /**< Caching value */
> -};
> +} demux_sys_t;
>  
>  /* Stream helpers */
>  static void stream_state_cb(pa_stream *s, void *userdata)
> diff --git a/modules/access/rdp.c b/modules/access/rdp.c
> index 8ecceb60a3..7ca36c7a8e 100644
> --- a/modules/access/rdp.c
> +++ b/modules/access/rdp.c
> @@ -103,7 +103,7 @@ vlc_module_end()
>  
>  #define RDP_MAX_FD 32
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      vlc_thread_t thread;
>      freerdp *p_instance;
> @@ -121,7 +121,7 @@ struct demux_sys_t
>      int i_port;
>      /* cancelability */
>      int i_cancel_state;
> -};
> +} demux_sys_t;
>  
>  /* context */
>  
> diff --git a/modules/access/rtp/rtp.h b/modules/access/rtp/rtp.h
> index ccb176617d..50f3f50e49 100644
> --- a/modules/access/rtp/rtp.h
> +++ b/modules/access/rtp/rtp.h
> @@ -62,7 +62,7 @@ void *rtp_dgram_thread (void *data);
>  void *rtp_stream_thread (void *data);
>  
>  /* Global data */
> -struct demux_sys_t
> +typedef struct
>  {
>      rtp_session_t *session;
>      struct vlc_demux_chained_t *chained_demux;
> @@ -79,5 +79,5 @@ struct demux_sys_t
>      uint8_t       max_src; /**< Max simultaneous RTP sources */
>      bool          thread_ready;
>      bool          autodetect; /**< Payload type autodetection pending */
> -};
> +} demux_sys_t;
>  
> diff --git a/modules/access/screen/screen.h b/modules/access/screen/screen.h
> index cd5fe3b191..e0713d2d04 100644
> --- a/modules/access/screen/screen.h
> +++ b/modules/access/screen/screen.h
> @@ -39,7 +39,7 @@
>  
>  typedef struct screen_data_t screen_data_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_format_t fmt;
>      es_out_id_t *es;
> @@ -73,7 +73,7 @@ struct demux_sys_t
>  #endif
>  
>      screen_data_t *p_data;
> -};
> +} demux_sys_t;
>  
>  int      screen_InitCapture ( demux_t * );
>  int      screen_CloseCapture( demux_t * );
> diff --git a/modules/access/screen/wayland.c b/modules/access/screen/wayland.c
> index c0505fbc52..7ba84443f8 100644
> --- a/modules/access/screen/wayland.c
> +++ b/modules/access/screen/wayland.c
> @@ -41,7 +41,7 @@
>  #include <vlc_fs.h>
>  #include <vlc_plugin.h>
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      struct wl_display *display;
>      struct wl_output *output;
> @@ -62,7 +62,7 @@ struct demux_sys_t
>      mtime_t start;
>  
>      vlc_thread_t thread;
> -};
> +} demux_sys_t;
>  
>  static bool DisplayError(vlc_object_t *obj, struct wl_display *display)
>  {
> diff --git a/modules/access/screen/xcb.c b/modules/access/screen/xcb.c
> index 1d7b16325f..47203d8d31 100644
> --- a/modules/access/screen/xcb.c
> +++ b/modules/access/screen/xcb.c
> @@ -101,7 +101,7 @@ static int Control (demux_t *, int, va_list);
>  static es_out_id_t *InitES (demux_t *, uint_fast16_t, uint_fast16_t,
>                              uint_fast8_t, uint8_t *);
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      /* All owned by timer thread while timer is armed: */
>      xcb_connection_t *conn; /**< XCB connection */
> @@ -118,7 +118,7 @@ struct demux_sys_t
>      uint16_t          cur_w, cur_h; /**< Actual capture pixel dimensions */
>      /* Timer does not use this, only input thread: */
>      vlc_timer_t       timer;
> -};
> +} demux_sys_t;
>  
>  /** Checks MIT-SHM shared memory support */
>  static bool CheckSHM (xcb_connection_t *conn)
> diff --git a/modules/access/shm.c b/modules/access/shm.c
> index 740fc67098..1d19266204 100644
> --- a/modules/access/shm.c
> +++ b/modules/access/shm.c
> @@ -110,6 +110,8 @@ vlc_module_begin ()
>      add_shortcut ("shm")
>  vlc_module_end ()
>  
> +typedef struct demux_sys_t demux_sys_t;
> +
>  static int Control (demux_t *, int, va_list);
>  static void DemuxFile (void *);
>  static void CloseFile (demux_sys_t *);
> diff --git a/modules/access/timecode.c b/modules/access/timecode.c
> index 97787468df..a319b75d2c 100644
> --- a/modules/access/timecode.c
> +++ b/modules/access/timecode.c
> @@ -51,12 +51,12 @@ vlc_module_begin ()
>          change_safe ()
>  vlc_module_end ()
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_out_id_t *es;
>      date_t date;
>      mtime_t next_time;
> -};
> +} demux_sys_t;
>  
>  static int DemuxOnce (demux_t *demux, bool master)
>  {
> diff --git a/modules/access/v4l2/demux.c b/modules/access/v4l2/demux.c
> index c30b16373f..99ec83f624 100644
> --- a/modules/access/v4l2/demux.c
> +++ b/modules/access/v4l2/demux.c
> @@ -42,7 +42,7 @@
>  
>  #include "v4l2.h"
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      int fd;
>      vlc_thread_t thread;
> @@ -62,7 +62,7 @@ struct demux_sys_t
>  #ifdef ZVBI_COMPILED
>      vlc_v4l2_vbi_t *vbi;
>  #endif
> -};
> +} demux_sys_t;
>  
>  static void *UserPtrThread (void *);
>  static void *MmapThread (void *);
> diff --git a/modules/access/v4l2/radio.c b/modules/access/v4l2/radio.c
> index c91ee2a512..bc458f71b9 100644
> --- a/modules/access/v4l2/radio.c
> +++ b/modules/access/v4l2/radio.c
> @@ -30,12 +30,12 @@
>  
>  #include "v4l2.h"
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      int fd;
>      vlc_v4l2_ctrl_t *controls;
>      mtime_t start;
> -};
> +} demux_sys_t;
>  
>  static int RadioControl (demux_t *demux, int query, va_list args)
>  {
> diff --git a/modules/access/vnc.c b/modules/access/vnc.c
> index 8f3ed54f20..7716071b1f 100644
> --- a/modules/access/vnc.c
> +++ b/modules/access/vnc.c
> @@ -109,7 +109,7 @@ vlc_module_begin()
>      set_callbacks( Open, Close )
>  vlc_module_end()
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      vlc_thread_t thread;
>      int i_cancel_state;
> @@ -123,7 +123,7 @@ struct demux_sys_t
>      mtime_t i_starttime;
>  
>      es_out_id_t *es;
> -};
> +} demux_sys_t;
>  
>  static void *DemuxThread( void *p_data );
>  
> diff --git a/modules/access/wasapi.c b/modules/access/wasapi.c
> index 58ee86c959..0aa6cb6d52 100644
> --- a/modules/access/wasapi.c
> +++ b/modules/access/wasapi.c
> @@ -267,7 +267,7 @@ static es_out_id_t *CreateES(demux_t *demux, 
> IAudioClient *client, bool loop,
>      return es_out_Add(demux->out, &fmt);
>  }
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      IAudioClient *client;
>      es_out_id_t *es;
> @@ -281,7 +281,7 @@ struct demux_sys_t
>          HANDLE thread;
>          HANDLE ready;
>      };
> -};
> +} demux_sys_t;
>  
>  static unsigned __stdcall Thread(void *data)
>  {
> diff --git a/modules/demux/adaptive/adaptive.cpp b/modules/demux/
> adaptive/adaptive.cpp
> index 3cab4dd13b..0c40d55b28 100644
> --- a/modules/demux/adaptive/adaptive.cpp
> +++ b/modules/demux/adaptive/adaptive.cpp
> @@ -239,7 +239,7 @@ static int Open(vlc_object_t *p_obj)
>          return VLC_EGENERIC;
>      }
>  
> -    p_demux->p_sys         = reinterpret_cast<demux_sys_t *>(p_manager);
> +    p_demux->p_sys         = p_manager;
>      p_demux->pf_demux      = p_manager->demux_callback;
>      p_demux->pf_control    = p_manager->control_callback;
>  
> diff --git a/modules/demux/aiff.c b/modules/demux/aiff.c
> index aa460b77c8..d23b5e150a 100644
> --- a/modules/demux/aiff.c
> +++ b/modules/demux/aiff.c
> @@ -57,7 +57,7 @@ vlc_module_end ()
>   * Local prototypes
>   *****************************************************************************/
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_format_t  fmt;
>      es_out_id_t *es;
> @@ -74,7 +74,7 @@ struct demux_sys_t
>      int         i_ssnd_fsize;
>  
>      int64_t     i_time;
> -};
> +} demux_sys_t;
>  
>  static int Demux  ( demux_t *p_demux );
>  static int Control( demux_t *p_demux, int i_query, va_list args );
> diff --git a/modules/demux/asf/asf.c b/modules/demux/asf/asf.c
> index d17fb5e2db..db8809acb8 100644
> --- a/modules/demux/asf/asf.c
> +++ b/modules/demux/asf/asf.c
> @@ -107,7 +107,7 @@ typedef struct
>  
>  } asf_track_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      mtime_t             i_time;     /* s */
>      mtime_t             i_sendtime;
> @@ -136,7 +136,7 @@ struct demux_sys_t
>      asf_packet_sys_t    packet_sys;
>  
>      vlc_meta_t          *meta;
> -};
> +} demux_sys_t;
>  
>  static int      DemuxInit( demux_t * );
>  static void     DemuxEnd( demux_t * );
> diff --git a/modules/demux/au.c b/modules/demux/au.c
> index 0cda4bf73e..938921707f 100644
> --- a/modules/demux/au.c
> +++ b/modules/demux/au.c
> @@ -81,7 +81,7 @@ enum AuCat_e
>      AU_CAT_ADPCM    = 2
>  };
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_format_t     fmt;
>      es_out_id_t     *es;
> @@ -92,7 +92,7 @@ struct demux_sys_t
>      mtime_t         i_frame_length;
>  
>      uint32_t        i_header_size;
> -};
> +} demux_sys_t;
>  
>  static int Demux( demux_t * );
>  static int Control ( demux_t *, int i_query, va_list args );
> diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c
> index 04dbb810f6..756962c525 100644
> --- a/modules/demux/avformat/demux.c
> +++ b/modules/demux/avformat/demux.c
> @@ -61,7 +61,7 @@ struct avformat_track_s
>  /*****************************************************************************
>   * demux_sys_t: demux descriptor
>   *****************************************************************************/
> -struct demux_sys_t
> +typedef struct
>  {
>      AVInputFormat  *fmt;
>      AVFormatContext *ic;
> @@ -80,7 +80,7 @@ struct demux_sys_t
>      input_title_t *p_title;
>      int i_seekpoint;
>      unsigned i_update;
> -};
> +} demux_sys_t;
>  
>  #define AVFORMAT_IOBUFFER_SIZE 32768  /* FIXME */
>  
> diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
> index 575bc96826..23cc585c0d 100644
> --- a/modules/demux/avi/avi.c
> +++ b/modules/demux/avi/avi.c
> @@ -168,7 +168,7 @@ typedef struct
>  
>  } avi_track_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      mtime_t i_time;
>      mtime_t i_length;
> @@ -195,7 +195,7 @@ struct demux_sys_t
>  
>      unsigned int       i_attachment;
>      input_attachment_t **attachment;
> -};
> +} demux_sys_t;
>  
>  #define __EVEN(x) (((x) & 1) ? (x) + 1 : (x))
>  
> diff --git a/modules/demux/caf.c b/modules/demux/caf.c
> index 8273efcca2..5c70667b51 100644
> --- a/modules/demux/caf.c
> +++ b/modules/demux/caf.c
> @@ -79,7 +79,7 @@ typedef struct packet_table_t
>      uint64_t i_descriptions_start;
>  } packet_table_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_format_t  fmt;
>      es_out_id_t *es;
> @@ -90,7 +90,7 @@ struct demux_sys_t
>  
>      frame_span_t position;
>      packet_table_t packet_table;
> -};
> +} demux_sys_t;
>  
>  /*
>   We use this value to indicate that the data section extends until the 
> end of the file.
> diff --git a/modules/demux/cdg.c b/modules/demux/cdg.c
> index 5f958bee68..afd57224eb 100644
> --- a/modules/demux/cdg.c
> +++ b/modules/demux/cdg.c
> @@ -54,13 +54,13 @@ vlc_module_end ()
>  static int Demux  ( demux_t * );
>  static int Control( demux_t *, int i_query, va_list args );
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_format_t     fmt;
>      es_out_id_t     *p_es;
>  
>      date_t          pts;
> -};
> +} demux_sys_t;
>  
>  #define CDG_FRAME_SIZE (96)
>  #define CDG_FRAME_RATE (75)
> diff --git a/modules/demux/flac.c b/modules/demux/flac.c
> index 559bede0ae..c5900c26ed 100644
> --- a/modules/demux/flac.c
> +++ b/modules/demux/flac.c
> @@ -70,7 +70,7 @@ typedef struct
>      uint64_t i_byte_offset;
>  } flac_seekpoint_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      bool  b_start;
>      int   i_next_block_flags;
> @@ -102,7 +102,7 @@ struct demux_sys_t
>      input_attachment_t **attachments;
>      int                i_cover_idx;
>      int                i_cover_score;
> -};
> +} demux_sys_t;
>  
>  #define FLAC_PACKET_SIZE 16384
>  #define FLAC_MAX_PREROLL      (CLOCK_FREQ * 4)
> diff --git a/modules/demux/gme.c b/modules/demux/gme.c
> index 6154ed9581..e0d8788da3 100644
> --- a/modules/demux/gme.c
> +++ b/modules/demux/gme.c
> @@ -49,7 +49,7 @@ vlc_module_end ()
>  
>  #define RATE 48000
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      Music_Emu   *emu;
>      unsigned     track_id;
> @@ -60,7 +60,7 @@ struct demux_sys_t
>      input_title_t **titlev;
>      unsigned        titlec;
>      bool            title_changed;
> -};
> +} demux_sys_t;
>  
>  
>  static int Demux (demux_t *);
> diff --git a/modules/demux/image.c b/modules/demux/image.c
> index 7b7604156f..4ea027b9d1 100644
> --- a/modules/demux/image.c
> +++ b/modules/demux/image.c
> @@ -98,7 +98,7 @@ vlc_module_end()
>  /*****************************************************************************
>   * Local prototypes
>   *****************************************************************************/
> -struct demux_sys_t
> +typedef struct
>  {
>      block_t     *data;
>      es_out_id_t *es;
> @@ -107,7 +107,7 @@ struct demux_sys_t
>      mtime_t     pts_origin;
>      mtime_t     pts_next;
>      date_t        pts;
> -};
> +} demux_sys_t;
>  
>  static block_t *Load(demux_t *demux)
>  {
> diff --git a/modules/demux/mjpeg.c b/modules/demux/mjpeg.c
> index 2d7dde7c3c..cb7096356e 100644
> --- a/modules/demux/mjpeg.c
> +++ b/modules/demux/mjpeg.c
> @@ -65,7 +65,7 @@ static int MimeDemux( demux_t * );
>  static int MjpgDemux( demux_t * );
>  static int Control( demux_t *, int i_query, va_list args );
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_format_t     fmt;
>      es_out_id_t     *p_es;
> @@ -79,7 +79,7 @@ struct demux_sys_t
>      const uint8_t   *p_peek;
>      int             i_data_peeked;
>      int             i_level;
> -};
> +} demux_sys_t;
>  
>  /
> *****************************************************************************
>   * Peek: Helper function to peek data with incremental size.
> diff --git a/modules/demux/mkv/Ebml_parser.cpp b/modules/demux/mkv/
> Ebml_parser.cpp
> index 4a9325bf23..ab7ea128b7 100644
> --- a/modules/demux/mkv/Ebml_parser.cpp
> +++ b/modules/demux/mkv/Ebml_parser.cpp
> @@ -26,6 +26,8 @@
>  #include "Ebml_parser.hpp"
>  #include "stream_io_callback.hpp"
>  
> +namespace mkv {
> +
>  /*****************************************************************************
>   * Ebml Stream parser
>   *****************************************************************************/
> @@ -351,3 +353,4 @@ bool EbmlParser::IsTopPresent( EbmlElement *el ) const
>      return false;
>  }
>  
> +} // namespace
> diff --git a/modules/demux/mkv/Ebml_parser.hpp b/modules/demux/mkv/
> Ebml_parser.hpp
> index ba0ac712fe..82929d64bc 100644
> --- a/modules/demux/mkv/Ebml_parser.hpp
> +++ b/modules/demux/mkv/Ebml_parser.hpp
> @@ -27,6 +27,8 @@
>  
>  #include "mkv.hpp"
>  
> +namespace mkv {
> +
>  /*****************************************************************************
>   * Ebml Stream parser
>   *****************************************************************************/
> @@ -77,4 +79,6 @@ public:
>      }
>  };
>  
> +} // namespace
> +
>  #endif
> diff --git a/modules/demux/mkv/chapter_command.cpp b/modules/demux/mkv/
> chapter_command.cpp
> index cff2d56f9c..47479f554e 100644
> --- a/modules/demux/mkv/chapter_command.cpp
> +++ b/modules/demux/mkv/chapter_command.cpp
> @@ -23,8 +23,11 @@
>   
> *****************************************************************************/
>  
>  #include "chapter_command.hpp"
> +#include "demux.hpp"
>  #include <algorithm>
>  
> +namespace mkv {
> +
>  void chapter_codec_cmds_c::AddCommand( const KaxChapterProcessCommand & 
> command )
>  {
>      uint32 codec_time = uint32(-1);
> @@ -766,4 +769,4 @@ bool matroska_script_codec_c::Leave()
>      return f_result;
>  }
>  
> -
> +} // namespace
> diff --git a/modules/demux/mkv/chapter_command.hpp b/modules/demux/mkv/
> chapter_command.hpp
> index f206e35b4b..9fcaa5a12c 100644
> --- a/modules/demux/mkv/chapter_command.hpp
> +++ b/modules/demux/mkv/chapter_command.hpp
> @@ -27,6 +27,8 @@
>  
>  #include "mkv.hpp"
>  
> +namespace mkv {
> +
>  const int MATROSKA_CHAPTER_CODEC_NATIVE  = 0x00;
>  const int MATROSKA_CHAPTER_CODEC_DVD     = 0x01;
>  
> @@ -85,7 +87,7 @@ protected:
>  class dvd_command_interpretor_c
>  {
>  public:
> -    dvd_command_interpretor_c( demux_sys_t & demuxer )
> +    dvd_command_interpretor_c( mkv::demux_sys_t & demuxer )
>      :sys( demuxer )
>      {
>          memset( p_PRMs, 0, sizeof(p_PRMs) );
> @@ -188,7 +190,7 @@ protected:
>      }
>  
>      uint16       p_PRMs[256];
> -    demux_sys_t  & sys;
> +    mkv::demux_sys_t  & sys;
>  
>      // DVD command IDs
>  
> @@ -244,9 +246,6 @@ protected:
>      static bool MatchCellNumber   ( const chapter_codec_cmds_c &data, 
> const void *p_cookie, size_t i_cookie_size );
>  };
>  
> -
> -#include "demux.hpp"
> -
>  class dvd_chapter_codec_c : public chapter_codec_cmds_c
>  {
>  public:
> @@ -296,5 +295,6 @@ protected:
>      matroska_script_interpretor_c interpretor;
>  };
>  
> +} // namespace
>  
>  #endif
> diff --git a/modules/demux/mkv/chapters.cpp b/modules/demux/mkv/chapters.cpp
> index 1242908941..7922975b35 100644
> --- a/modules/demux/mkv/chapters.cpp
> +++ b/modules/demux/mkv/chapters.cpp
> @@ -29,6 +29,8 @@
>  #include <functional>
>  #include <algorithm>
>  
> +namespace mkv {
> +
>  chapter_item_c::~chapter_item_c()
>  {
>      delete p_segment_uid;
> @@ -233,3 +235,4 @@ std::string chapter_edition_c::GetMainName() const
>      return "";
>  }
>  
> +} // namespace
> diff --git a/modules/demux/mkv/chapters.hpp b/modules/demux/mkv/chapters.hpp
> index a069b1fdea..45850ba4ec 100644
> --- a/modules/demux/mkv/chapters.hpp
> +++ b/modules/demux/mkv/chapters.hpp
> @@ -29,6 +29,8 @@
>  
>  #include "mkv.hpp"
>  
> +namespace mkv {
> +
>  class chapter_translation_c
>  {
>  public:
> @@ -105,4 +107,6 @@ public:
>      bool                        b_hidden;
>  };
>  
> +} // namespace
> +
>  #endif
> diff --git a/modules/demux/mkv/demux.cpp b/modules/demux/mkv/demux.cpp
> index fc6cab349e..63aa35326d 100644
> --- a/modules/demux/mkv/demux.cpp
> +++ b/modules/demux/mkv/demux.cpp
> @@ -29,6 +29,8 @@
>  
>  #include <vlc_actions.h>
>  
> +namespace mkv {
> +
>  event_thread_t::event_thread_t(demux_t *p_demux) : p_demux(p_demux)
>  {
>      vlc_mutex_init( &lock );
> @@ -812,3 +814,4 @@ virtual_chapter_c *demux_sys_t::FindChapter( int64_t 
> i_find_uid, virtual_segment
>      return p_result;
>  }
>  
> +} // namespace
> diff --git a/modules/demux/mkv/demux.hpp b/modules/demux/mkv/demux.hpp
> index c9cfe557c9..e968908c30 100644
> --- a/modules/demux/mkv/demux.hpp
> +++ b/modules/demux/mkv/demux.hpp
> @@ -30,6 +30,8 @@
>  #include "chapter_command.hpp"
>  #include "virtual_segment.hpp"
>  
> +namespace mkv {
> +
>  
> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>  #undef ATTRIBUTE_PACKED
>  #undef PRAGMA_PACK_BEGIN
> @@ -407,5 +409,6 @@ public:
>      event_thread_t *p_ev;
>  };
>  
> +} // namespace
>  
>  #endif
> diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/
> matroska_segment.cpp
> index 009e1fc3d2..b0d202347b 100644
> --- a/modules/demux/mkv/matroska_segment.cpp
> +++ b/modules/demux/mkv/matroska_segment.cpp
> @@ -32,6 +32,8 @@
>  #include <new>
>  #include <iterator>
>  
> +namespace mkv {
> +
>  matroska_segment_c::matroska_segment_c( demux_sys_t & demuxer, 
> EbmlStream & estream, KaxSegment *p_seg )
>      :segment(p_seg)
>      ,es(estream)
> @@ -1411,3 +1413,5 @@ int matroska_segment_c::BlockGet( KaxBlock * & 
> pp_block, KaxSimpleBlock * & pp_s
>          }
>      }
>  }
> +
> +} // namespace
> diff --git a/modules/demux/mkv/matroska_segment.hpp b/modules/demux/mkv/
> matroska_segment.hpp
> index 39320bda3b..d3626e42aa 100644
> --- a/modules/demux/mkv/matroska_segment.hpp
> +++ b/modules/demux/mkv/matroska_segment.hpp
> @@ -25,6 +25,7 @@
>  #ifndef VLC_MKV_MATROSKA_SEGMENT_HPP_
>  #define VLC_MKV_MATROSKA_SEGMENT_HPP_
>  
> +#include "demux.hpp"
>  #include "mkv.hpp"
>  #include "matroska_segment_seeker.hpp"
>  #include <vector>
> @@ -36,6 +37,8 @@
>  
>  #include "Ebml_parser.hpp"
>  
> +namespace mkv {
> +
>  class EbmlParser;
>  
>  class chapter_edition_c;
> @@ -176,5 +179,6 @@ private:
>      friend SegmentSeeker;
>  };
>  
> +} // namespace
>  
>  #endif
> diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/
> demux/mkv/matroska_segment_parse.cpp
> index 752bf58bb4..615e420ee6 100644
> --- a/modules/demux/mkv/matroska_segment_parse.cpp
> +++ b/modules/demux/mkv/matroska_segment_parse.cpp
> @@ -41,6 +41,8 @@ extern "C" {
>  #include <stdexcept>
>  #include <limits>
>  
> +namespace mkv {
> +
>  /* GetFourCC helper */
>  #define GetFOURCC( p )  __GetFOURCC( (uint8_t*)p )
>  static vlc_fourcc_t __GetFOURCC( uint8_t *p )
> @@ -2099,3 +2101,5 @@ bool matroska_segment_c::TrackInit( mkv_track_t * p_tk )
>  
>      return true;
>  }
> +
> +} // namespace
> diff --git a/modules/demux/mkv/matroska_segment_seeker.cpp b/modules/
> demux/mkv/matroska_segment_seeker.cpp
> index 8feecb902f..37835c6de3 100644
> --- a/modules/demux/mkv/matroska_segment_seeker.cpp
> +++ b/modules/demux/mkv/matroska_segment_seeker.cpp
> @@ -49,6 +49,8 @@ namespace {
>      template<class It> It next_( It it ) { return ++it; }
>  }
>  
> +namespace mkv {
> +
>  SegmentSeeker::cluster_positions_t::iterator
>  SegmentSeeker::add_cluster_position( fptr_t fpos )
>  {
> @@ -521,3 +523,4 @@ SegmentSeeker::mkv_jump_to( matroska_segment_c& ms, 
> fptr_t fpos )
>          ms.es.I_O().setFilePointer( fpos );
>  }
>  
> +} // namespace
> diff --git a/modules/demux/mkv/matroska_segment_seeker.hpp b/modules/
> demux/mkv/matroska_segment_seeker.hpp
> index e2e1579354..963d7f4c65 100644
> --- a/modules/demux/mkv/matroska_segment_seeker.hpp
> +++ b/modules/demux/mkv/matroska_segment_seeker.hpp
> @@ -31,6 +31,8 @@
>  #include <map>
>  #include <limits>
>  
> +namespace mkv {
> +
>  class matroska_segment_c;
>  
>  class SegmentSeeker
> @@ -125,4 +127,6 @@ class SegmentSeeker
>          cluster_map_t       _clusters;
>  };
>  
> +} // namespace
> +
>  #endif /* include-guard */
> diff --git a/modules/demux/mkv/mkv.cpp b/modules/demux/mkv/mkv.cpp
> index b1dc644f77..031e51d928 100644
> --- a/modules/demux/mkv/mkv.cpp
> +++ b/modules/demux/mkv/mkv.cpp
> @@ -41,14 +41,16 @@
>  /*****************************************************************************
>   * Module descriptor
>   *****************************************************************************/
> +namespace mkv {
>  static int  Open ( vlc_object_t * );
>  static void Close( vlc_object_t * );
> +} // namespace
>  
>  vlc_module_begin ()
>      set_shortname( "Matroska" )
>      set_description( N_("Matroska stream demuxer" ) )
>      set_capability( "demux", 50 )
> -    set_callbacks( Open, Close )
> +    set_callbacks( mkv::Open, mkv::Close )
>      set_category( CAT_INPUT )
>      set_subcategory( SUBCAT_INPUT_DEMUX )
>  
> @@ -79,6 +81,8 @@ vlc_module_begin ()
>      add_shortcut( "mka", "mkv" )
>  vlc_module_end ()
>  
> +namespace mkv {
> +
>  struct demux_sys_t;
>  
>  static int  Demux  ( demux_t * );
> @@ -900,3 +904,5 @@ bool matroska_stream_c::isUsed() const
>      }
>      return false;
>  }
> +
> +} // namespace
> diff --git a/modules/demux/mkv/mkv.hpp b/modules/demux/mkv/mkv.hpp
> index c4da69c4f8..fa09c33b87 100644
> --- a/modules/demux/mkv/mkv.hpp
> +++ b/modules/demux/mkv/mkv.hpp
> @@ -98,6 +98,8 @@
>  //# define MKV_DEBUG 0
>  #endif
>  
> +namespace mkv {
> +
>  #define MATROSKA_COMPRESSION_NONE  -1
>  #define MATROSKA_COMPRESSION_ZLIB   0
>  #define MATROSKA_COMPRESSION_BLIB   1
> @@ -236,5 +238,6 @@ class mkv_track_t
>          mtime_t i_codec_delay;
>  };
>  
> +} // namespace
>  
>  #endif /* _MKV_HPP_ */
> diff --git a/modules/demux/mkv/stream_io_callback.cpp b/modules/demux/
> mkv/stream_io_callback.cpp
> index 6a50745f13..bd1923e769 100644
> --- a/modules/demux/mkv/stream_io_callback.cpp
> +++ b/modules/demux/mkv/stream_io_callback.cpp
> @@ -27,6 +27,8 @@
>  #include "matroska_segment.hpp"
>  #include "demux.hpp"
>  
> +namespace mkv {
> +
>  /*****************************************************************************
>   * Stream managment
>   *****************************************************************************/
> @@ -116,3 +118,4 @@ uint64 vlc_stream_io_callback::toRead( void )
>      return static_cast<uint64>( i_size - vlc_stream_Tell( s ) );
>  }
>  
> +} // namespace
> diff --git a/modules/demux/mkv/stream_io_callback.hpp b/modules/demux/
> mkv/stream_io_callback.hpp
> index d2c72a4214..e7bc68cff2 100644
> --- a/modules/demux/mkv/stream_io_callback.hpp
> +++ b/modules/demux/mkv/stream_io_callback.hpp
> @@ -23,6 +23,8 @@
>   
> *****************************************************************************/
>  #include "mkv.hpp"
>  
> +namespace mkv {
> +
>  /*****************************************************************************
>   * Stream managment
>   *****************************************************************************/
> @@ -52,3 +54,4 @@ class vlc_stream_io_callback: public IOCallback
>      uint64           toRead          ( void );
>  };
>  
> +} // namespace
> diff --git a/modules/demux/mkv/util.cpp b/modules/demux/mkv/util.cpp
> index 3b25e00aee..00a87e31a3 100644
> --- a/modules/demux/mkv/util.cpp
> +++ b/modules/demux/mkv/util.cpp
> @@ -25,6 +25,8 @@
>  #include "util.hpp"
>  #include "demux.hpp"
>  
> +namespace mkv {
> +
>  /
> *****************************************************************************
>   * Local prototypes
>   
> *****************************************************************************/
> @@ -425,3 +427,5 @@ void MkvTree( demux_t & demuxer, int i_level, const 
> char *psz_format, ... )
>      MkvTree_va( demuxer, i_level, psz_format, args );
>      va_end( args );
>  }
> +
> +} // namespace
> diff --git a/modules/demux/mkv/util.hpp b/modules/demux/mkv/util.hpp
> index 780acaaf60..224ce0d9d9 100644
> --- a/modules/demux/mkv/util.hpp
> +++ b/modules/demux/mkv/util.hpp
> @@ -25,6 +25,8 @@
>  
>  #include "mkv.hpp"
>  
> +namespace mkv {
> +
>  #ifdef HAVE_ZLIB_H
>  int32_t zlib_decompress_extra( demux_t * p_demux, mkv_track_t & tk );
>  block_t *block_zlib_decompress( vlc_object_t *p_this, block_t 
> *p_in_block );
> @@ -94,3 +96,5 @@ block_t * packetize_wavpack( const mkv_track_t &, 
> uint8_t *, size_t);
>  /* helper functions to print the mkv parse tree */
>  void MkvTree_va( demux_t& demuxer, int i_level, const char* fmt, 
> va_list args);
>  void MkvTree( demux_t & demuxer, int i_level, const char 
> *psz_format, ... );
> +
> +} // namespace
> diff --git a/modules/demux/mkv/virtual_segment.cpp b/modules/demux/mkv/
> virtual_segment.cpp
> index adf8ea8e18..1da166434f 100644
> --- a/modules/demux/mkv/virtual_segment.cpp
> +++ b/modules/demux/mkv/virtual_segment.cpp
> @@ -27,6 +27,8 @@
>  
>  #include "demux.hpp"
>  
> +namespace mkv {
> +
>  /* FIXME move this, it's demux_sys_t::FindSegment */
>  matroska_segment_c * getSegmentbyUID( KaxSegmentUID * p_uid, 
> std::vector<matroska_segment_c*> & segments )
>  {
> @@ -754,3 +756,5 @@ void 
> virtual_segment_c::KeepTrackSelection( matroska_segment_c & old, 
> matroska_s
>          }
>      }
>  }
> +
> +} // namespace
> diff --git a/modules/demux/mkv/virtual_segment.hpp b/modules/demux/mkv/
> virtual_segment.hpp
> index 53d297f2cb..1035381fa5 100644
> --- a/modules/demux/mkv/virtual_segment.hpp
> +++ b/modules/demux/mkv/virtual_segment.hpp
> @@ -31,6 +31,8 @@
>  #include "matroska_segment.hpp"
>  #include "chapters.hpp"
>  
> +namespace mkv {
> +
>  /* virtual classes don't own anything but virtual elements so they 
> shouldn't have to delete anything */
>  
>  class virtual_chapter_c
> @@ -165,4 +167,6 @@ private:
>      void KeepTrackSelection( matroska_segment_c & old, 
> matroska_segment_c & next );
>  };
>  
> +} // namespace
> +
>  #endif
> diff --git a/modules/demux/mod.c b/modules/demux/mod.c
> index eb513aba3d..bf3b4138e3 100644
> --- a/modules/demux/mod.c
> +++ b/modules/demux/mod.c
> @@ -109,7 +109,7 @@ vlc_module_end ()
>   *****************************************************************************/
>  static vlc_mutex_t libmodplug_lock = VLC_STATIC_MUTEX;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_format_t  fmt;
>      es_out_id_t *es;
> @@ -120,7 +120,7 @@ struct demux_sys_t
>      int         i_data;
>      uint8_t     *p_data;
>      ModPlugFile *f;
> -};
> +} demux_sys_t;
>  
>  static int Demux  ( demux_t *p_demux );
>  static int Control( demux_t *p_demux, int i_query, va_list args );
> diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c
> index f1adc2de30..4b7cd8f244 100644
> --- a/modules/demux/mp4/mp4.c
> +++ b/modules/demux/mp4/mp4.c
> @@ -88,7 +88,7 @@ static int   DemuxRef( demux_t *p_demux )
> { (void)p_demux; return 0;}
>  static int   DemuxFrag( demux_t * );
>  static int   Control ( demux_t *, int, va_list );
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      MP4_Box_t    *p_root;      /* container for the whole file */
>  
> @@ -141,7 +141,7 @@ struct demux_sys_t
>      } hacks;
>  
>      mp4_fragments_index_t *p_fragsindex;
> -};
> +} demux_sys_t;
>  
>  #define DEMUX_INCREMENT (CLOCK_FREQ / 4) /* How far the pcr will go, 
> each round */
>  #define DEMUX_TRACK_MAX_PRELOAD (CLOCK_FREQ * 15) /* maximum 
> preloading, to deal with interleaving */
> diff --git a/modules/demux/mpc.c b/modules/demux/mpc.c
> index 1635b8874f..df6259cc47 100644
> --- a/modules/demux/mpc.c
> +++ b/modules/demux/mpc.c
> @@ -73,7 +73,7 @@ vlc_module_end ()
>  static int Demux  ( demux_t * );
>  static int Control( demux_t *, int, va_list );
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      /* */
>      es_out_id_t   *p_es;
> @@ -89,7 +89,7 @@ struct demux_sys_t
>  
>      /* */
>      int64_t        i_position;
> -};
> +} demux_sys_t;
>  
>  #ifndef HAVE_MPC_MPCDEC_H
>  static mpc_int32_t ReaderRead( void *p_private, void *dst, mpc_int32_t 
> i_size );
> diff --git a/modules/demux/mpeg/es.c b/modules/demux/mpeg/es.c
> index 4710a2894a..829fbf126d 100644
> --- a/modules/demux/mpeg/es.c
> +++ b/modules/demux/mpeg/es.c
> @@ -119,7 +119,7 @@ typedef struct
>      sync_table_ctx_t current;
>  } sync_table_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      codec_t codec;
>      vlc_fourcc_t i_original;
> @@ -161,7 +161,7 @@ struct demux_sys_t
>      float rgf_replay_peak[AUDIO_REPLAY_GAIN_MAX];
>  
>      sync_table_t mllt;
> -};
> +} demux_sys_t;
>  
>  static int MpgaProbe( demux_t *p_demux, int64_t *pi_offset );
>  static int MpgaInit( demux_t *p_demux );
> diff --git a/modules/demux/mpeg/h26x.c b/modules/demux/mpeg/h26x.c
> index 3072551a5b..6c1c45951c 100644
> --- a/modules/demux/mpeg/h26x.c
> +++ b/modules/demux/mpeg/h26x.c
> @@ -73,7 +73,7 @@ vlc_module_end ()
>  /*****************************************************************************
>   * Local prototypes
>   *****************************************************************************/
> -struct demux_sys_t
> +typedef struct
>  {
>      es_out_id_t *p_es;
>  
> @@ -82,7 +82,7 @@ struct demux_sys_t
>      unsigned    frame_rate_den;
>  
>      decoder_t *p_packetizer;
> -};
> +} demux_sys_t;
>  
>  static int Demux( demux_t * );
>  static int Control( demux_t *, int, va_list );
> diff --git a/modules/demux/mpeg/mpgv.c b/modules/demux/mpeg/mpgv.c
> index 47be270dbe..3fc7ee724b 100644
> --- a/modules/demux/mpeg/mpgv.c
> +++ b/modules/demux/mpeg/mpgv.c
> @@ -52,14 +52,14 @@ vlc_module_end ()
>  /*****************************************************************************
>   * Local prototypes
>   *****************************************************************************/
> -struct demux_sys_t
> +typedef struct
>  {
>      bool  b_start;
>  
>      es_out_id_t *p_es;
>  
>      decoder_t *p_packetizer;
> -};
> +} demux_sys_t;
>  
>  static int Demux( demux_t * );
>  static int Control( demux_t *, int, va_list );
> diff --git a/modules/demux/mpeg/ps.c b/modules/demux/mpeg/ps.c
> index e4ad557993..fc8b305556 100644
> --- a/modules/demux/mpeg/ps.c
> +++ b/modules/demux/mpeg/ps.c
> @@ -82,7 +82,7 @@ vlc_module_end ()
>   * Local prototypes
>   *****************************************************************************/
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      ps_psm_t    psm;
>      ps_track_t  tk[PS_TK_COUNT];
> @@ -114,7 +114,7 @@ struct demux_sys_t
>      int         current_title;
>      int         current_seekpoint;
>      unsigned    updates;
> -};
> +} demux_sys_t;
>  
>  static int Demux  ( demux_t *p_demux );
>  static int Control( demux_t *p_demux, int i_query, va_list args );
> diff --git a/modules/demux/mpeg/ts_pid.h b/modules/demux/mpeg/ts_pid.h
> index c61256ae09..d727adf2e3 100644
> --- a/modules/demux/mpeg/ts_pid.h
> +++ b/modules/demux/mpeg/ts_pid.h
> @@ -26,6 +26,8 @@
>  
>  #include "ts_streams.h"
>  
> +typedef struct demux_sys_t demux_sys_t;
> +
>  typedef enum
>  {
>      TYPE_FREE = 0,
> diff --git a/modules/demux/nsv.c b/modules/demux/nsv.c
> index ebb9097d20..a3d61de398 100644
> --- a/modules/demux/nsv.c
> +++ b/modules/demux/nsv.c
> @@ -58,7 +58,7 @@ vlc_module_end ()
>   * Local prototypes
>   *****************************************************************************/
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_format_t  fmt_audio;
>      es_out_id_t *p_audio;
> @@ -74,7 +74,7 @@ struct demux_sys_t
>      int64_t     i_pcr_inc;
>  
>      bool b_start_record;
> -};
> +} demux_sys_t;
>  
>  static int Demux  ( demux_t *p_demux );
>  static int Control( demux_t *p_demux, int i_query, va_list args );
> diff --git a/modules/demux/nuv.c b/modules/demux/nuv.c
> index 40f7b4b60a..a14f91a91f 100644
> --- a/modules/demux/nuv.c
> +++ b/modules/demux/nuv.c
> @@ -170,7 +170,7 @@ typedef struct
>  
>  } extended_header_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      header_t          hdr;
>      extended_header_t exh;
> @@ -192,7 +192,7 @@ struct demux_sys_t
>      int64_t i_total_length;
>      /* first frame position (used for calculating size without seektable) */
>      int i_first_frame_offset;
> -};
> +} demux_sys_t;
>  
>  static int HeaderLoad( demux_t *, header_t *h );
>  static int FrameHeaderLoad( demux_t *, frame_header_t *h );
> diff --git a/modules/demux/ogg.h b/modules/demux/ogg.h
> index bed61065a2..4b7d6d256c 100644
> --- a/modules/demux/ogg.h
> +++ b/modules/demux/ogg.h
> @@ -169,7 +169,7 @@ struct ogg_skeleton_t
>      int64_t        i_indexlastnum;
>  };
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      ogg_sync_state oy;        /* sync and verify incoming physical bitstream */
>  
> @@ -236,7 +236,7 @@ struct demux_sys_t
>  
>      bool b_slave;
>  
> -};
> +} demux_sys_t;
>  
>  
>  unsigned const char * Read7BitsVariableLE( unsigned const char *,
> diff --git a/modules/demux/playlist/sgimb.c b/modules/demux/playlist/sgimb.c
> index af4b3fe832..4153f41944 100644
> --- a/modules/demux/playlist/sgimb.c
> +++ b/modules/demux/playlist/sgimb.c
> @@ -111,7 +111,7 @@
>   *****************************************************************************/
>  #define MAX_LINE 1024
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      char        *psz_uri;       /* Stream= or sgiQTFileBegin rtsp link */
>      char        *psz_server;    /* sgiNameServerHost= */
> @@ -127,7 +127,7 @@ struct demux_sys_t
>      int         i_sid;          /* sgiSid= */
>      bool  b_concert;      /* DeliveryService=cds */
>      bool  b_rtsp_kasenna; /* kasenna style RTSP */
> -};
> +} demux_sys_t;
>  
>  static int ReadDir( stream_t *, input_item_node_t * );
>  
> diff --git a/modules/demux/pva.c b/modules/demux/pva.c
> index 8eb52924f4..2089f90ab8 100644
> --- a/modules/demux/pva.c
> +++ b/modules/demux/pva.c
> @@ -52,7 +52,7 @@ vlc_module_end ()
>   * Local prototypes
>   *****************************************************************************/
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_out_id_t *p_video;
>      es_out_id_t *p_audio;
> @@ -66,7 +66,7 @@ struct demux_sys_t
>      block_t     *p_es;  /* video */
>  
>      int64_t     b_pcr_audio;
> -};
> +} demux_sys_t;
>  
>  static int  Demux   ( demux_t *p_demux );
>  static int  Control ( demux_t *p_demux, int i_query, va_list args );
> diff --git a/modules/demux/rawaud.c b/modules/demux/rawaud.c
> index 375bdb1244..a5b36b2428 100644
> --- a/modules/demux/rawaud.c
> +++ b/modules/demux/rawaud.c
> @@ -80,7 +80,7 @@ vlc_module_end();
>  /*****************************************************************************
>   * Definitions of structures used by this plugin
>   *****************************************************************************/
> -struct demux_sys_t
> +typedef struct
>  {
>      es_out_id_t *p_es;
>      es_format_t  fmt;
> @@ -88,7 +88,7 @@ struct demux_sys_t
>      unsigned int i_frame_samples;
>      unsigned int i_seek_step;
>      date_t       pts;
> -};
> +} demux_sys_t;
>  
>  
>  /*****************************************************************************
> diff --git a/modules/demux/rawdv.c b/modules/demux/rawdv.c
> index c081982f69..25f1141828 100644
> --- a/modules/demux/rawdv.c
> +++ b/modules/demux/rawdv.c
> @@ -93,7 +93,7 @@ typedef struct {
>      int8_t ap3;
>  } dv_header_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      int    frame_size;
>  
> @@ -110,7 +110,7 @@ struct demux_sys_t
>      /* program clock reference (in units of 90kHz) */
>      mtime_t i_pcr;
>      bool b_hurry_up;
> -};
> +} demux_sys_t;
>  
>  /*****************************************************************************
>   * Local prototypes
> diff --git a/modules/demux/rawvid.c b/modules/demux/rawvid.c
> index 08882e2e18..9cb45651c8 100644
> --- a/modules/demux/rawvid.c
> +++ b/modules/demux/rawvid.c
> @@ -79,7 +79,7 @@ vlc_module_end ()
>  /*****************************************************************************
>   * Definitions of structures used by this plugin
>   *****************************************************************************/
> -struct demux_sys_t
> +typedef struct
>  {
>      int    frame_size;
>  
> @@ -89,7 +89,7 @@ struct demux_sys_t
>      date_t pcr;
>  
>      bool b_y4m;
> -};
> +} demux_sys_t;
>  
>  /*****************************************************************************
>   * Local prototypes
> diff --git a/modules/demux/real.c b/modules/demux/real.c
> index 9cf2bbda13..7b810cae10 100644
> --- a/modules/demux/real.c
> +++ b/modules/demux/real.c
> @@ -117,7 +117,7 @@ typedef struct
>      uint32_t i_frame_index;
>  } real_index_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      int64_t  i_data_offset;
>      int64_t  i_data_size;
> @@ -145,7 +145,7 @@ struct demux_sys_t
>      int64_t     i_index_offset;
>      bool        b_seek;
>      real_index_t *p_index;
> -};
> +} demux_sys_t;
>  
>  static const unsigned char i_subpacket_size_sipr[4] = { 29, 19, 37, 20 };
>  
> diff --git a/modules/demux/sid.cpp b/modules/demux/sid.cpp
> index f9362d0a5c..be33f35288 100644
> --- a/modules/demux/sid.cpp
> +++ b/modules/demux/sid.cpp
> @@ -57,7 +57,8 @@ vlc_module_begin ()
>      set_callbacks (Open, Close)
>  vlc_module_end ()
>  
> -struct demux_sid
> +namespace { // for ODR
> +struct demux_sys_t
>  {
>      sidplay2 *player;
>      sid2_config_t config;
> @@ -73,7 +74,7 @@ struct demux_sid
>      int last_title;
>      bool title_changed;
>  };
> -
> +} // namespace
>  
>  static int Demux (demux_t *);
>  static int Control (demux_t *, int, va_list);
> @@ -81,7 +82,7 @@ static int Control (demux_t *, int, va_list);
>  static int Open (vlc_object_t *obj)
>  {
>      demux_t *demux = (demux_t *)obj;
> -    demux_sid *sys = NULL;
> +    demux_sys_t *sys = NULL;
>      es_format_t fmt;
>      bool result = false;
>      SidTune *tune = NULL;
> @@ -124,7 +125,7 @@ static int Open (vlc_object_t *obj)
>      if (unlikely(player==NULL))
>          goto error;
>  
> -    sys = reinterpret_cast<demux_sid*>(calloc (1, sizeof(demux_sid)));
> +    sys = reinterpret_cast<demux_sys_t *>(calloc(1, sizeof(demux_sys_t)));
>      if (unlikely(sys==NULL))
>          goto error;
>  
> @@ -177,7 +178,7 @@ static int Open (vlc_object_t *obj)
>      /* Callbacks */
>      demux->pf_demux = Demux;
>      demux->pf_control = Control;
> -    demux->p_sys = reinterpret_cast<demux_sys_t*>(sys);
> +    demux->p_sys = sys;
>  
>      return VLC_SUCCESS;
>  
> @@ -194,7 +195,7 @@ error:
>  static void Close (vlc_object_t *obj)
>  {
>      demux_t *demux = (demux_t *)obj;
> -    demux_sid *sys = reinterpret_cast<demux_sid*>(demux->p_sys);
> +    demux_sys_t *sys = reinterpret_cast<demux_sys_t *>(demux->p_sys);
>  
>      delete sys->player;
>      delete sys->config.sidEmulation;
> @@ -204,7 +205,7 @@ static void Close (vlc_object_t *obj)
>  
>  static int Demux (demux_t *demux)
>  {
> -    demux_sid *sys = reinterpret_cast<demux_sid*>(demux->p_sys);
> +    demux_sys_t *sys = reinterpret_cast<demux_sys_t *>(demux->p_sys);
>  
>      block_t *block = block_Alloc( sys->block_size);
>      if (unlikely(block==NULL))
> @@ -235,7 +236,7 @@ static int Demux (demux_t *demux)
>  
>  static int Control (demux_t *demux, int query, va_list args)
>  {
> -    demux_sid *sys = reinterpret_cast<demux_sid*>(demux->p_sys);
> +    demux_sys_t *sys = reinterpret_cast<demux_sys_t *>(demux->p_sys);
>  
>      switch (query)
>      {
> diff --git a/modules/demux/smf.c b/modules/demux/smf.c
> index cc977fc35e..35fa8833a4 100644
> --- a/modules/demux/smf.c
> +++ b/modules/demux/smf.c
> @@ -91,7 +91,7 @@ static int ReadDeltaTime (stream_t *s, mtrk_t *track)
>      return 0;
>  }
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_out_id_t *es;
>      date_t       pts; /*< Play timestamp */
> @@ -104,7 +104,7 @@ struct demux_sys_t
>  
>      unsigned     trackc; /*< Number of tracks */
>      mtrk_t       trackv[]; /*< Track states */
> -};
> +} demux_sys_t;
>  
>  /**
>   * Non-MIDI Meta events handler
> diff --git a/modules/demux/stl.c b/modules/demux/stl.c
> index 18b07e9d66..d53b750d02 100644
> --- a/modules/demux/stl.c
> +++ b/modules/demux/stl.c
> @@ -58,7 +58,8 @@ typedef struct {
>      size_t  count;
>  } stl_entry_t;
>  
> -struct demux_sys_t {
> +typedef struct
> +{
>      size_t      count;
>      stl_entry_t *index;
>  
> @@ -68,7 +69,7 @@ struct demux_sys_t {
>      int64_t     next_date;
>      bool        b_slave;
>      bool        b_first_time;
> -};
> +} demux_sys_t;
>  
>  static size_t ParseInteger(uint8_t *data, size_t size)
>  {
> diff --git a/modules/demux/subtitle.c b/modules/demux/subtitle.c
> index 35f6e81ec2..f9a10d963a 100644
> --- a/modules/demux/subtitle.c
> +++ b/modules/demux/subtitle.c
> @@ -166,7 +166,7 @@ typedef struct
>  
>  } subs_properties_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_out_id_t *es;
>      bool        b_slave;
> @@ -187,7 +187,7 @@ struct demux_sys_t
>      subs_properties_t props;
>  
>      block_t * (*pf_convert)( const subtitle_t * );
> -};
> +} demux_sys_t;
>  
>  static int  ParseMicroDvd   ( vlc_object_t *, subs_properties_t *, 
> text_t *, subtitle_t *, size_t );
>  static int  ParseSubRip     ( vlc_object_t *, subs_properties_t *, 
> text_t *, subtitle_t *, size_t );
> diff --git a/modules/demux/tta.c b/modules/demux/tta.c
> index 83878b3543..7853180581 100644
> --- a/modules/demux/tta.c
> +++ b/modules/demux/tta.c
> @@ -60,7 +60,7 @@ vlc_module_end ()
>  static int Demux  ( demux_t * );
>  static int Control( demux_t *, int, va_list );
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      /* */
>      es_out_id_t *p_es;
> @@ -75,7 +75,7 @@ struct demux_sys_t
>      /* */
>      vlc_meta_t     *p_meta;
>      int64_t        i_start;
> -};
> +} demux_sys_t;
>  
>  /*****************************************************************************
>   * Open: initializes ES structures
> diff --git a/modules/demux/ttml.c b/modules/demux/ttml.c
> index 88dbff268c..ace89eb2be 100644
> --- a/modules/demux/ttml.c
> +++ b/modules/demux/ttml.c
> @@ -41,7 +41,7 @@
>  
>  //#define TTML_DEMUX_DEBUG
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      xml_t*          p_xml;
>      xml_reader_t*   p_reader;
> @@ -65,7 +65,7 @@ struct demux_sys_t
>          size_t   i_count;
>          size_t   i_current;
>      } times;
> -};
> +} demux_sys_t;
>  
>  static char *tt_genTiming( tt_time_t t )
>  {
> diff --git a/modules/demux/ty.c b/modules/demux/ty.c
> index b08217564e..fc963ce345 100644
> --- a/modules/demux/ty.c
> +++ b/modules/demux/ty.c
> @@ -212,7 +212,7 @@ typedef struct
>  
>  } xds_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>    es_out_id_t *p_video;               /* ptr to video codec */
>    es_out_id_t *p_audio;               /* holds either ac3 or mpeg codec ptr */
> @@ -254,7 +254,7 @@ struct demux_sys_t
>    ty_seq_table_t  *seq_table;         /* table of SEQ entries from mstr chk */
>    bool      eof;
>    bool      b_first_chunk;
> -};
> +} demux_sys_t;
>  
>  static int get_chunk_header(demux_t *);
>  static mtime_t get_pts( const uint8_t *buf );
> diff --git a/modules/demux/vc1.c b/modules/demux/vc1.c
> index 41d2366921..08be4ebf38 100644
> --- a/modules/demux/vc1.c
> +++ b/modules/demux/vc1.c
> @@ -57,14 +57,14 @@ vlc_module_end ()
>  /*****************************************************************************
>   * Local prototypes
>   *****************************************************************************/
> -struct demux_sys_t
> +typedef struct
>  {
>      mtime_t     i_dts;
>      es_out_id_t *p_es;
>  
>      float       f_fps;
>      decoder_t *p_packetizer;
> -};
> +} demux_sys_t;
>  
>  static int Demux( demux_t * );
>  static int Control( demux_t *, int, va_list );
> diff --git a/modules/demux/vobsub.c b/modules/demux/vobsub.c
> index 3f1257633d..22d1ae2fb8 100644
> --- a/modules/demux/vobsub.c
> +++ b/modules/demux/vobsub.c
> @@ -87,7 +87,7 @@ typedef struct
>      int64_t     i_delay;
>  } vobsub_track_t;
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      int64_t        i_next_demux_date;
>      int64_t        i_length;
> @@ -103,7 +103,7 @@ struct demux_sys_t
>      int            i_original_frame_height;
>      bool           b_palette;
>      uint32_t       palette[16];
> -};
> +} demux_sys_t;
>  
>  
>  static int Demux( demux_t * );
> diff --git a/modules/demux/voc.c b/modules/demux/voc.c
> index 33e6ecf958..839b18c094 100644
> --- a/modules/demux/voc.c
> +++ b/modules/demux/voc.c
> @@ -53,7 +53,7 @@ vlc_module_end ()
>  static int Demux  ( demux_t * );
>  static int Control( demux_t *, int i_query, va_list args );
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_format_t     fmt;
>      es_out_id_t     *p_es;
> @@ -66,7 +66,7 @@ struct demux_sys_t
>      unsigned        i_silence_countdown;
>  
>      date_t          pts;
> -};
> +} demux_sys_t;
>  
>  static const char ct_header[] = "Creative Voice File\x1a";
>  
> diff --git a/modules/demux/wav.c b/modules/demux/wav.c
> index ab94767f06..5c4083c2fd 100644
> --- a/modules/demux/wav.c
> +++ b/modules/demux/wav.c
> @@ -62,7 +62,7 @@ vlc_module_end ()
>  static int Demux  ( demux_t * );
>  static int Control( demux_t *, int i_query, va_list args );
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_format_t     fmt;
>      es_out_id_t     *p_es;
> @@ -78,7 +78,7 @@ struct demux_sys_t
>      uint32_t i_channel_mask;
>      uint8_t i_chans_to_reorder;            /* do we need channel reordering */
>      uint8_t pi_chan_table[AOUT_CHAN_MAX];
> -};
> +} demux_sys_t;
>  
>  static int ChunkFind( demux_t *, const char *, unsigned int * );
>  
> diff --git a/modules/demux/webvtt.c b/modules/demux/webvtt.c
> index bbb822722a..85311b2494 100644
> --- a/modules/demux/webvtt.c
> +++ b/modules/demux/webvtt.c
> @@ -42,7 +42,7 @@ struct index_entry_s
>      unsigned active;
>  };
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_out_id_t *es;
>      bool         b_slave;
> @@ -72,7 +72,7 @@ struct demux_sys_t
>      } index;
>  
>      webvtt_text_parser_t *p_streamparser;
> -};
> +} demux_sys_t;
>  
>  #define WEBVTT_PREALLOC 64
>  
> diff --git a/modules/demux/xa.c b/modules/demux/xa.c
> index c55632e3b1..6d1f86f376 100644
> --- a/modules/demux/xa.c
> +++ b/modules/demux/xa.c
> @@ -54,7 +54,7 @@ vlc_module_end ()
>  static int Demux  ( demux_t * );
>  static int Control( demux_t *, int i_query, va_list args );
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      es_out_id_t     *p_es;
>  
> @@ -64,7 +64,7 @@ struct demux_sys_t
>      unsigned int    i_bitrate;
>  
>      date_t          pts;
> -};
> +} demux_sys_t;
>  
>  typedef struct xa_header_t
>  {
> diff --git a/modules/misc/stats.c b/modules/misc/stats.c
> index 4d02a307d9..703910fd56 100644
> --- a/modules/misc/stats.c
> +++ b/modules/misc/stats.c
> @@ -133,13 +133,13 @@ static int OpenEncoder ( vlc_object_t *p_this )
>  #endif
>  
>  /*** Demuxer ***/
> -struct demux_sys_t
> +typedef struct
>  {
>      es_format_t     fmt;
>      es_out_id_t     *p_es;
>  
>      date_t          pts;
> -};
> +} demux_sys_t;
>  
>  static int Demux( demux_t *p_demux )
>  {
> diff --git a/modules/services_discovery/sap.c b/modules/services_discovery/sap.c
> index 2726086af4..ae7c1d7a01 100644
> --- a/modules/services_discovery/sap.c
> +++ b/modules/services_discovery/sap.c
> @@ -230,10 +230,10 @@ struct services_discovery_sys_t
>      int i_timeout;
>  };
>  
> -struct demux_sys_t
> +typedef struct
>  {
>      sdp_t *p_sdp;
> -};
> +} demux_sys_t;
>  
>  /
> *****************************************************************************
>   * Local prototypes
> diff --git a/modules/stream_out/chromecast/chromecast_demux.cpp b/
> modules/stream_out/chromecast/chromecast_demux.cpp
> index bcd379f330..a5b30eb8c4 100644
> --- a/modules/stream_out/chromecast/chromecast_demux.cpp
> +++ b/modules/stream_out/chromecast/chromecast_demux.cpp
> @@ -493,7 +493,6 @@ int Open(vlc_object_t *p_this)
>          return VLC_ENOMEM;
>  
>      p_demux->p_sys = p_sys;
> -    p_demux->p_sys = reinterpret_cast<demux_sys_t*>(p_sys);
>      p_demux->pf_demux = Demux;
>      p_demux->pf_control = Control;
>  
> -- 
> 2.17.0
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list