summaryrefslogtreecommitdiff
path: root/libavdevice/pulse.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-10-28 02:53:33 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-10-28 03:05:16 +0200
commit8d4e44993a87a9b230c5c87cf892dd58adcebcc4 (patch)
treed21f2d4bbcbe37b7876356b60b11f3f8eddb33f5 /libavdevice/pulse.c
parentaa638b4600e1fa7a1b64323b8228c459af644a47 (diff)
parent15946eb8a940416d9792c65900273d674f9c152a (diff)
Merge remote-tracking branch 'qatar/master'
* qatar/master: lavc: remove "legacy" mpegvideo decoder. iv8: assemble packets to return complete frames pulse: documentation pulse: introduce pulseaudio input remove the zork pcm seek test Conflicts: configure libavdevice/Makefile libavdevice/alldevices.c libavdevice/avdevice.h libavdevice/pulse.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavdevice/pulse.c')
-rw-r--r--libavdevice/pulse.c37
1 files changed, 14 insertions, 23 deletions
diff --git a/libavdevice/pulse.c b/libavdevice/pulse.c
index 56ae323856..79da7a6bfb 100644
--- a/libavdevice/pulse.c
+++ b/libavdevice/pulse.c
@@ -21,11 +21,9 @@
/**
* @file
- * Pulseaudio input
+ * PulseAudio input using the simple API.
* @author Luca Barbato <lu_zero@gentoo.org>
*
- * This avdevice decoder allows to capture audio from a Pulseaudio device using
- * the simple api.
*/
#include <pulse/simple.h>
@@ -95,9 +93,9 @@ static av_cold int pulse_read_header(AVFormatContext *s,
device = s->filename;
pd->s = pa_simple_new(pd->server, pd->name,
- PA_STREAM_RECORD,
- device, pd->stream_name, &ss,
- NULL, &attr, &ret);
+ PA_STREAM_RECORD,
+ device, pd->stream_name, &ss,
+ NULL, &attr, &ret);
if (!pd->s) {
av_log(s, AV_LOG_ERROR, "pa_simple_new failed: %s\n",
@@ -122,7 +120,7 @@ static int pulse_read_packet(AVFormatContext *s, AVPacket *pkt)
int res;
pa_usec_t latency;
uint64_t frame_duration =
- (pd->frame_size*1000000LL)/(pd->sample_rate * pd->channels);
+ (pd->frame_size*1000000LL) / (pd->sample_rate * pd->channels);
if (av_new_packet(pkt, pd->frame_size) < 0) {
return AVERROR(ENOMEM);
@@ -145,10 +143,10 @@ static int pulse_read_packet(AVFormatContext *s, AVPacket *pkt)
pd->pts = -latency;
}
- pd->pts += frame_duration;
-
pkt->pts = pd->pts;
+ pd->pts += frame_duration;
+
return 0;
}
@@ -163,20 +161,13 @@ static av_cold int pulse_close(AVFormatContext *s)
#define D AV_OPT_FLAG_DECODING_PARAM
static const AVOption options[] = {
- { "server", "pulse server name",
- OFFSET(server), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, D },
- { "name", "application name",
- OFFSET(name), AV_OPT_TYPE_STRING, {.str = LIBAVFORMAT_IDENT}, 0, 0, D },
- { "stream_name", "stream description",
- OFFSET(stream_name), AV_OPT_TYPE_STRING, {.str = "record"}, 0, 0, D },
- { "sample_rate", "",
- OFFSET(sample_rate), AV_OPT_TYPE_INT, {.dbl = 48000}, 1, INT_MAX, D },
- { "channels", "",
- OFFSET(channels), AV_OPT_TYPE_INT, {.dbl = 2}, 1, INT_MAX, D },
- { "frame_size", "",
- OFFSET(frame_size), AV_OPT_TYPE_INT, {.dbl = 1024}, 1, INT_MAX, D },
- { "fragment_size", "buffering size, affects latency and cpu usage",
- OFFSET(fragment_size), AV_OPT_TYPE_INT, {.dbl = -1}, -1, INT_MAX, D },
+ { "server", "pulse server name", OFFSET(server), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, D },
+ { "name", "application name", OFFSET(name), AV_OPT_TYPE_STRING, {.str = LIBAVFORMAT_IDENT}, 0, 0, D },
+ { "stream_name", "stream description", OFFSET(stream_name), AV_OPT_TYPE_STRING, {.str = "record"}, 0, 0, D },
+ { "sample_rate", "sample rate in Hz", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.dbl = 48000}, 1, INT_MAX, D },
+ { "channels", "number of audio channels", OFFSET(channels), AV_OPT_TYPE_INT, {.dbl = 2}, 1, INT_MAX, D },
+ { "frame_size", "number of bytes per frame", OFFSET(frame_size), AV_OPT_TYPE_INT, {.dbl = 1024}, 1, INT_MAX, D },
+ { "fragment_size", "buffering size, affects latency and cpu usage", OFFSET(fragment_size), AV_OPT_TYPE_INT, {.dbl = -1}, -1, INT_MAX, D },
{ NULL },
};