MT#55283 handle async errors

Change-Id: I021567bffc75033ae57ea00b5e4956b5e4b28622
pull/2052/head
Richard Fuchs 3 days ago
parent afb9f5bcee
commit 422db0f846

@ -5079,12 +5079,12 @@ codec_cc_state cc_run_async(codec_cc_t *c, const str *data, unsigned long ts, vo
return cc_X_run_async(c, data, ts, async_cb_obj, __cc_run_async);
}
static void cc_X_pkt_callback(codec_cc_t *c, int size, __typeof__(__cc_run_async) run_async) {
static void cc_X_pkt_callback(codec_cc_t *c, ssize_t size, __typeof__(__cc_run_async) run_async) {
AVPacket *pkt = c->avpkt_async;
void *async_cb_obj = c->async_cb_obj;
c->async_cb_obj = NULL;
c->async_callback(pkt, async_cb_obj);
c->async_callback(size >= 0 ? pkt : NULL, async_cb_obj);
pkt->size = 0;
@ -5124,13 +5124,13 @@ static void cc_X_pkt_callback(codec_cc_t *c, int size, __typeof__(__cc_run_async
static void cc_run_callback(void *p, ssize_t size) {
codec_cc_t *c = p;
assert(size > 0); // XXX handle errors XXX handle input frame sizes != 160
AVPacket *pkt = c->avpkt_async;
pkt->size = size;
pkt->duration = c->data_len * 6L; // XXX
pkt->pts = c->ts * 6L; // XXX
if (size >= 0) {
pkt->size = size;
pkt->duration = c->data_len * 6L; // XXX
pkt->pts = c->ts * 6L; // XXX
}
cc_X_pkt_callback(c, size, __cc_run_async);
}

@ -463,7 +463,7 @@ static void *async_init(void *x, void *y, void *z) {
}
static void async_finish(AVPacket *pkt, void *async_cb_obj) {
struct stream *s = async_cb_obj;
{
if (pkt) {
LOCK(&s->lock);
got_packet_pkt(s, pkt);
}

Loading…
Cancel
Save