projects
/
ffmpeg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cavsdec: Make sure a sequence header has been decoded before decoding pictures
[ffmpeg.git]
/
libavdevice
/
alsa-audio.h
diff --git
a/libavdevice/alsa-audio.h
b/libavdevice/alsa-audio.h
index
9493831
..
26eaee6
100644
(file)
--- a/
libavdevice/alsa-audio.h
+++ b/
libavdevice/alsa-audio.h
@@
-3,20
+3,20
@@
* Copyright (c) 2007 Luca Abeni ( lucabe72 email it )
* Copyright (c) 2007 Benoit Fouet ( benoit fouet free fr )
*
* Copyright (c) 2007 Luca Abeni ( lucabe72 email it )
* Copyright (c) 2007 Benoit Fouet ( benoit fouet free fr )
*
- * This file is part of
FFmpeg
.
+ * This file is part of
Libav
.
*
*
- *
FFmpeg
is free software; you can redistribute it and/or
+ *
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.
*
* 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.
*
- *
FFmpeg
is distributed in the hope that it will be useful,
+ *
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
* 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
FFmpeg
; if not, write to the Free Software
+ * License along with
Libav
; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
@@
-33,16
+33,25
@@
#include <alsa/asoundlib.h>
#include "config.h"
#include "libavformat/avformat.h"
#include <alsa/asoundlib.h>
#include "config.h"
#include "libavformat/avformat.h"
+#include "libavutil/log.h"
/* XXX: we make the assumption that the soundcard accepts this format */
/* XXX: find better solution with "preinit" method, needed also in
other formats */
/* XXX: we make the assumption that the soundcard accepts this format */
/* XXX: find better solution with "preinit" method, needed also in
other formats */
-#define DEFAULT_CODEC_ID AV_NE(
CODEC_ID_PCM_S16BE,
CODEC_ID_PCM_S16LE)
+#define DEFAULT_CODEC_ID AV_NE(
AV_CODEC_ID_PCM_S16BE, AV_
CODEC_ID_PCM_S16LE)
-typedef struct {
+#define ALSA_BUFFER_SIZE_MAX 32768
+
+typedef struct AlsaData {
+ AVClass *class;
snd_pcm_t *h;
int frame_size; ///< preferred size for reads and writes
int period_size; ///< bytes per sample * channels
snd_pcm_t *h;
int frame_size; ///< preferred size for reads and writes
int period_size; ///< bytes per sample * channels
+ int sample_rate; ///< sample rate set by user
+ int channels; ///< number of channels set by user
+ void (*reorder_func)(const void *, void *, int);
+ void *reorder_buf;
+ int reorder_buf_size; ///< in frames
} AlsaData;
/**
} AlsaData;
/**
@@
-53,15
+62,15
@@
typedef struct {
* @param sample_rate in: requested sample rate;
* out: actually selected sample rate
* @param channels number of channels
* @param sample_rate in: requested sample rate;
* out: actually selected sample rate
* @param channels number of channels
- * @param codec_id in: requested
CodecID or
CODEC_ID_NONE;
- * out: actually selected CodecID, changed only if
- * CODEC_ID_NONE was requested
+ * @param codec_id in: requested
AVCodecID or AV_
CODEC_ID_NONE;
+ * out: actually selected
AV
CodecID, changed only if
+ *
AV_
CODEC_ID_NONE was requested
*
* @return 0 if OK, AVERROR_xxx on error
*/
int ff_alsa_open(AVFormatContext *s, snd_pcm_stream_t mode,
unsigned int *sample_rate,
*
* @return 0 if OK, AVERROR_xxx on error
*/
int ff_alsa_open(AVFormatContext *s, snd_pcm_stream_t mode,
unsigned int *sample_rate,
- int channels, enum CodecID *codec_id);
+ int channels, enum
AV
CodecID *codec_id);
/**
* Close the ALSA PCM.
/**
* Close the ALSA PCM.
@@
-82,4
+91,6
@@
int ff_alsa_close(AVFormatContext *s1);
*/
int ff_alsa_xrun_recover(AVFormatContext *s1, int err);
*/
int ff_alsa_xrun_recover(AVFormatContext *s1, int err);
+int ff_alsa_extend_reorder_buf(AlsaData *s, int size);
+
#endif /* AVDEVICE_ALSA_AUDIO_H */
#endif /* AVDEVICE_ALSA_AUDIO_H */