Ejemplo n.º 1
0
        public static Mv ClampMvToUmvBorderSb(ref MacroBlockD xd, ref Mv srcMv, int bw, int bh, int ssX, int ssY)
        {
            // If the MV points so far into the UMV border that no visible pixels
            // are used for reconstruction, the subpel part of the MV can be
            // discarded and the MV limited to 16 pixels with equivalent results.
            int spelLeft   = (Constants.Vp9InterpExtend + bw) << SubpelBits;
            int spelRight  = spelLeft - SubpelShifts;
            int spelTop    = (Constants.Vp9InterpExtend + bh) << SubpelBits;
            int spelBottom = spelTop - SubpelShifts;
            Mv  clampedMv  = new Mv()
            {
                Row = (short)(srcMv.Row * (1 << (1 - ssY))),
                Col = (short)(srcMv.Col * (1 << (1 - ssX)))
            };

            Debug.Assert(ssX <= 1);
            Debug.Assert(ssY <= 1);

            clampedMv.ClampMv(
                xd.MbToLeftEdge * (1 << (1 - ssX)) - spelLeft,
                xd.MbToRightEdge * (1 << (1 - ssX)) + spelRight,
                xd.MbToTopEdge * (1 << (1 - ssY)) - spelTop,
                xd.MbToBottomEdge * (1 << (1 - ssY)) + spelBottom);

            return(clampedMv);
        }
Ejemplo n.º 2
0
 private void NewMvCommandExecute(Mv mv)
 {
     if ((mv?.Id).HasValue)
     {
         NewMusicMvCommandExecute(mv.Id);
     }
 }
Ejemplo n.º 3
0
 public void Setup()
 {
     cliente      = new Client();
     commandHelp  = new Help();
     commantTouch = new Touch();
     commandLs    = new Ls();
     commandMove  = new Mv();
     commandCd    = new Cd();
 }
Ejemplo n.º 4
0
 private void MvSelectCommandExecute(Mv obj)
 {
     if (obj?.Id > 0)
     {
         var parmater = new NavigationParameters();
         parmater.Add(IndirectView.IndirectViewModelBase.NavigationIdParmmeterName, obj.Id);
         this._navigationService.RequestNavigate(Settings.Default.RegionName, nameof(MvPlayView), parmater);
     }
 }
        async void ListViewItemTappedAsync(object e)
        {
            var s     = e as ItemTappedEventArgs;
            Mv  mv    = s.Item as Mv;
            var param = new NavigationParameters();

            param.Add("MVid", mv.id);
            await MediaManager.CrossMediaManager.Current.Pause();

            await NavigationService.NavigateAsync("MusicVideoPage", param);
        }
Ejemplo n.º 6
0
        private static Mv MiMvPredQ4(ref ModeInfo mi, int idx)
        {
            Mv res = new Mv()
            {
                Row = (short)RoundMvCompQ4(
                    mi.Bmi[0].Mv[idx].Row + mi.Bmi[1].Mv[idx].Row +
                    mi.Bmi[2].Mv[idx].Row + mi.Bmi[3].Mv[idx].Row),
                Col = (short)RoundMvCompQ4(
                    mi.Bmi[0].Mv[idx].Col + mi.Bmi[1].Mv[idx].Col +
                    mi.Bmi[2].Mv[idx].Col + mi.Bmi[3].Mv[idx].Col)
            };

            return(res);
        }
