[Spice-devel] [PATCH spice-streaming-agent 1/2] mjpeg plugin: split off the declaration into a header

Frediano Ziglio fziglio at redhat.com
Tue Jan 30 11:32:43 UTC 2018


> 
> So that the plugin can later be included in a unit test.
> 
> Signed-off-by: Lukáš Hrázký <lhrazky at redhat.com>
> ---
>  src/mjpeg-fallback.cpp | 26 ++++++--------------------
>  src/mjpeg-fallback.hpp | 34 ++++++++++++++++++++++++++++++++++
>  2 files changed, 40 insertions(+), 20 deletions(-)
>  create mode 100644 src/mjpeg-fallback.hpp
> 
> diff --git a/src/mjpeg-fallback.cpp b/src/mjpeg-fallback.cpp
> index f41e68a..fac34bc 100644
> --- a/src/mjpeg-fallback.cpp
> +++ b/src/mjpeg-fallback.cpp
> @@ -4,6 +4,8 @@
>   * Copyright 2017 Red Hat Inc. All rights reserved.
>   */
>  
> +#include "mjpeg-fallback.hpp"
> +
>  #include <config.h>
>  #include <cstring>
>  #include <exception>
> @@ -13,9 +15,6 @@
>  #include <syslog.h>
>  #include <X11/Xlib.h>
>  
> -#include <spice-streaming-agent/plugin.hpp>
> -#include <spice-streaming-agent/frame-capture.hpp>
> -
>  #include "static-plugin.hpp"
>  #include "jpeg.hpp"
>  

The include order looks weird.
Surely you want the config include before anything else as it could
change some system header behaviour.
But I think including mjpeg-fallback.hpp after the system headers
here is more coherent.

> @@ -41,11 +40,6 @@ static inline uint64_t get_time()
>  }
>  
>  namespace {
> -struct MjpegSettings
> -{
> -    int fps;
> -    int quality;
> -};
>  
>  class MjpegFrameCapture final: public FrameCapture
>  {
> @@ -69,18 +63,6 @@ private:
>      uint64_t last_time = 0;
>  };
>  
> -class MjpegPlugin final: public Plugin
> -{
> -public:
> -    FrameCapture *CreateCapture() override;
> -    unsigned Rank() override;
> -    void ParseOptions(const ConfigureOption *options);
> -    SpiceVideoCodecType VideoCodecType() const {
> -        return SPICE_VIDEO_CODEC_TYPE_MJPEG;
> -    }
> -private:
> -    MjpegSettings settings = { 10, 80 };
> -};
>  }
>  
>  MjpegFrameCapture::MjpegFrameCapture(const MjpegSettings& settings):
> @@ -205,6 +187,10 @@ void MjpegPlugin::ParseOptions(const ConfigureOption
> *options)
>      }
>  }
>  
> +SpiceVideoCodecType MjpegPlugin::VideoCodecType() const {
> +    return SPICE_VIDEO_CODEC_TYPE_MJPEG;
> +}
> +
>  static bool
>  mjpeg_plugin_init(Agent* agent)
>  {
> diff --git a/src/mjpeg-fallback.hpp b/src/mjpeg-fallback.hpp
> new file mode 100644
> index 0000000..8044244
> --- /dev/null
> +++ b/src/mjpeg-fallback.hpp
> @@ -0,0 +1,34 @@
> +/* Plugin implementation for Mjpeg
> + *
> + * \copyright
> + * Copyright 2017 Red Hat Inc. All rights reserved.
> + */
> +#ifndef SPICE_STREAMING_AGENT_MJPEG_FALLBACK_HPP
> +#define SPICE_STREAMING_AGENT_MJPEG_FALLBACK_HPP
> +
> +#include <spice-streaming-agent/plugin.hpp>
> +#include <spice-streaming-agent/frame-capture.hpp>
> +
> +
> +namespace SpiceStreamingAgent {
> +
> +struct MjpegSettings
> +{
> +    int fps;
> +    int quality;
> +};
> +
> +class MjpegPlugin final: public Plugin
> +{
> +public:
> +    FrameCapture *CreateCapture() override;
> +    unsigned Rank() override;
> +    void ParseOptions(const ConfigureOption *options);
> +    SpiceVideoCodecType VideoCodecType() const;
> +private:
> +    MjpegSettings settings = { 10, 80 };
> +};
> +
> +} // namespace SpiceStreamingAgent
> +
> +#endif // SPICE_STREAMING_AGENT_MJPEG_FALLBACK_HPP

Frediano


More information about the Spice-devel mailing list