Skip to content
Snippets Groups Projects
Commit 4cbc4560 authored by Julian Rother's avatar Julian Rother
Browse files

transcode: Ping api at least every 30 seconds

parent 568ea33a
No related branches found
No related tags found
No related merge requests found
#include <stdio.h>
#include <unistd.h>
#include <time.h>
#include <libavutil/opt.h>
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
......@@ -244,6 +245,22 @@ void connect_pads(AVFilterInOut **ins, AVFilterInOut **outs)
}
}
int checktime(time_t min)
{
static struct timespec prev = {};
time_t delta;
struct timespec t;
clock_gettime(CLOCK_MONOTONIC, &t);
if (t.tv_sec < prev.tv_sec)
delta = min;
else
delta = t.tv_sec - prev.tv_sec;
if (delta < min)
return 1;
memcpy(&prev, &t, sizeof(prev));
return 0;
}
int main(int argc, char *argv[])
{
int err, i, progress, _progress;
......@@ -327,7 +344,7 @@ int main(int argc, char *argv[])
{
i = pkt.stream_index;
_progress = av_rescale_q(pkt.pts, demux->streams[i]->time_base, AV_TIME_BASE_Q)*100/demux->duration;
if (_progress > progress)
if (_progress > progress || !checktime(30))
{
ping_job(jobid, "running", "{\"progress\": %i, \"log\": \"%s\"}", _progress,
jescape(get_avlogbuf()));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment