diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-10-28 02:53:33 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-10-28 03:05:16 +0200 |
commit | 8d4e44993a87a9b230c5c87cf892dd58adcebcc4 (patch) | |
tree | d21f2d4bbcbe37b7876356b60b11f3f8eddb33f5 /libavdevice | |
parent | aa638b4600e1fa7a1b64323b8228c459af644a47 (diff) | |
parent | 15946eb8a940416d9792c65900273d674f9c152a (diff) | |
download | ffmpeg-8d4e44993a87a9b230c5c87cf892dd58adcebcc4.tar.gz |
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')
-rw-r--r-- | libavdevice/pulse.c | 37 |
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 }, }; |