typedef struct _MqStreamCtx
{
- gint refcount;
-
GstSplitMuxSink *splitmux;
guint q_overrun_id;
guint sink_pad_block_id;
guint src_pad_block_id;
+ gulong fragment_block_id;
gboolean is_reference;
gboolean flushing;
gboolean in_eos;
gboolean out_eos;
+ gboolean out_eos_async_done;
gboolean need_unblock;
+ gboolean caps_change;
GstSegment in_segment;
GstSegment out_segment;
gboolean send_keyframe_requests;
gchar *threshold_timecode_str;
GstClockTime next_max_tc_time;
+ GstClockTime alignment_threshold;
+
+ gboolean reset_muxer;
GstElement *muxer;
GstElement *sink;
SplitMuxOutputState output_state;
GstClockTimeDiff max_out_running_time;
- GstClockTimeDiff next_max_out_running_time;
- GstClockTimeDiff muxed_out_time;
guint64 muxed_out_bytes;
MqStreamCtx *reference_ctx;
gboolean need_async_start;
gboolean async_pending;
+
+ gboolean use_robust_muxing;
+ gboolean muxer_has_reserved_props;
+
+ gboolean split_now;
+
+ /* Async finalize options */
+ gboolean async_finalize;
+ gchar *muxer_factory;
+ GstStructure *muxer_properties;
+ gchar *sink_factory;
+ GstStructure *sink_properties;
};
struct _GstSplitMuxSinkClass
{
GstBinClass parent_class;
+
+ /* actions */
+ void (*split_now) (GstSplitMuxSink * splitmux);
};
G_END_DECLS