Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea8eee73 authored by Hamad Kadmany's avatar Hamad Kadmany
Browse files

media: dvb: Align recording chunk based on TS packet size



Recording chunk size should be in multiple of TS packet
based on the recording filter's TS packet format.

Change-Id: Ief6ccacb1d33e0b68239cd380b90e1fb6dac5c1a
Signed-off-by: default avatarHamad Kadmany <hkadmany@codeaurora.org>
parent 4411c560
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -3229,6 +3229,7 @@ static int dvb_dmxdev_filter_start(struct dmxdev_filter *filter)
	struct dmxdev_feed *feed;
	void *mem;
	int ret, i;
	size_t tsp_size;

	if (filter->state < DMXDEV_STATE_SET)
		return -EINVAL;
@@ -3371,6 +3372,15 @@ static int dvb_dmxdev_filter_start(struct dmxdev_filter *filter)
			filter->params.pes.rec_chunk_size =
				filter->buffer.size >> 2;

		/* Align rec-chunk based on output format */
		if (filter->dmx_tsp_format == DMX_TSP_FORMAT_188)
			tsp_size = 188;
		else
			tsp_size = 192;

		filter->params.pes.rec_chunk_size /= tsp_size;
		filter->params.pes.rec_chunk_size *= tsp_size;

		if (filter->params.pes.output == DMX_OUT_TS_TAP)
			dmxdev->dvr_output_events.data_read_event_masked =
			 dmxdev->dvr_output_events.event_mask.disable_mask &