AudioConverterRef converter;
unsigned long isamples, isamplesiz, omaxpacket, nchannels;
+ int64_t first_pts;
uint64_t samples, ibytes;
Float64 osamplerate;
w->private_data = pv;
pv->job = job;
+ pv->first_pts = AV_NOPTS_VALUE;
// pass the number of channels used into the private work data
pv->nchannels =
}
obuf->size = odesc.mDataByteSize;
- obuf->s.start = 90000LL * pv->samples / pv->osamplerate;
+ obuf->s.start = pv->first_pts + 90000LL * pv->samples / pv->osamplerate;
pv->samples += pv->isamples;
- obuf->s.stop = 90000LL * pv->samples / pv->osamplerate;
+ obuf->s.stop = pv->first_pts + 90000LL * pv->samples / pv->osamplerate;
obuf->s.duration = (double)90000 * pv->isamples / pv->osamplerate;
obuf->s.type = AUDIO_BUF;
obuf->s.frametype = HB_FRAME_AUDIO;
return HB_WORK_DONE;
}
+ if (pv->first_pts == AV_NOPTS_VALUE)
+ {
+ pv->first_pts = in->s.start;
+ }
hb_list_add(pv->list, in);
*buf_out = buf = Encode(w);