| @@ -211,6 +211,32 @@ struct dmx_stc { · 210 unmodified lines |
| 211 | 211 | __u64 stc; |
| 212 | 212 | }; |
| 213 | 213 | |
| 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 | + |
| 214 | 240 | /** |
| 215 | 241 | * struct dmx_buffer - dmx buffer info |
| 216 | 242 | * |
| @@ -220,15 +246,24 @@ struct dmx_stc { · 3 unmodified lines |
| 220 | 246 | * offset from the start of the device memory for this plane, |
| 221 | 247 | * (or a "cookie" that should be passed to mmap() as offset) |
| 222 | 248 | * @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. |
| 223 | 253 | * |
| 224 | 254 | * Contains data exchanged by application and driver using one of the streaming |
| 225 | 255 | * 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. |
| 226 | 259 | */ |
| 227 | 260 | struct dmx_buffer { |
| 228 | 261 | __u32 index; |
| 229 | 262 | __u32 bytesused; |
| 230 | 263 | __u32 offset; |
| 231 | 264 | __u32 length; |
| 265 | + __u32 flags; |
| 266 | + __u32 count; |
| 232 | 267 | }; |
| 233 | 268 | |
| 234 | 269 | /** |