Exemplo n.º 1
0
        /// <summary>
        /// 获取已经显示的图片数
        /// </summary>
        /// <param name="libvlc_media_player"></param>
        /// <returns></returns>
        private int GetDisplayedPictures(libvlc_media_player_t libvlc_media_player)
        {
            libvlc_media_t       media       = IntPtr.Zero;
            libvlc_media_stats_t media_stats = new libvlc_media_stats_t();

            try
            {
                if (libvlc_media_player == IntPtr.Zero ||
                    libvlc_media_player == null)
                {
                    return(0);
                }

                media = SafeNativeMethods.libvlc_media_player_get_media(libvlc_media_player);
                if (media == IntPtr.Zero || media == null)
                {
                    return(0);
                }

                if (1 == SafeNativeMethods.libvlc_media_get_stats(media, ref media_stats))
                {
                    return(media_stats.i_displayed_pictures);
                }
                else
                {
                    return(0);
                }
            }
            catch (Exception)
            {
                return(0);
            }
        }
Exemplo n.º 2
0
        public static MediaStatistics ToMediaStatistics(this libvlc_media_stats_t stats)
        {
            MediaStatistics ms = new MediaStatistics();

            ms.DecodedAudio       = stats.i_decoded_audio;
            ms.DecodedVideo       = stats.i_decoded_video;
            ms.DemuxBitrate       = stats.f_demux_bitrate;
            ms.DemuxCorrupted     = stats.i_demux_corrupted;
            ms.DemuxDiscontinuity = stats.i_demux_discontinuity;
            ms.DemuxReadBytes     = stats.i_demux_read_bytes;
            ms.DisplayedPictures  = stats.i_displayed_pictures;
            ms.InputBitrate       = stats.f_input_bitrate;
            ms.LostAbuffers       = stats.i_lost_abuffers;
            ms.LostPictures       = stats.i_lost_pictures;
            ms.PlayedAbuffers     = stats.i_played_abuffers;
            ms.ReadBytes          = stats.i_read_bytes;
            ms.SendBitrate        = stats.f_send_bitrate;
            ms.SentBytes          = stats.i_sent_bytes;
            ms.SentPackets        = stats.i_sent_packets;

            return(ms);
        }
Exemplo n.º 3
0
            public static VLCMediaStats GetStats(IVLCObject Object)
            {
                //IntPtr StatsPtr = Transform.StructDefToPtr<libvlc_media_stats_t>();

                var SizeOf = Marshal.SizeOf(typeof(libvlc_media_stats_t));

                var structs = new libvlc_media_stats_t();

                var StatsPtr = Marshal.AllocHGlobal(SizeOf);

                Marshal.StructureToPtr(structs, StatsPtr, false);

                Boolean Success = NativeMethods.libvlc_media_get_stats(Object.Handle, StatsPtr) > 0;

                if (Success)
                {
                    Success = false;

                    libvlc_media_stats_t MediaStats;

                    try
                    {
                        MediaStats = Transform.ToStructure <libvlc_media_stats_t>(StatsPtr);

                        Success = true;
                    }
                    finally
                    {
                        Transform.Free(StatsPtr);
                    }

                    return((Success) ? new VLCMediaStats(MediaStats) : null);
                }

                return(null);
            }
Exemplo n.º 4
0
 internal static extern int libvlc_media_get_stats(libvlc_media_t libvlc_media, ref libvlc_media_stats_t lib_vlc_media_stats);
Exemplo n.º 5
0
 public static extern bool libvlc_media_get_stats(IntPtr libvlc_media_t, ref libvlc_media_stats_t p_stats);
Exemplo n.º 6
0
        internal VLCMediaStats(libvlc_media_stats_t StatsStruct)
        {
            this.stats = StatsStruct;

            Demux = new VLCStatsDemux(StatsStruct);
        }
Exemplo n.º 7
0
 internal VLCStatsDemux(libvlc_media_stats_t StatsStruct)
 {
     this.stats = StatsStruct;
 }