Let the muxer deref packets all the time. If there is an error, the packet will be droped.

This commit is contained in:
John Törnblom 2012-10-18 17:42:04 +02:00
parent 0d4c30b7da
commit 77a6f4df8d
4 changed files with 6 additions and 9 deletions

View file

@ -445,8 +445,8 @@ dvr_thread(void *aux)
if(dispatch_clock > de->de_start - (60 * de->de_start_extra)) {
dvr_rec_set_state(de, DVR_RS_RUNNING, 0);
if(!muxer_write_pkt(de->de_mux, sm->sm_data))
sm->sm_data = NULL;
muxer_write_pkt(de->de_mux, sm->sm_data);
sm->sm_data = NULL;
}
break;

View file

@ -899,8 +899,7 @@ mk_mux_write_pkt(mk_mux_t *mkm, struct th_pkt *pkt)
mk_write_frame_i(mkm, t, pkt);
}
if(!mkm->error)
pkt_ref_dec(pkt);
pkt_ref_dec(pkt);
return mkm->error;
}

View file

@ -231,8 +231,7 @@ pass_muxer_write_pkt(muxer_t *m, void *data)
break;
}
if(!pm->pm_error)
pktbuf_ref_dec(pb);
pktbuf_ref_dec(pb);
return pm->pm_error;
}

View file

@ -199,9 +199,8 @@ http_stream_run(http_connection_t *hc, streaming_queue_t *sq,
switch(sm->sm_type) {
case SMT_MPEGTS:
case SMT_PACKET:
if(!muxer_write_pkt(mux, sm->sm_data))
sm->sm_data = NULL;
muxer_write_pkt(mux, sm->sm_data);
sm->sm_data = NULL;
break;
case SMT_START: