public void AddMediaInfo(MediaInfoWrapper mediaInfo)
            {
                // This method will be called at least one time, for video DVDs it will be called multiple times for the different
                // .ifo files. The first time this method is called, the given media info instance is the "major" instance, i.e.
                // in case of a video DVD, it is the video_ts.ifo file.
                // We will collect most of our interesting attributes by taking the first one which is available. All others will then be
                // ignored. Only for some attributes, all values will be collected.
                for (int i = 0; i < mediaInfo.GetVideoCount(); i++)
                {
                    if (!_ar.HasValue)
                    {
                        _ar = mediaInfo.GetAR(i);
                    }
                    if (!_frameRate.HasValue)
                    {
                        _frameRate = mediaInfo.GetFramerate(i);
                    }
                    if (!_width.HasValue)
                    {
                        _width = mediaInfo.GetWidth(i);
                    }
                    if (!_height.HasValue)
                    {
                        _height = mediaInfo.GetHeight(i);
                    }
                    if (!_playTime.HasValue)
                    {
                        long?time = mediaInfo.GetPlaytime(i);
                        if (time.HasValue && time > 1000)
                        {
                            _playTime = time.Value;
                        }
                    }
                    if (!_vidBitRate.HasValue)
                    {
                        _vidBitRate = mediaInfo.GetVidBitrate(i);
                    }
                    string vidCodec = mediaInfo.GetVidCodec(i);
                    if (!string.IsNullOrEmpty(vidCodec) && !_vidCodecs.Contains(vidCodec))
                    {
                        _vidCodecs.Add(vidCodec);
                    }
                }
                _audioStreamCount = mediaInfo.GetAudioCount();
                for (int i = 0; i < _audioStreamCount; i++)
                {
                    if (!_audBitRate.HasValue)
                    {
                        _audBitRate = mediaInfo.GetAudioBitrate(i);
                    }
                    string audCodec = mediaInfo.GetAudioCodec(i);
                    if (!string.IsNullOrEmpty(audCodec) && !_audCodecs.Contains(audCodec))
                    {
                        _audCodecs.Add(audCodec);
                    }

                    string audLang = mediaInfo.GetAudioLanguage(i);
                    if (!string.IsNullOrEmpty(audLang) && !_audioLanguages.Contains(audLang))
                    {
                        _audioLanguages.Add(audLang);
                    }
                }
            }