rafael2k / darkice

DarkIce is a live audio streamer. It records audio from an audio interface (e.g. sound card), encodes it and sends it to a streaming server. This is the official development repository of Darkice.
http://www.darkice.org
198 stars 46 forks source link

missing include for cstring for memmove when building with faac #193

Closed NeilHanlon closed 3 months ago

NeilHanlon commented 3 months ago
g++ -DHAVE_CONFIG_H -I.    -O2 -pedantic -Wall             -g -O2 -MT darkice-FaacEncoder.o -MD -MP -MF .deps/darkice-FaacEncoder.Tpo -c -o darkice-FaacEncoder.o `test -f 'FaacEncoder.cpp' || echo './'`FaacEncoder.cpp
In file included from AudioSource.h:42,
                 from AudioEncoder.h:41,
                 from FaacEncoder.h:53,
                 from FaacEncoder.cpp:43:
Source.h:92:9: warning: ‘virtual Source& Source::operator=(const Source&)’ was hidden [-Woverloaded-virtual=]
   92 |         operator= ( const Source &  source )
      |         ^~~~~~~~
AudioSource.h:193:9: note:   by ‘virtual AudioSource& AudioSource::operator=(const AudioSource&)’
  193 |         operator= (     const AudioSource &     as )
      |         ^~~~~~~~
AudioSource.h:193:9: warning: ‘virtual AudioSource& AudioSource::operator=(const AudioSource&)’ was hidden [-Woverloaded-virtual=]
In file included from AudioSource.h:317:
OssDspSource.h:166:9: note:   by ‘virtual OssDspSource& OssDspSource::operator=(const OssDspSource&)’
  166 |         operator= (     const OssDspSource &     ds )
      |         ^~~~~~~~
AudioSource.h:193:9: warning: ‘virtual AudioSource& AudioSource::operator=(const AudioSource&)’ was hidden [-Woverloaded-virtual=]
  193 |         operator= (     const AudioSource &     as )
      |         ^~~~~~~~
In file included from AudioSource.h:329:
SerialUlaw.h:167:9: note:   by ‘virtual SerialUlaw& SerialUlaw::operator=(const SerialUlaw&)’
  167 |         operator= (     const SerialUlaw &     ds )
      |         ^~~~~~~~
In file included from AudioEncoder.h:40:
Sink.h:90:9: warning: ‘virtual Sink& Sink::operator=(const Sink&)’ was hidden [-Woverloaded-virtual=]
   90 |         operator= ( const Sink &    sink )
      |         ^~~~~~~~
AudioEncoder.h:295:9: note:   by ‘virtual AudioEncoder& AudioEncoder::operator=(const AudioEncoder&)’
  295 |         operator= ( const AudioEncoder &        encoder )
      |         ^~~~~~~~
AudioEncoder.h:295:9: warning: ‘virtual AudioEncoder& AudioEncoder::operator=(const AudioEncoder&)’ was hidden [-Woverloaded-virtual=]
FaacEncoder.h:375:9: note:   by ‘virtual FaacEncoder& FaacEncoder::operator=(const FaacEncoder&)’
  375 |         operator= ( const FaacEncoder &      encoder )
      |         ^~~~~~~~
FaacEncoder.cpp: In member function ‘virtual unsigned int FaacEncoder::write(const void*, unsigned int)’:
FaacEncoder.cpp:219:45: error: ‘memmove’ was not declared in this scope
  219 |                 resampledOffset = (short *) memmove(resampledOffset, &resampledOffset[processedSamples*channels],
      |                                             ^~~~~~~
FaacEncoder.cpp:44:1: note: ‘memmove’ is defined in header ‘<cstring>’; did you forget to ‘#include <cstring>’?
   43 | #include "FaacEncoder.h"
  +++ |+#include <cstring>
   44 |

Builds fine if I add an include to the FaaCEncoder.h ifdef, but unsure if this is the best way--happy to open a PR if it is!

rafael2k commented 3 months ago

Please PR. Thanks!