TimeFilter *timefilter;
int last_period;
+ int wallclock;
} PulseData;
attr.fragsize = pd->fragment_size;
- if (strcmp(s->filename, "default"))
+ if (s->filename[0] != '\0' && strcmp(s->filename, "default"))
device = s->filename;
if (!(pd->mainloop = pa_threaded_mainloop_new())) {
dts += latency;
} else
dts -= latency;
- pkt->pts = ff_timefilter_update(pd->timefilter, dts, pd->last_period);
+ if (pd->wallclock)
+ pkt->pts = ff_timefilter_update(pd->timefilter, dts, pd->last_period);
pd->last_period = frame_duration;
} else {
{ "channels", "set number of audio channels", OFFSET(channels), AV_OPT_TYPE_INT, {.i64 = 2}, 1, INT_MAX, D },
{ "frame_size", "set number of bytes per frame", OFFSET(frame_size), AV_OPT_TYPE_INT, {.i64 = 1024}, 1, INT_MAX, D },
{ "fragment_size", "set 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 = 1}, -1, 1, D },
{ NULL },
};