Ejemplo n.º 7
0
        private static Mv MiMvPredQ2(ref ModeInfo mi, int idx, int block0, int block1)
        {
            Mv res = new Mv()
            {
                Row = (short)RoundMvCompQ2(
                    mi.Bmi[block0].Mv[idx].Row +
                    mi.Bmi[block1].Mv[idx].Row),
                Col = (short)RoundMvCompQ2(
                    mi.Bmi[block0].Mv[idx].Col +
                    mi.Bmi[block1].Mv[idx].Col)
            };

            return(res);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Обработчик нажатия на кнопку сохранения параметров.
        /// Появляется окно выбора директории, затем файл
        /// записывается в выбранное место. Также обрабатываются
        /// исключения, которые могут возникнуть при записи.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bSave_Click(object sender, EventArgs e)
        {
            string path = "";

            if (saveFileInput.ShowDialog()
                == DialogResult.OK)
            {
                path = saveFileInput.FileName;
            }

            try
            {
                File.WriteAllLines(path, new string[]
                                   { N.ToString(), Mu.ToString(), Mv.ToString(), Um.ToString(), Vm.ToString(),
                                     du.ToString(), dv.ToString(), u.ToString(), v.ToString(), a.ToString(),
                                     Tc.ToString(), up1.ToString(), up2.ToString(), vp1.ToString(), vp2.ToString(),
                                     Ap1.ToString(), Ap2.ToString(), gamma.ToString(), _mu.ToString(), H.ToString(),
                                     pq.ToString() });
            }
            catch (FileNotFoundException)
            {
                MessageBox.Show("Файл не существует. " +
                                "Начните заново.");
            }
            catch (IOException)
            {
                MessageBox.Show("Ошибка в работе с файлом." +
                                " Начните заново.");
            }
            catch (UnauthorizedAccessException)
            {
                MessageBox.Show("Ошибка доступа к файлу:" +
                                " нет разрешения на доступ. Начните заново.");
            }
            catch (System.Security.SecurityException)
            {
                MessageBox.Show("Ошибка безопасности при " +
                                "работе с файлом. Начните заново.");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Произошла ошибка: " + ex.Message);
            }
            finally { MessageBox.Show("Работа с файлом окончена."); }
        }
Ejemplo n.º 9
0
        public static Mv AverageSplitMvs(ref MacroBlockDPlane pd, ref ModeInfo mi, int refr, int block)
        {
            int ssIdx = ((pd.SubsamplingX > 0 ? 1 : 0) << 1) | (pd.SubsamplingY > 0 ? 1 : 0);
            Mv  res   = new Mv();

            switch (ssIdx)
            {
            case 0: res = mi.Bmi[block].Mv[refr]; break;

            case 1: res = MiMvPredQ2(ref mi, refr, block, block + 2); break;

            case 2: res = MiMvPredQ2(ref mi, refr, block, block + 1); break;

            case 3: res = MiMvPredQ4(ref mi, refr); break;

            default: Debug.Assert(ssIdx <= 3 && ssIdx >= 0); break;
            }
            return(res);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Обработчик нажатия на кнопку перехода к
        /// дальнейшей работе с данными, происходит
        /// запись файла входных параметров, создание
        /// и открытие новой формы на основе текущей,
        /// сокрытие текущей формы.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bProceed_Click(object sender, EventArgs e)
        {
            try
            {
                File.WriteAllLines("Input.txt", new string[]
                                   { N.ToString(), Mu.ToString(), Mv.ToString(), Um.ToString(), Vm.ToString(),
                                     du.ToString(), dv.ToString(), u.ToString(), v.ToString(), a.ToString(),
                                     Tc.ToString(), up1.ToString(), up2.ToString(), vp1.ToString(), vp2.ToString(),
                                     Ap1.ToString(), Ap2.ToString(), gamma.ToString(), _mu.ToString(), H.ToString(),
                                     pq.ToString() });
            }
            catch (Exception ex)
            {
                MessageBox.Show("Произошла ошибка: " + ex.Message);
            }

            this.Hide();

            new Operations(this, prevForm, funcs, N, Mu, Mv, Um, Vm, du, dv, u, v, a, Tc,
                           up1, up2, vp1, vp2, Ap1, Ap2, gamma, _mu, H, pq).Show();
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Transforms the input point to screen coordinates.
        /// </summary>
        /// <param name="worldPoint">The point to transform, in world coordinates.</param>
        /// <returns>The transformed point, in screen coordinates.</returns>
        public Point WorldToScreen(Point3D worldPoint)
        {
            Point3D p = WS2T2.Transform(S1T1Mp.Transform(Mv.Transform(worldPoint)));

            return(new Point((int)(p.X), (int)(p.Y)));
        }