On 23/08/14 20:04, Anton Khirnov wrote:
> 
> On Sat, 23 Aug 2014 19:04:48 +0200, Luca Barbato <[email protected]> wrote:
>> alsa and x11grab use av_gettime() to report timestamps.
>> ---
>>
>> It is not beautiful but there had been enough complaints about that.
>>
>>  libavdevice/pulse.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/libavdevice/pulse.c b/libavdevice/pulse.c
>> index a8e710d..d724964 100644
>> --- a/libavdevice/pulse.c
>> +++ b/libavdevice/pulse.c
>> @@ -31,6 +31,7 @@
>>
>>  #include "libavformat/avformat.h"
>>  #include "libavformat/internal.h"
>> +#include "libavutil/time.h"
>>  #include "libavutil/opt.h"
>>
>>  #define DEFAULT_CODEC_ID AV_NE(AV_CODEC_ID_PCM_S16BE, AV_CODEC_ID_PCM_S16LE)
>> @@ -47,6 +48,7 @@ typedef struct PulseData {
>>      pa_simple *s;
>>      int64_t pts;
>>      int64_t frame_duration;
>> +    int wallclock;
>>  } PulseData;
>>
>>  static pa_sample_format_t codec_id_to_pulse_format(int codec_id) {
>> @@ -141,6 +143,8 @@ static int pulse_read_packet(AVFormatContext *s, 
>> AVPacket *pkt)
>>
>>      if (pd->pts == AV_NOPTS_VALUE) {
>>          pd->pts = -latency;
>> +        if (pd->wallclock)
>> +            pd->pts += av_gettime();
>>      }
>>
>>      pkt->pts = pd->pts;
>> @@ -168,6 +172,7 @@ static const AVOption options[] = {
>>      { "channels",      "number of audio channels",                       
>> OFFSET(channels),      AV_OPT_TYPE_INT,    {.i64 = 2},        1, INT_MAX, D 
>> },
>>      { "frame_size",    "number of bytes per frame",                      
>> OFFSET(frame_size),    AV_OPT_TYPE_INT,    {.i64 = 1024},     1, INT_MAX, D 
>> },
>>      { "fragment_size", "buffering size, affects latency and cpu usage",  
>> OFFSET(fragment_size), AV_OPT_TYPE_INT,    {.i64 = -1},      -1, INT_MAX, D 
>> },
>> +    { "wallclock",     "set the initial pts using the current time",     
>> OFFSET(wallclock),     AV_OPT_TYPE_INT,    {.i64 = 0},       -1, 1, D },
> 
> I'd even enable this by default.

Ok, I'll edit that part, test and push in a while.

Avconv might win a global option to use the reorder opaque to syncronize
multiple sources maybe later.

lu

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to