//========================================================================== public int libvlc_media_get_tracks_info(IntPtr p_md, out libvlc_media_track_info_t[] tracks) { VerifyAccess(); IntPtr result_buffer; int result = m_libvlc_media_get_tracks_info(p_md, out result_buffer); if (result < 0) { tracks = null; return(result); } IntPtr buffer = result_buffer; tracks = new libvlc_media_track_info_t[result]; for (int i = 0; i < tracks.Length; i++) { tracks[i] = (libvlc_media_track_info_t)Marshal.PtrToStructure(buffer, typeof(libvlc_media_track_info_t)); buffer += Marshal.SizeOf(typeof(libvlc_media_track_info_t)); } libvlc_free(result_buffer); return(result); }
internal MediaTrackInfos(libvlc_media_track_info_t info) { Codec = info.i_codec; Id = info.i_id; TrackType = (MediaTrackTypes)info.i_type; Profile = info.i_profile; Level = info.i_level; AudioChannels = info.audio.i_channels; AudioRate = info.audio.i_rate; VideoHeight = info.video.i_height; VideoWidth = info.video.i_width; }
/// <summary> /// Returns information about tracks retrieved after <see cref="Parse"/> call. /// </summary> /// <returns> /// A <see cref="libvlc_media_track_info_t[]"/> array of tracks. /// </returns> public libvlc_media_track_info_t[] GetTracksInfo() { if (tracksInfo != null && tracksInfo.Length > 0) { libvlc_media_track_info_t[] tracks = new libvlc_media_track_info_t[tracksInfo.Length]; tracksInfo.CopyTo(tracks, 0); return(tracks); } else { return(new libvlc_media_track_info_t[] {}); } }
public static MediaTrackInfo ToMediaInfo(this libvlc_media_track_info_t tInfo) { MediaTrackInfo mti = new MediaTrackInfo(); mti.Channels = tInfo.audio.i_channels; mti.Codec = tInfo.i_codec; mti.Height = tInfo.video.i_width; mti.Id = tInfo.i_id; mti.Level = tInfo.i_level; mti.Profile = tInfo.i_profile; mti.Rate = tInfo.audio.i_rate; mti.Width = tInfo.video.i_width; return(mti); }
//========================================================================== public int libvlc_media_get_tracks_info(IntPtr p_md, out libvlc_media_track_info_t[] tracks) { VerifyAccess(); IntPtr result_buffer; int result = m_libvlc_media_get_tracks_info(p_md, out result_buffer); if(result < 0) { tracks = null; return result; } IntPtr buffer = result_buffer; tracks = new libvlc_media_track_info_t[result]; for(int i = 0; i < tracks.Length; i++) { tracks[i] = (libvlc_media_track_info_t)Marshal.PtrToStructure(buffer, typeof(libvlc_media_track_info_t)); buffer += Marshal.SizeOf(typeof(libvlc_media_track_info_t)); } libvlc_free(result_buffer); return result; }