mirror of
https://github.com/librempeg/librempeg
synced 2024-11-23 03:28:27 +00:00
avformat/pcm: decrease delay when reading PCM streams.
Thanks for the discussion. Here's the next version, now with /25 and removed ff_log2(). The blocksize of the PCM decoder is hard-coded. This creates unnecessary delay when reading low-rate (<100Hz) streams. This creates issues when multiplexing multiple streams, since other inputs are only opened/read after a low-rate input block was completely read. This patch decreases the blocksize for low-rate inputs, so approximately a block is read every 40ms. This decreases the startup delay when multiplexing inputs with different rates. Signed-off-by: Philipp M. Scholl <pscholl@bawue.de> Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
af7e953a59
commit
040b28aecc
@ -28,13 +28,20 @@
|
|||||||
|
|
||||||
int ff_pcm_read_packet(AVFormatContext *s, AVPacket *pkt)
|
int ff_pcm_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||||
{
|
{
|
||||||
|
AVCodecParameters *par = s->streams[0]->codecpar;
|
||||||
int ret, size;
|
int ret, size;
|
||||||
|
|
||||||
size= RAW_SAMPLES*s->streams[0]->codecpar->block_align;
|
if (par->block_align <= 0)
|
||||||
if (size <= 0)
|
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
|
||||||
ret= av_get_packet(s->pb, pkt, size);
|
/*
|
||||||
|
* Compute read size to complete a read every 62ms.
|
||||||
|
* Clamp to RAW_SAMPLES if larger.
|
||||||
|
*/
|
||||||
|
size = FFMAX(par->sample_rate/25, 1);
|
||||||
|
size = FFMIN(size, RAW_SAMPLES) * par->block_align;
|
||||||
|
|
||||||
|
ret = av_get_packet(s->pb, pkt, size);
|
||||||
|
|
||||||
pkt->flags &= ~AV_PKT_FLAG_CORRUPT;
|
pkt->flags &= ~AV_PKT_FLAG_CORRUPT;
|
||||||
pkt->stream_index = 0;
|
pkt->stream_index = 0;
|
||||||
|
@ -1,53 +1,53 @@
|
|||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st:-1 flags:0 ts:-1.000000
|
ret: 0 st:-1 flags:0 ts:-1.000000
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st:-1 flags:1 ts: 1.894167
|
ret: 0 st:-1 flags:1 ts: 1.894167
|
||||||
ret: 0 st: 0 flags:1 dts: 1.894150 pts: 1.894150 pos: 41766 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.894150 pts: 1.894150 pos: 41766 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts: 0.788345
|
ret: 0 st: 0 flags:0 ts: 0.788345
|
||||||
ret: 0 st: 0 flags:1 dts: 0.788345 pts: 0.788345 pos: 17383 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.788345 pts: 0.788345 pos: 17383 size: 882
|
||||||
ret: 0 st: 0 flags:1 ts:-0.317506
|
ret: 0 st: 0 flags:1 ts:-0.317506
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st:-1 flags:0 ts: 2.576668
|
ret: 0 st:-1 flags:0 ts: 2.576668
|
||||||
ret:-EOF
|
ret:-EOF
|
||||||
ret: 0 st:-1 flags:1 ts: 1.470835
|
ret: 0 st:-1 flags:1 ts: 1.470835
|
||||||
ret: 0 st: 0 flags:1 dts: 1.470839 pts: 1.470839 pos: 32432 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.470839 pts: 1.470839 pos: 32432 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts: 0.364989
|
ret: 0 st: 0 flags:0 ts: 0.364989
|
||||||
ret: 0 st: 0 flags:1 dts: 0.364989 pts: 0.364989 pos: 8048 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.364989 pts: 0.364989 pos: 8048 size: 882
|
||||||
ret: 0 st: 0 flags:1 ts:-0.740816
|
ret: 0 st: 0 flags:1 ts:-0.740816
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st:-1 flags:0 ts: 2.153336
|
ret: 0 st:-1 flags:0 ts: 2.153336
|
||||||
ret:-EOF
|
ret:-EOF
|
||||||
ret: 0 st:-1 flags:1 ts: 1.047503
|
ret: 0 st:-1 flags:1 ts: 1.047503
|
||||||
ret: 0 st: 0 flags:1 dts: 1.047483 pts: 1.047483 pos: 23097 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.047483 pts: 1.047483 pos: 23097 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts:-0.058322
|
ret: 0 st: 0 flags:0 ts:-0.058322
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st: 0 flags:1 ts: 2.835828
|
ret: 0 st: 0 flags:1 ts: 2.835828
|
||||||
ret:-EOF
|
ret:-EOF
|
||||||
ret: 0 st:-1 flags:0 ts: 1.730004
|
ret: 0 st:-1 flags:0 ts: 1.730004
|
||||||
ret: 0 st: 0 flags:1 dts: 1.730023 pts: 1.730023 pos: 38147 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.730023 pts: 1.730023 pos: 38147 size: 882
|
||||||
ret: 0 st:-1 flags:1 ts: 0.624171
|
ret: 0 st:-1 flags:1 ts: 0.624171
|
||||||
ret: 0 st: 0 flags:1 dts: 0.624172 pts: 0.624172 pos: 13763 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.624172 pts: 0.624172 pos: 13763 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts:-0.481678
|
ret: 0 st: 0 flags:0 ts:-0.481678
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st: 0 flags:1 ts: 2.412517
|
ret: 0 st: 0 flags:1 ts: 2.412517
|
||||||
ret:-EOF
|
ret:-EOF
|
||||||
ret: 0 st:-1 flags:0 ts: 1.306672
|
ret: 0 st:-1 flags:0 ts: 1.306672
|
||||||
ret: 0 st: 0 flags:1 dts: 1.306667 pts: 1.306667 pos: 28812 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.306667 pts: 1.306667 pos: 28812 size: 882
|
||||||
ret: 0 st:-1 flags:1 ts: 0.200839
|
ret: 0 st:-1 flags:1 ts: 0.200839
|
||||||
ret: 0 st: 0 flags:1 dts: 0.200816 pts: 0.200816 pos: 4428 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.200816 pts: 0.200816 pos: 4428 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts:-0.904989
|
ret: 0 st: 0 flags:0 ts:-0.904989
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st: 0 flags:1 ts: 1.989161
|
ret: 0 st: 0 flags:1 ts: 1.989161
|
||||||
ret: 0 st: 0 flags:1 dts: 1.989161 pts: 1.989161 pos: 43861 size: 239
|
ret: 0 st: 0 flags:1 dts: 1.989161 pts: 1.989161 pos: 43861 size: 239
|
||||||
ret: 0 st:-1 flags:0 ts: 0.883340
|
ret: 0 st:-1 flags:0 ts: 0.883340
|
||||||
ret: 0 st: 0 flags:1 dts: 0.883356 pts: 0.883356 pos: 19478 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.883356 pts: 0.883356 pos: 19478 size: 882
|
||||||
ret: 0 st:-1 flags:1 ts:-0.222493
|
ret: 0 st:-1 flags:1 ts:-0.222493
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts: 2.671655
|
ret: 0 st: 0 flags:0 ts: 2.671655
|
||||||
ret:-EOF
|
ret:-EOF
|
||||||
ret: 0 st: 0 flags:1 ts: 1.565850
|
ret: 0 st: 0 flags:1 ts: 1.565850
|
||||||
ret: 0 st: 0 flags:1 dts: 1.565850 pts: 1.565850 pos: 34527 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.565850 pts: 1.565850 pos: 34527 size: 882
|
||||||
ret: 0 st:-1 flags:0 ts: 0.460008
|
ret: 0 st:-1 flags:0 ts: 0.460008
|
||||||
ret: 0 st: 0 flags:1 dts: 0.460000 pts: 0.460000 pos: 10143 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.460000 pts: 0.460000 pos: 10143 size: 882
|
||||||
ret: 0 st:-1 flags:1 ts:-0.645825
|
ret: 0 st:-1 flags:1 ts:-0.645825
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
|
@ -1,53 +1,53 @@
|
|||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st:-1 flags:0 ts:-1.000000
|
ret: 0 st:-1 flags:0 ts:-1.000000
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st:-1 flags:1 ts: 1.894167
|
ret: 0 st:-1 flags:1 ts: 1.894167
|
||||||
ret: 0 st: 0 flags:1 dts: 1.894150 pts: 1.894150 pos: 41766 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.894150 pts: 1.894150 pos: 41766 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts: 0.788345
|
ret: 0 st: 0 flags:0 ts: 0.788345
|
||||||
ret: 0 st: 0 flags:1 dts: 0.788345 pts: 0.788345 pos: 17383 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.788345 pts: 0.788345 pos: 17383 size: 882
|
||||||
ret: 0 st: 0 flags:1 ts:-0.317506
|
ret: 0 st: 0 flags:1 ts:-0.317506
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st:-1 flags:0 ts: 2.576668
|
ret: 0 st:-1 flags:0 ts: 2.576668
|
||||||
ret:-EOF
|
ret:-EOF
|
||||||
ret: 0 st:-1 flags:1 ts: 1.470835
|
ret: 0 st:-1 flags:1 ts: 1.470835
|
||||||
ret: 0 st: 0 flags:1 dts: 1.470839 pts: 1.470839 pos: 32432 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.470839 pts: 1.470839 pos: 32432 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts: 0.364989
|
ret: 0 st: 0 flags:0 ts: 0.364989
|
||||||
ret: 0 st: 0 flags:1 dts: 0.364989 pts: 0.364989 pos: 8048 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.364989 pts: 0.364989 pos: 8048 size: 882
|
||||||
ret: 0 st: 0 flags:1 ts:-0.740816
|
ret: 0 st: 0 flags:1 ts:-0.740816
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st:-1 flags:0 ts: 2.153336
|
ret: 0 st:-1 flags:0 ts: 2.153336
|
||||||
ret:-EOF
|
ret:-EOF
|
||||||
ret: 0 st:-1 flags:1 ts: 1.047503
|
ret: 0 st:-1 flags:1 ts: 1.047503
|
||||||
ret: 0 st: 0 flags:1 dts: 1.047483 pts: 1.047483 pos: 23097 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.047483 pts: 1.047483 pos: 23097 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts:-0.058322
|
ret: 0 st: 0 flags:0 ts:-0.058322
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st: 0 flags:1 ts: 2.835828
|
ret: 0 st: 0 flags:1 ts: 2.835828
|
||||||
ret:-EOF
|
ret:-EOF
|
||||||
ret: 0 st:-1 flags:0 ts: 1.730004
|
ret: 0 st:-1 flags:0 ts: 1.730004
|
||||||
ret: 0 st: 0 flags:1 dts: 1.730023 pts: 1.730023 pos: 38147 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.730023 pts: 1.730023 pos: 38147 size: 882
|
||||||
ret: 0 st:-1 flags:1 ts: 0.624171
|
ret: 0 st:-1 flags:1 ts: 0.624171
|
||||||
ret: 0 st: 0 flags:1 dts: 0.624172 pts: 0.624172 pos: 13763 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.624172 pts: 0.624172 pos: 13763 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts:-0.481678
|
ret: 0 st: 0 flags:0 ts:-0.481678
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st: 0 flags:1 ts: 2.412517
|
ret: 0 st: 0 flags:1 ts: 2.412517
|
||||||
ret:-EOF
|
ret:-EOF
|
||||||
ret: 0 st:-1 flags:0 ts: 1.306672
|
ret: 0 st:-1 flags:0 ts: 1.306672
|
||||||
ret: 0 st: 0 flags:1 dts: 1.306667 pts: 1.306667 pos: 28812 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.306667 pts: 1.306667 pos: 28812 size: 882
|
||||||
ret: 0 st:-1 flags:1 ts: 0.200839
|
ret: 0 st:-1 flags:1 ts: 0.200839
|
||||||
ret: 0 st: 0 flags:1 dts: 0.200816 pts: 0.200816 pos: 4428 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.200816 pts: 0.200816 pos: 4428 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts:-0.904989
|
ret: 0 st: 0 flags:0 ts:-0.904989
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st: 0 flags:1 ts: 1.989161
|
ret: 0 st: 0 flags:1 ts: 1.989161
|
||||||
ret: 0 st: 0 flags:1 dts: 1.989161 pts: 1.989161 pos: 43861 size: 239
|
ret: 0 st: 0 flags:1 dts: 1.989161 pts: 1.989161 pos: 43861 size: 239
|
||||||
ret: 0 st:-1 flags:0 ts: 0.883340
|
ret: 0 st:-1 flags:0 ts: 0.883340
|
||||||
ret: 0 st: 0 flags:1 dts: 0.883356 pts: 0.883356 pos: 19478 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.883356 pts: 0.883356 pos: 19478 size: 882
|
||||||
ret: 0 st:-1 flags:1 ts:-0.222493
|
ret: 0 st:-1 flags:1 ts:-0.222493
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
ret: 0 st: 0 flags:0 ts: 2.671655
|
ret: 0 st: 0 flags:0 ts: 2.671655
|
||||||
ret:-EOF
|
ret:-EOF
|
||||||
ret: 0 st: 0 flags:1 ts: 1.565850
|
ret: 0 st: 0 flags:1 ts: 1.565850
|
||||||
ret: 0 st: 0 flags:1 dts: 1.565850 pts: 1.565850 pos: 34527 size: 1024
|
ret: 0 st: 0 flags:1 dts: 1.565850 pts: 1.565850 pos: 34527 size: 882
|
||||||
ret: 0 st:-1 flags:0 ts: 0.460008
|
ret: 0 st:-1 flags:0 ts: 0.460008
|
||||||
ret: 0 st: 0 flags:1 dts: 0.460000 pts: 0.460000 pos: 10143 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.460000 pts: 0.460000 pos: 10143 size: 882
|
||||||
ret: 0 st:-1 flags:1 ts:-0.645825
|
ret: 0 st:-1 flags:1 ts:-0.645825
|
||||||
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 1024
|
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 0 size: 882
|
||||||
|
Loading…
Reference in New Issue
Block a user