|
|
|
@ -49,14 +49,13 @@ int ff_oss_audio_open(AVFormatContext *s1, int is_output, |
|
|
|
|
int audio_fd; |
|
|
|
|
int tmp, err; |
|
|
|
|
char *flip = getenv("AUDIO_FLIP_LEFT"); |
|
|
|
|
char errbuff[128]; |
|
|
|
|
|
|
|
|
|
if (is_output) |
|
|
|
|
audio_fd = avpriv_open(audio_device, O_WRONLY); |
|
|
|
|
else |
|
|
|
|
audio_fd = avpriv_open(audio_device, O_RDONLY); |
|
|
|
|
if (audio_fd < 0) { |
|
|
|
|
av_log(s1, AV_LOG_ERROR, "%s: %s\n", audio_device, strerror(errno)); |
|
|
|
|
av_log(s1, AV_LOG_ERROR, "%s: %s\n", audio_device, av_err2str(AVERROR(errno))); |
|
|
|
|
return AVERROR(EIO); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -67,7 +66,7 @@ int ff_oss_audio_open(AVFormatContext *s1, int is_output, |
|
|
|
|
/* non blocking mode */ |
|
|
|
|
if (!is_output) { |
|
|
|
|
if (fcntl(audio_fd, F_SETFL, O_NONBLOCK) < 0) { |
|
|
|
|
av_log(s1, AV_LOG_WARNING, "%s: Could not enable non block mode (%s)\n", audio_device, strerror(errno)); |
|
|
|
|
av_log(s1, AV_LOG_WARNING, "%s: Could not enable non block mode (%s)\n", audio_device, av_err2str(AVERROR(errno))); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -75,8 +74,7 @@ int ff_oss_audio_open(AVFormatContext *s1, int is_output, |
|
|
|
|
|
|
|
|
|
#define CHECK_IOCTL_ERROR(event) \ |
|
|
|
|
if (err < 0) { \
|
|
|
|
|
av_strerror(AVERROR(errno), errbuff, sizeof(errbuff)); \
|
|
|
|
|
av_log(s1, AV_LOG_ERROR, #event ": %s\n", errbuff); \
|
|
|
|
|
av_log(s1, AV_LOG_ERROR, #event ": %s\n", av_err2str(AVERROR(errno)));\
|
|
|
|
|
goto fail; \
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -86,7 +84,7 @@ int ff_oss_audio_open(AVFormatContext *s1, int is_output, |
|
|
|
|
* fail anyway. */ |
|
|
|
|
err = ioctl(audio_fd, SNDCTL_DSP_GETFMTS, &tmp); |
|
|
|
|
if (err < 0) { |
|
|
|
|
av_log(s1, AV_LOG_WARNING, "SNDCTL_DSP_GETFMTS: %s\n", strerror(errno)); |
|
|
|
|
av_log(s1, AV_LOG_WARNING, "SNDCTL_DSP_GETFMTS: %s\n", av_err2str(AVERROR(errno))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#if HAVE_BIGENDIAN |
|
|
|
|