Пример #1
0
        /// <summary>
        /// Helper function to revive the player pipeline after add/remove operations
        /// </summary>
        /// <param name="pad">
        /// A <see cref="IntPtr"/> referencing the pad that might have been blocked
        /// </param>
        /// <param name="blocked">
        /// A <see cref="System.Boolean"/> indicating whether the pad was blocked
        /// </param>
        /// <param name="new_pad">
        /// A <see cref="IntPtr"/> referencing the new (ghost) pad that waits for an event or Zero for removed bins
        /// </param>
        public PadProbeReturn AddRemoveBinDone(IntPtr pad, IntPtr probe_info, IntPtr new_pad)
        {
            IntPtr segment_event;

            if (new_pad == IntPtr.Zero)
            {
                return(PadProbeReturn.GST_PAD_PROBE_OK);
            }

            // send a very unimaginative new segment through the new pad
            segment_event = Marshaller.CreateSegmentEvent();
            new Pad(new_pad).SendEvent(segment_event);
            return(PadProbeReturn.GST_PAD_PROBE_OK);
        }