Only export symbols defined in the decoder API.
authorJoachim Bauch <bauch@struktur.de>
Thu, 30 Nov 2023 16:31:53 +0000 (17:31 +0100)
committerAnton Gladky <gladk@debian.org>
Thu, 30 Nov 2023 16:31:53 +0000 (17:31 +0100)
The encoder API is not final yet, so upstream exports all symbols to make
development easier. For packaging we only want to expose the public API.

Gbp-Pq: Name only_export_decoder_api.patch

configure.ac
libde265/configparam.h
libde265/encoder/Makefile.am
libde265/encoder/algo/Makefile.am
libde265/image-io.cc
libde265/image-io.h
libde265/quality.h

index 7b77f0a035b05e2e798a46df8e0885e5428562d0..57cd26748415dd5a992528ccedfbd601c8dba120 100644 (file)
@@ -56,9 +56,7 @@ if test "x$GCC" = "xyes"; then
 fi
 changequote([,])dnl
 
-dnl gl_VISIBILITY
-dnl : In encoder branch, we still export all library symbols :
-HAVE_VISIBILITY=0
+gl_VISIBILITY
 AM_CONDITIONAL([HAVE_VISIBILITY], [test "x$HAVE_VISIBILITY" != "x0"])
 
 # Checks for header files.
index 58b1daa32b5dd37e58dbe24f06513a87e8b0a3eb..9e3496c1699c471db168a2713c89ddbede9586e5 100644 (file)
@@ -95,7 +95,7 @@ class option_base
   bool hasLongOption() const { return true; } //mLongOption!=NULL; }
   std::string getLongOption() const { return mLongOption ? std::string(mLongOption) : get_name(); }
 
-  virtual LIBDE265_API bool processCmdLineArguments(char** argv, int* argc, int idx) { return false; }
+  virtual bool processCmdLineArguments(char** argv, int* argc, int idx) { return false; }
 
 
 
@@ -132,7 +132,7 @@ public:
   virtual std::string get_default_string() const { return default_value ? "true":"false"; }
 
   virtual std::string getTypeDescr() const { return "(boolean)"; }
-  virtual LIBDE265_API bool processCmdLineArguments(char** argv, int* argc, int idx) { set(true); return true; }
+  virtual bool processCmdLineArguments(char** argv, int* argc, int idx) { set(true); return true; }
 
   bool set(bool v) { value_set=true; value=v; return true; }
 
@@ -162,10 +162,10 @@ public:
   virtual bool has_default() const { return default_set; }
 
   void set_default(std::string v) { default_value=v; default_set=true; }
-  virtual LIBDE265_API std::string get_default_string() const { return default_value; }
+  virtual std::string get_default_string() const { return default_value; }
 
-  virtual LIBDE265_API std::string getTypeDescr() const { return "(string)"; }
-  virtual LIBDE265_API bool processCmdLineArguments(char** argv, int* argc, int idx);
+  virtual std::string getTypeDescr() const { return "(string)"; }
+  virtual bool processCmdLineArguments(char** argv, int* argc, int idx);
 
   bool set(std::string v) { value_set=true; value=v; return true; }
 
@@ -201,10 +201,10 @@ public:
   virtual bool has_default() const { return default_set; }
 
   void set_default(int v) { default_value=v; default_set=true; }
-  virtual LIBDE265_API std::string get_default_string() const;
+  virtual std::string get_default_string() const;
 
