mpegtsmux: header cleanups and clarifications

This commit is contained in:
Mark Nauwelaerts 2012-06-04 16:24:05 +02:00 committed by Sebastian Dröge
parent 59627a3e5d
commit 8cb22ffeaa

View file

@ -133,25 +133,31 @@ struct MpegTsMux {
TsMux *tsmux; TsMux *tsmux;
TsMuxProgram *programs[MAX_PROG_NUMBER]; TsMuxProgram *programs[MAX_PROG_NUMBER];
GstStructure *prog_map;
gboolean first; /* properties */
GstFlowReturn last_flow_ret;
GstAdapter *adapter;
gint64 previous_pcr;
gboolean m2ts_mode; gboolean m2ts_mode;
gboolean first_pcr; GstStructure *prog_map;
guint pat_interval; guint pat_interval;
guint pmt_interval; guint pmt_interval;
GstClockTime last_ts; /* state */
gboolean is_delta; gboolean first;
GList *streamheader;
gboolean streamheader_sent;
GstClockTime pending_key_unit_ts; GstClockTime pending_key_unit_ts;
GstEvent *force_key_unit_event; GstEvent *force_key_unit_event;
/* write callback handling/state */
GstFlowReturn last_flow_ret;
GList *streamheader;
gboolean streamheader_sent;
gboolean is_delta;
GstClockTime last_ts;
/* m2ts specific */
gboolean first_pcr;
gint64 previous_pcr;
GstAdapter *adapter;
/* output buffer aggregation */
GstBuffer *out_buffer; GstBuffer *out_buffer;
gint out_offset; gint out_offset;
gint last_size; gint last_size;
@ -164,27 +170,36 @@ struct MpegTsMuxClass {
#define MPEG_TS_PAD_DATA(data) ((MpegTsPadData *)(data)) #define MPEG_TS_PAD_DATA(data) ((MpegTsPadData *)(data))
struct MpegTsPadData { struct MpegTsPadData {
GstCollectData2 collect; /* Parent */ /* parent */
GstCollectData2 collect;
gint pid; gint pid;
TsMuxStream *stream; TsMuxStream *stream;
GstBuffer *queued_buf; /* Currently pulled buffer */ /* currently pulled buffer */
GstClockTime cur_ts; /* Adjusted TS for the pulled buffer */ GstBuffer *queued_buf;
GstClockTime last_ts; /* Most recent valid TS for this stream */ /* adjusted TS for the pulled buffer */
GstClockTime cur_ts;
/* most recent valid TS for this stream */
GstClockTime last_ts;
GstBuffer * codec_data; /* Optional codec data available in the caps */ /* optional codec data available in the caps */
GstBuffer *codec_data;
gpointer prepare_data; /* Opaque data pointer to a structure used by the /* Opaque data pointer to a structure used by the prepare function */
prepare function */ gpointer prepare_data;
MpegTsPadDataPrepareFunction prepare_func; /* Handler to prepare input data */ /* handler to prepare input data */
MpegTsPadDataFreePrepareDataFunction free_func; /* Handler to free the private data */ MpegTsPadDataPrepareFunction prepare_func;
/* handler to free the private data */
MpegTsPadDataFreePrepareDataFunction free_func;
gboolean eos; gboolean eos;
gint prog_id; /* The program id to which it is attached to (not program pid) */ /* program id == idx to which it is attached to (not program pid) */
TsMuxProgram *prog; /* The program to which this stream belongs to */ gint prog_id;
/* program this stream belongs to == mux->programs[prog_id] */
TsMuxProgram *prog;
}; };
GType mpegtsmux_get_type (void); GType mpegtsmux_get_type (void);