fix possible segfault arm hardware, thx DboxOldie

This commit is contained in:
Frankenstone
2019-02-27 13:46:58 +01:00
committed by Thilo Graf
parent 23ee0a2ae6
commit 3dec38599a
2 changed files with 7 additions and 5 deletions

View File

@@ -97,7 +97,7 @@ int map_volume(const int volume)
int cAudio::setVolume(unsigned int left, unsigned int right) int cAudio::setVolume(unsigned int left, unsigned int right)
{ {
hal_debug("%s(%d, %d)\n", __func__, left, right); hal_info("cAudio::%s(%d, %d)\n", __func__, left, right);
volume = (left + right) / 2; volume = (left + right) / 2;
int v = map_volume(volume); int v = map_volume(volume);
@@ -199,7 +199,7 @@ int cAudio::PrepareClipPlay(int ch, int srate, int bits, int little_endian)
unsigned int devmask, stereo, usable; unsigned int devmask, stereo, usable;
const char *dsp_dev = getenv("DSP_DEVICE"); const char *dsp_dev = getenv("DSP_DEVICE");
const char *mix_dev = getenv("MIX_DEVICE"); const char *mix_dev = getenv("MIX_DEVICE");
hal_debug("%s ch %d srate %d bits %d le %d\n", __FUNCTION__, ch, srate, bits, little_endian); hal_info("cAudio::%s ch %d srate %d bits %d le %d\n", __FUNCTION__, ch, srate, bits, little_endian);
if (clipfd > -1) { if (clipfd > -1) {
hal_info("%s: clipfd already opened (%d)\n", __func__, clipfd); hal_info("%s: clipfd already opened (%d)\n", __func__, clipfd);
return -1; return -1;
@@ -226,7 +226,7 @@ int cAudio::PrepareClipPlay(int ch, int srate, int bits, int little_endian)
" fall back to /dev/mixer\n", __func__, dsp_dev); " fall back to /dev/mixer\n", __func__, dsp_dev);
mix_dev = "/dev/mixer"; mix_dev = "/dev/mixer";
} }
hal_info("%s: dsp_dev %s mix_dev %s\n", __func__, dsp_dev, mix_dev); /* NULL mix_dev is ok */ hal_info("cAudio::%s: dsp_dev %s mix_dev %s\n", __func__, dsp_dev, mix_dev); /* NULL mix_dev is ok */
/* the tdoss dsp driver seems to work only on the second open(). really. */ /* the tdoss dsp driver seems to work only on the second open(). really. */
clipfd = open(dsp_dev, O_WRONLY); clipfd = open(dsp_dev, O_WRONLY);
if (clipfd < 0) { if (clipfd < 0) {
@@ -313,7 +313,7 @@ int cAudio::WriteClip(unsigned char *buffer, int size)
int cAudio::StopClip() int cAudio::StopClip()
{ {
hal_debug("%s\n", __FUNCTION__); hal_info("cAudio::%s\n", __FUNCTION__);
if (clipfd < 0) { if (clipfd < 0) {
hal_info("%s: clipfd not yet opened\n", __FUNCTION__); hal_info("%s: clipfd not yet opened\n", __FUNCTION__);
@@ -321,7 +321,7 @@ int cAudio::StopClip()
} }
close(clipfd); close(clipfd);
clipfd = -1; clipfd = -1;
if (mixer_fd >= -1) { if (mixer_fd > -1) {
close(mixer_fd); close(mixer_fd);
mixer_fd = -1; mixer_fd = -1;
} }

View File

@@ -296,8 +296,10 @@ AVCodecContext* open_codec(AVMediaType mediaType, AVFormatContext* formatContext
int image_to_mpeg2(const char *image_name, int fd) int image_to_mpeg2(const char *image_name, int fd)
{ {
int ret = 0; int ret = 0;
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 9, 100)
av_register_all(); av_register_all();
avcodec_register_all(); avcodec_register_all();
#endif
AVFormatContext *formatContext = avformat_alloc_context(); AVFormatContext *formatContext = avformat_alloc_context();
if (formatContext && (ret = avformat_open_input(&formatContext, image_name, NULL, NULL)) == 0){ if (formatContext && (ret = avformat_open_input(&formatContext, image_name, NULL, NULL)) == 0){