diff options
author | Diego Biurrun <diego@biurrun.de> | 2015-03-27 14:40:23 +0300 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2015-04-09 17:40:12 +0300 |
commit | 8d26c193fb42d08602ac93ece039d4718d029adc (patch) | |
tree | ced4ff3f94794ab9ca513dd67cedd4519ffeb591 /libavdevice/oss_audio.c | |
parent | c201069fac9a76e6604f9d84d76a172434d62200 (diff) |
avdevice: Apply a more consistent file naming scheme
Diffstat (limited to 'libavdevice/oss_audio.c')
-rw-r--r-- | libavdevice/oss_audio.c | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/libavdevice/oss_audio.c b/libavdevice/oss_audio.c deleted file mode 100644 index 4feb937134..0000000000 --- a/libavdevice/oss_audio.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Linux audio play and grab interface - * Copyright (c) 2000, 2001 Fabrice Bellard - * - * This file is part of Libav. - * - * Libav is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * Libav is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with Libav; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" - -#include <string.h> - -#if HAVE_SOUNDCARD_H -#include <soundcard.h> -#else -#include <sys/soundcard.h> -#endif - -#include <unistd.h> -#include <fcntl.h> -#include <sys/ioctl.h> - -#include "libavutil/log.h" - -#include "libavcodec/avcodec.h" - -#include "libavformat/avformat.h" - -#include "oss_audio.h" - -int ff_oss_audio_open(AVFormatContext *s1, int is_output, - const char *audio_device) -{ - OSSAudioData *s = s1->priv_data; - 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)); - return AVERROR(EIO); - } - - if (flip && *flip == '1') { - s->flip_left = 1; - } - - /* non blocking mode */ - if (!is_output) - fcntl(audio_fd, F_SETFL, O_NONBLOCK); - - s->frame_size = OSS_AUDIO_BLOCK_SIZE; - -#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); \ - goto fail; \ - } - - /* select format : favour native format - * We don't CHECK_IOCTL_ERROR here because even if failed OSS still may be - * usable. If OSS is not usable the SNDCTL_DSP_SETFMTS later is going to - * fail anyway. */ - (void) ioctl(audio_fd, SNDCTL_DSP_GETFMTS, &tmp); - -#if HAVE_BIGENDIAN - if (tmp & AFMT_S16_BE) { - tmp = AFMT_S16_BE; - } else if (tmp & AFMT_S16_LE) { - tmp = AFMT_S16_LE; - } else { - tmp = 0; - } -#else - if (tmp & AFMT_S16_LE) { - tmp = AFMT_S16_LE; - } else if (tmp & AFMT_S16_BE) { - tmp = AFMT_S16_BE; - } else { - tmp = 0; - } -#endif - - switch(tmp) { - case AFMT_S16_LE: - s->codec_id = AV_CODEC_ID_PCM_S16LE; - break; - case AFMT_S16_BE: - s->codec_id = AV_CODEC_ID_PCM_S16BE; - break; - default: - av_log(s1, AV_LOG_ERROR, "Soundcard does not support 16 bit sample format\n"); - close(audio_fd); - return AVERROR(EIO); - } - err=ioctl(audio_fd, SNDCTL_DSP_SETFMT, &tmp); - CHECK_IOCTL_ERROR(SNDCTL_DSP_SETFMTS) - - tmp = (s->channels == 2); - err = ioctl(audio_fd, SNDCTL_DSP_STEREO, &tmp); - CHECK_IOCTL_ERROR(SNDCTL_DSP_STEREO) - - tmp = s->sample_rate; - err = ioctl(audio_fd, SNDCTL_DSP_SPEED, &tmp); - CHECK_IOCTL_ERROR(SNDCTL_DSP_SPEED) - s->sample_rate = tmp; /* store real sample rate */ - s->fd = audio_fd; - - return 0; - fail: - close(audio_fd); - return AVERROR(EIO); -#undef CHECK_IOCTL_ERROR -} - -int ff_oss_audio_close(OSSAudioData *s) -{ - close(s->fd); - return 0; -} |