globalheaders (matroska): reorganize refcounting for readability

This commit is contained in:
Jaroslav Kysela 2014-09-17 14:52:56 +02:00
parent a7f80d2a8e
commit 6df75e847a
2 changed files with 7 additions and 6 deletions

View file

@ -236,6 +236,5 @@ avc_convert_pkt(th_pkt_t *src)
pktbuf_len(src->pkt_payload));
pkt->pkt_payload = pktbuf_make(payload.sb_data, payload.sb_ptr);
pkt_ref_dec(src);
return pkt;
}

View file

@ -172,6 +172,7 @@ convertpkt(streaming_start_component_t *ssc, th_pkt_t *pkt)
return avc_convert_pkt(pkt);
default:
pkt_ref_inc(pkt);
return pkt;
}
}
@ -217,10 +218,9 @@ gh_hold(globalheaders_t *gh, streaming_message_t *sm)
apply_header(ssc, pkt);
pr = pktref_create(pkt);
TAILQ_INSERT_TAIL(&gh->gh_holdq, pr, pr_link);
pktref_enqueue(&gh->gh_holdq, pkt);
free(sm);
streaming_msg_free(sm);
if(!headers_complete(gh, gh_queue_delay(gh)))
break;
@ -273,7 +273,7 @@ gh_hold(globalheaders_t *gh, streaming_message_t *sm)
static void
gh_pass(globalheaders_t *gh, streaming_message_t *sm)
{
th_pkt_t *pkt;
th_pkt_t *pkt, *pkt2;
streaming_start_component_t *ssc;
switch(sm->sm_type) {
@ -306,8 +306,10 @@ gh_pass(globalheaders_t *gh, streaming_message_t *sm)
pkt = sm->sm_data;
ssc = streaming_start_component_find_by_index(gh->gh_ss,
pkt->pkt_componentindex);
sm->sm_data = convertpkt(ssc, pkt);
sm->sm_data = pkt2 = convertpkt(ssc, pkt);
streaming_target_deliver2(gh->gh_output, sm);
if (pkt == pkt2)
pkt_ref_dec(pkt);
break;
}
}