diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-11-15 06:13:42 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-11-15 06:13:42 +0400 |
commit | a72580fc9efeb674257b4754ca5de0fa34b09be8 (patch) | |
tree | 317e10288d30721f1f20c6c5bb9d99945d4351bd /libavdevice | |
parent | be4c9a440f4e8b6ea01112d98a2cc128b8c52295 (diff) | |
parent | 3f5d6a665aba439a9309ed735e71403d236a313d (diff) |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
binkvideo: simplify and remove invalid shifts
pulse: compute frame_duration once and fix it
lavf: simplify format_child_class_next()
hwaccel: OS X Video Decoder Acceleration (VDA) support.
doc: add support for an optional navigation bar in texi2html pages
Conflicts:
configure
libavcodec/Makefile
libavcodec/allcodecs.c
libavcodec/vda.c
libavcodec/vda.h
libavcodec/vda_h264.c
libavcodec/vda_internal.h
libavcodec/version.h
libavformat/options.c
libavutil/avutil.h
libavutil/pixfmt.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavdevice')
-rw-r--r-- | libavdevice/pulse.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libavdevice/pulse.c b/libavdevice/pulse.c index 79da7a6bfb..0b60651d08 100644 --- a/libavdevice/pulse.c +++ b/libavdevice/pulse.c @@ -46,6 +46,7 @@ typedef struct PulseData { int fragment_size; pa_simple *s; int64_t pts; + int64_t frame_duration; } PulseData; static pa_sample_format_t codec_id_to_pulse_format(int codec_id) { @@ -110,6 +111,8 @@ static av_cold int pulse_read_header(AVFormatContext *s, av_set_pts_info(st, 64, 1, 1000000); /* 64 bits pts in us */ pd->pts = AV_NOPTS_VALUE; + pd->frame_duration = (pd->frame_size * 1000000LL * 8) / + (pd->sample_rate * pd->channels * av_get_bits_per_sample(codec_id)); return 0; } @@ -119,8 +122,6 @@ static int pulse_read_packet(AVFormatContext *s, AVPacket *pkt) PulseData *pd = s->priv_data; int res; pa_usec_t latency; - uint64_t frame_duration = - (pd->frame_size*1000000LL) / (pd->sample_rate * pd->channels); if (av_new_packet(pkt, pd->frame_size) < 0) { return AVERROR(ENOMEM); @@ -145,7 +146,7 @@ static int pulse_read_packet(AVFormatContext *s, AVPacket *pkt) pkt->pts = pd->pts; - pd->pts += frame_duration; + pd->pts += pd->frame_duration; return 0; } |