You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
media: dvb: update buffer mmaped flags and frame counter
Now that we have support for a buffer counter and for error flags, update them at DMX_DQBUF. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
+16
-5
@@ -117,7 +117,7 @@ struct dmx_ts_feed {
|
||||
* specified by @filter_value that will be used on the filter
|
||||
* match logic.
|
||||
* @filter_mode: Contains a 16 bytes (128 bits) filter mode.
|
||||
* @parent: Pointer to struct dmx_section_feed.
|
||||
* @parent: Back-pointer to struct dmx_section_feed.
|
||||
* @priv: Pointer to private data of the API client.
|
||||
*
|
||||
*
|
||||
@@ -130,8 +130,9 @@ struct dmx_section_filter {
|
||||
u8 filter_value[DMX_MAX_FILTER_SIZE];
|
||||
u8 filter_mask[DMX_MAX_FILTER_SIZE];
|
||||
u8 filter_mode[DMX_MAX_FILTER_SIZE];
|
||||
struct dmx_section_feed *parent; /* Back-pointer */
|
||||
void *priv; /* Pointer to private data of the API client */
|
||||
struct dmx_section_feed *parent;
|
||||
|
||||
void *priv;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -193,6 +194,10 @@ struct dmx_section_feed {
|
||||
* @buffer2: Pointer to the tail of the filtered TS packets, or NULL.
|
||||
* @buffer2_length: Length of the TS data in buffer2.
|
||||
* @source: Indicates which TS feed is the source of the callback.
|
||||
* @buffer_flags: Address where buffer flags are stored. Those are
|
||||
* used to report discontinuity users via DVB
|
||||
* memory mapped API, as defined by
|
||||
* &enum dmx_buffer_flags.
|
||||
*
|
||||
* This function callback prototype, provided by the client of the demux API,
|
||||
* is called from the demux code. The function is only called when filtering
|
||||
@@ -245,7 +250,8 @@ typedef int (*dmx_ts_cb)(const u8 *buffer1,
|
||||
size_t buffer1_length,
|
||||
const u8 *buffer2,
|
||||
size_t buffer2_length,
|
||||
struct dmx_ts_feed *source);
|
||||
struct dmx_ts_feed *source,
|
||||
u32 *buffer_flags);
|
||||
|
||||
/**
|
||||
* typedef dmx_section_cb - DVB demux TS filter callback function prototype
|
||||
@@ -261,6 +267,10 @@ typedef int (*dmx_ts_cb)(const u8 *buffer1,
|
||||
* including headers and CRC.
|
||||
* @source: Indicates which section feed is the source of the
|
||||
* callback.
|
||||
* @buffer_flags: Address where buffer flags are stored. Those are
|
||||
* used to report discontinuity users via DVB
|
||||
* memory mapped API, as defined by
|
||||
* &enum dmx_buffer_flags.
|
||||
*
|
||||
* This function callback prototype, provided by the client of the demux API,
|
||||
* is called from the demux code. The function is only called when
|
||||
@@ -286,7 +296,8 @@ typedef int (*dmx_section_cb)(const u8 *buffer1,
|
||||
size_t buffer1_len,
|
||||
const u8 *buffer2,
|
||||
size_t buffer2_len,
|
||||
struct dmx_section_filter *source);
|
||||
struct dmx_section_filter *source,
|
||||
u32 *buffer_flags);
|
||||
|
||||
/*
|
||||
* DVB Front-End
|
||||
|
||||
@@ -115,6 +115,8 @@ struct dvb_demux_filter {
|
||||
* @pid: PID to be filtered.
|
||||
* @timeout: feed timeout.
|
||||
* @filter: pointer to &struct dvb_demux_filter.
|
||||
* @buffer_flags: Buffer flags used to report discontinuity users via DVB
|
||||
* memory mapped API, as defined by &enum dmx_buffer_flags.
|
||||
* @ts_type: type of TS, as defined by &enum ts_filter_type.
|
||||
* @pes_type: type of PES, as defined by &enum dmx_ts_pes.
|
||||
* @cc: MPEG-TS packet continuity counter
|
||||
@@ -145,6 +147,8 @@ struct dvb_demux_feed {
|
||||
ktime_t timeout;
|
||||
struct dvb_demux_filter *filter;
|
||||
|
||||
u32 buffer_flags;
|
||||
|
||||
enum ts_filter_type ts_type;
|
||||
enum dmx_ts_pes pes_type;
|
||||
|
||||
|
||||
+16
-2
@@ -85,6 +85,12 @@ struct dvb_buffer {
|
||||
* @nonblocking:
|
||||
* If different than zero, device is operating on non-blocking
|
||||
* mode.
|
||||
* @flags: buffer flags as defined by &enum dmx_buffer_flags.
|
||||
* Filled only at &DMX_DQBUF. &DMX_QBUF should zero this field.
|
||||
* @count: monotonic counter for filled buffers. Helps to identify
|
||||
* data stream loses. Filled only at &DMX_DQBUF. &DMX_QBUF should
|
||||
* zero this field.
|
||||
*
|
||||
* @name: name of the device type. Currently, it can either be
|
||||
* "dvr" or "demux_filter".
|
||||
*/
|
||||
@@ -100,6 +106,10 @@ struct dvb_vb2_ctx {
|
||||
int buf_siz;
|
||||
int buf_cnt;
|
||||
int nonblocking;
|
||||
|
||||
enum dmx_buffer_flags flags;
|
||||
u32 count;
|
||||
|
||||
char name[DVB_VB2_NAME_MAX + 1];
|
||||
};
|
||||
|
||||
@@ -114,7 +124,7 @@ static inline int dvb_vb2_release(struct dvb_vb2_ctx *ctx)
|
||||
return 0;
|
||||
};
|
||||
#define dvb_vb2_is_streaming(ctx) (0)
|
||||
#define dvb_vb2_fill_buffer(ctx, file, wait) (0)
|
||||
#define dvb_vb2_fill_buffer(ctx, file, wait, flags) (0)
|
||||
|
||||
static inline __poll_t dvb_vb2_poll(struct dvb_vb2_ctx *ctx,
|
||||
struct file *file,
|
||||
@@ -153,9 +163,13 @@ int dvb_vb2_is_streaming(struct dvb_vb2_ctx *ctx);
|
||||
* @ctx: control struct for VB2 handler
|
||||
* @src: place where the data is stored
|
||||
* @len: number of bytes to be copied from @src
|
||||
* @buffer_flags:
|
||||
* pointer to buffer flags as defined by &enum dmx_buffer_flags.
|
||||
* can be NULL.
|
||||
*/
|
||||
int dvb_vb2_fill_buffer(struct dvb_vb2_ctx *ctx,
|
||||
const unsigned char *src, int len);
|
||||
const unsigned char *src, int len,
|
||||
enum dmx_buffer_flags *buffer_flags);
|
||||
|
||||
/**
|
||||
* dvb_vb2_poll - Wrapper to vb2_core_streamon() for Digital TV
|
||||
|
||||
Reference in New Issue
Block a user