History

media: dvb: add continuity error indicators for memory mapped buffers

While userspace can detect discontinuity errors, it is useful to also let Kernelspace reporting discontinuity, as it can help to identify if the data loss happened either at Kernel or userspace side. Update documentation accordingly.

Mauro Carvalho Chehab committed 8 years ago

Commit 9c171cd1 parent 0b234983 files · +49 −7Browse files

Showing the changes to include/uapi/linux (1 of 3 files). Show all

Unified · Split

include/uapi/linux/dvb/dmx.h+35−0
@@ -211,6 +211,32 @@ struct dmx_stc { · 210 unmodified lines
211211 __u64 stc;
212212 };
213213
214+/**
215+ * enum dmx_buffer_flags - DMX memory-mapped buffer flags
216+ *
217+ * @DMX_BUFFER_FLAG_HAD_CRC32_DISCARD:
218+ * Indicates that the Kernel discarded one or more frames due to wrong
219+ * CRC32 checksum.
220+ * @DMX_BUFFER_FLAG_TEI:
221+ * Indicates that the Kernel has detected a Transport Error indicator
222+ * (TEI) on a filtered pid.
223+ * @DMX_BUFFER_PKT_COUNTER_MISMATCH:
224+ * Indicates that the Kernel has detected a packet counter mismatch
225+ * on a filtered pid.
226+ * @DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED:
227+ * Indicates that the Kernel has detected one or more frame discontinuity.
228+ * @DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR:
229+ * Received at least one packet with a frame discontinuity indicator.
230+ */
231+
232+enum dmx_buffer_flags {
233+ DMX_BUFFER_FLAG_HAD_CRC32_DISCARD = 1 << 0,
234+ DMX_BUFFER_FLAG_TEI = 1 << 1,
235+ DMX_BUFFER_PKT_COUNTER_MISMATCH = 1 << 2,
236+ DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED = 1 << 3,
237+ DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR = 1 << 4,
238+};
239+
214240 /**
215241 * struct dmx_buffer - dmx buffer info
216242 *
@@ -220,15 +246,24 @@ struct dmx_stc { · 3 unmodified lines
220246 * offset from the start of the device memory for this plane,
221247 * (or a "cookie" that should be passed to mmap() as offset)
222248 * @length: size in bytes of the buffer
249+ * @flags: bit array of buffer flags as defined by &enum dmx_buffer_flags.
250+ * Filled only at &DMX_DQBUF.
251+ * @count: monotonic counter for filled buffers. Helps to identify
252+ * data stream loses. Filled only at &DMX_DQBUF.
223253 *
224254 * Contains data exchanged by application and driver using one of the streaming
225255 * I/O methods.
256+ *
257+ * Please notice that, for &DMX_QBUF, only @index should be filled.
258+ * On &DMX_DQBUF calls, all fields will be filled by the Kernel.
226259 */
227260 struct dmx_buffer {
228261 __u32 index;
229262 __u32 bytesused;
230263 __u32 offset;
231264 __u32 length;
265+ __u32 flags;
266+ __u32 count;
232267 };
233268
234269 /**