Partial revert "htsp: another fix for H264 - headers merge"

This reverts commit 33792bf601.
This commit is contained in:
Jaroslav Kysela 2014-11-19 16:45:35 +01:00
parent 207fcbfb10
commit b70fa32a71

View file

@ -1230,18 +1230,27 @@ parse_h264(service_t *t, elementary_stream_t *st, size_t len,
if (st->es_incomplete)
return 4;
th_pkt_t *pkt = st->es_curpkt;
size_t metalen = 0;
if(pkt != NULL) {
if(st->es_global_data) {
pkt->pkt_meta = pktbuf_make(st->es_global_data,
st->es_global_data_len);
metalen = st->es_global_data_len);
st->es_global_data = NULL;
st->es_global_data_len = 0;
}
pkt->pkt_payload = pktbuf_make(st->es_buf.sb_data,
st->es_buf.sb_ptr - 4);
sbuf_steal_data(&st->es_buf);
if (metalen) {
pkt->pkt_payload = pktbuf_alloc(NULL, metalen + st->es_buf.sb_ptr - 4);
memcpy(pktbuf_ptr(pkt->pkt_payload), pktbuf_ptr(pkt->pkt_meta), metalen);
memcpy(pktbuf_ptr(pkt->pkt_payload) + metalen, st->es_buf.sb_data, st->es_buf.sb_ptr - 4);
sbuf_reset(&st->es_buf, 16000);
} else {
pkt->pkt_payload = pktbuf_make(st->es_buf.sb_data,
st->es_buf.sb_ptr - 4);
sbuf_steal_data(&st->es_buf);
}
parser_deliver(t, st, pkt, st->es_buf.sb_err);
st->es_curpkt = NULL;