-  virtual LIBDE265_API std::string getTypeDescr() const;
-  virtual LIBDE265_API bool processCmdLineArguments(char** argv, int* argc, int idx);
+  virtual std::string getTypeDescr() const;
+  virtual bool processCmdLineArguments(char** argv, int* argc, int idx);
 
   bool set(int v) {
     if (is_valid(v)) { value_set=true; value=v; return true; }
@@ -239,7 +239,7 @@ public:
   virtual std::vector<std::string> get_choice_names() const = 0;
 
   virtual std::string getTypeDescr() const;
-  virtual LIBDE265_API bool processCmdLineArguments(char** argv, int* argc, int idx);
+  virtual bool processCmdLineArguments(char** argv, int* argc, int idx);
 
   const char** get_choices_string_table() const;
 
@@ -368,10 +368,10 @@ class config_parameters
  config_parameters() : param_string_table(NULL) { }
   ~config_parameters() { delete[] param_string_table; }
 
-  void LIBDE265_API add_option(option_base* o);
+  void add_option(option_base* o);
 
-  void LIBDE265_API print_params() const;
-  bool LIBDE265_API parse_command_line_params(int* argc, char** argv, int* first_idx=NULL,
+  void print_params() const;
+  bool parse_command_line_params(int* argc, char** argv, int* first_idx=NULL,
                                  bool ignore_unknown_options=false);
 
 
index ee1cd756c68f727f9bbac37d9bc89c65e21cf1e6..dab2c3cd375e32bcc61e9b64de29e403e53b849b 100644 (file)
@@ -12,6 +12,18 @@ libde265_encoder_la_SOURCES = \
   encpicbuf.h encpicbuf.cc \
   sop.h sop.cc
 
+libde265_encoder_la_CFLAGS = \
+  $(CFLAG_VISIBILITY) \
+  -DLIBDE265_EXPORTS
+libde265_encoder_la_CXXFLAGS += \
+  $(CFLAG_VISIBILITY) \
+  -DLIBDE265_EXPORTS
+
+if HAVE_VISIBILITY
+ libde265_encoder_la_CFLAGS += -DHAVE_VISIBILITY
+ libde265_encoder_la_CXXFLAGS += -DHAVE_VISIBILITY
+endif
+
 SUBDIRS=algo
 libde265_encoder_la_LIBADD = algo/libde265_encoder_algo.la
 
index 8bdbc74b9ea6e9e8b66db5ad035907185396e2b9..95f1211bc2d75f329e376dff5cbe52dbec917bf4 100644 (file)
@@ -17,5 +17,13 @@ libde265_encoder_algo_la_SOURCES = \
   tb-rateestim.h tb-rateestim.cc \
   pb-mv.h pb-mv.cc
 
+libde265_encoder_algo_la_CXXFLAGS += \
+  $(CFLAG_VISIBILITY) \
+  -DLIBDE265_EXPORTS
+
+if HAVE_VISIBILITY
+ libde265_encoder_algo_la_CXXFLAGS += -DHAVE_VISIBILITY
+endif
+
 EXTRA_DIST = \
   CMakeLists.txt
index 60f4e6cdacb589cbf027ade7eb769830049e2333..4983783797236c4684ae1652408463a6b057623c 100644 (file)
@@ -186,7 +186,7 @@ PacketSink_File::PacketSink_File()
 }
 
 
-LIBDE265_API PacketSink_File::~PacketSink_File()
+PacketSink_File::~PacketSink_File()
 {
   if (mFH) {
     fclose(mFH);
@@ -194,7 +194,7 @@ LIBDE265_API PacketSink_File::~PacketSink_File()
 }
 
 
-LIBDE265_API void PacketSink_File::set_filename(const char* filename)
+void PacketSink_File::set_filename(const char* filename)
 {
   assert(mFH==NULL);
 
@@ -202,7 +202,7 @@ LIBDE265_API void PacketSink_File::set_filename(const char* filename)
 }
 
 
-LIBDE265_API void PacketSink_File::send_packet(const uint8_t* data, int n)
+void PacketSink_File::send_packet(const uint8_t* data, int n)
 {
   uint8_t startCode[3];
   startCode[0] = 0;
index 1cc6c8d001961885151908163787d89bc08a3d40..03daaf91bc5770e98db32c06a3ad292fabb46391 100644 (file)
 class ImageSource
 {
  public:
-  LIBDE265_API ImageSource();
-  virtual LIBDE265_API ~ImageSource() { }
+  ImageSource();
+  virtual ~ImageSource() { }
 
   //enum ImageStatus { Available, Waiting, EndOfVideo };
 
   //virtual ImageStatus  get_status() = 0;
-  virtual LIBDE265_API de265_image* get_image(bool block=true) = 0;
-  virtual LIBDE265_API void skip_frames(int n) = 0;
+  virtual de265_image* get_image(bool block=true) = 0;
+  virtual void skip_frames(int n) = 0;
 
-  virtual LIBDE265_API int get_width() const = 0;
-  virtual LIBDE265_API int get_height() const = 0;
+  virtual int get_width() const = 0;
+  virtual int get_height() const = 0;
 };
 
 
@@ -48,17 +48,17 @@ class ImageSource
 class ImageSource_YUV : public ImageSource
 {
  public:
-  LIBDE265_API ImageSource_YUV();
-  virtual LIBDE265_API ~ImageSource_YUV();
+  ImageSource_YUV();
+  virtual ~ImageSource_YUV();
 
-  bool LIBDE265_API set_input_file(const char* filename, int w,int h);
+  bool set_input_file(const char* filename, int w,int h);
 
   //virtual ImageStatus  get_status();
-  virtual LIBDE265_API de265_image* get_image(bool block=true);
-  virtual LIBDE265_API void skip_frames(int n);
+  virtual de265_image* get_image(bool block=true);
+  virtual void skip_frames(int n);
 
-  virtual LIBDE265_API int get_width() const { return width; }
-  virtual LIBDE265_API int get_height() const { return height; }
+  virtual int get_width() const { return width; }
+  virtual int get_height() const { return height; }
 
  private:
   FILE* mFH;
@@ -74,20 +74,20 @@ class ImageSource_YUV : public ImageSource
 class ImageSink
 {
  public:
-  virtual LIBDE265_API ~ImageSink() { }
+  virtual ~ImageSink() { }
 
-  virtual LIBDE265_API void send_image(const de265_image* img) = 0;
+  virtual void send_image(const de265_image* img) = 0;
 };
 
 class ImageSink_YUV : public ImageSink
 {
  public:
LIBDE265_API ImageSink_YUV() : mFH(NULL) { }
-  LIBDE265_API ~ImageSink_YUV();
+  ImageSink_YUV() : mFH(NULL) { }
+  ~ImageSink_YUV();
 
-  bool LIBDE265_API set_filename(const char* filename);
+  bool set_filename(const char* filename);
 
-  virtual LIBDE265_API void send_image(const de265_image* img);
+  virtual void send_image(const de265_image* img);
 
  private:
   FILE* mFH;
@@ -98,21 +98,21 @@ class ImageSink_YUV : public ImageSink
 class PacketSink
 {
  public:
-  virtual LIBDE265_API ~PacketSink() { }
+  virtual ~PacketSink() { }
 
-  virtual LIBDE265_API void send_packet(const uint8_t* data, int n) = 0;
+  virtual void send_packet(const uint8_t* data, int n) = 0;
 };
 
 
 class PacketSink_File : public PacketSink
 {
  public:
-  LIBDE265_API PacketSink_File();
-  virtual LIBDE265_API ~PacketSink_File();
+  PacketSink_File();
+  virtual ~PacketSink_File();
 
-  LIBDE265_API void set_filename(const char* filename);
+  void set_filename(const char* filename);
 
-  virtual LIBDE265_API void send_packet(const uint8_t* data, int n);
+  virtual void send_packet(const uint8_t* data, int n);
 
  private:
   FILE* mFH;
index 7073d149825ef1b885c5ba5119ec92fba14717d9..b32368d6333038c4807bf63a46f77d74ac1f2312 100644 (file)
 #include <libde265/image.h>
 
 
-LIBDE265_API uint32_t SSD(const uint8_t* img, int imgStride,
+uint32_t SSD(const uint8_t* img, int imgStride,
                           const uint8_t* ref, int refStride,
                           int width, int height);
 
-LIBDE265_API uint32_t SAD(const uint8_t* img, int imgStride,
+uint32_t SAD(const uint8_t* img, int imgStride,
                           const uint8_t* ref, int refStride,
                           int width, int height);
 
@@ -41,7 +41,7 @@ LIBDE265_API double MSE(const uint8_t* img, int imgStride,
 LIBDE265_API double PSNR(double mse);
 
 
-LIBDE265_API uint32_t compute_distortion_ssd(const de265_image* img1, const de265_image* img2,
+uint32_t compute_distortion_ssd(const de265_image* img1, const de265_image* img2,
                                              int x0, int y0, int log2size, int cIdx);
 
 #endif