<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[SmoothVideo Project — Результаты статического анализа]]></title>
		<link>https://www.svp-team.com/forum/viewtopic.php?id=920</link>
		<atom:link href="https://www.svp-team.com/forum/extern.php?action=feed&amp;tid=920&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Результаты статического анализа.]]></description>
		<lastBuildDate>Mon, 24 Sep 2012 14:24:43 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Результаты статического анализа]]></title>
			<link>https://www.svp-team.com/forum/viewtopic.php?pid=24854#p24854</link>
			<description><![CDATA[<p><div class="offtop"><strong>LordMerlin</strong><br /><em>Человек действительно хорошее дело длает</em><br />где?&nbsp; <img src="https://www.svp-team.com/forum/img/smilies/hmm.png" width="15" height="15" alt="hmm" /> <br />с моей т.з. человек делает совершенно бесполезные действия (это про эту тему), причем не разобравшись в сути предмета (это про память)</div></p>]]></description>
			<author><![CDATA[null@example.com (Chainik)]]></author>
			<pubDate>Mon, 24 Sep 2012 14:24:43 +0000</pubDate>
			<guid>https://www.svp-team.com/forum/viewtopic.php?pid=24854#p24854</guid>
		</item>
		<item>
			<title><![CDATA[Re: Результаты статического анализа]]></title>
			<link>https://www.svp-team.com/forum/viewtopic.php?pid=24853#p24853</link>
			<description><![CDATA[<p>Ну ребят, как то неспортивно получается. Человек действительно хорошее дело длает а вы его футболите.<br />И кстати, раз говорите что работы по библиотекам прекращены давно, то почему бы не поступить как настоящие джедаи. Искать ошибки и отправлять разрабам, а смим тем временем сделать свой форк и исправлять его и использовать в новых версиях СВП, и если разрабы таки примут изменения, то тогда снова обновляем свой форк на последнюю версию и продолжаем пилить паралельно.</p>]]></description>
			<author><![CDATA[null@example.com (LordMerlin)]]></author>
			<pubDate>Mon, 24 Sep 2012 11:18:41 +0000</pubDate>
			<guid>https://www.svp-team.com/forum/viewtopic.php?pid=24853#p24853</guid>
		</item>
		<item>
			<title><![CDATA[Re: Результаты статического анализа]]></title>
			<link>https://www.svp-team.com/forum/viewtopic.php?pid=24830#p24830</link>
			<description><![CDATA[<p><div class="offtop">Это не мой код, но проблем не было&nbsp; <img src="https://www.svp-team.com/forum/img/smilies/big_smile.png" width="15" height="15" alt="big_smile" /> </p><p>А про ошибки в jsoncpp логично писать разработчикам jsoncpp</div></p>]]></description>
			<author><![CDATA[null@example.com (Chainik)]]></author>
			<pubDate>Sat, 22 Sep 2012 13:15:09 +0000</pubDate>
			<guid>https://www.svp-team.com/forum/viewtopic.php?pid=24830#p24830</guid>
		</item>
		<item>
			<title><![CDATA[Re: Результаты статического анализа]]></title>
			<link>https://www.svp-team.com/forum/viewtopic.php?pid=24829#p24829</link>
			<description><![CDATA[<p><strong>Chainik</strong><br /><em>Типичная ошибка оперирования с IEEE754 double<br />fGamma - не результат расчета, а входной параметр, поэтому прямое сравнение вполне допустимо wink</em><br />И да и нет&nbsp; <img src="https://www.svp-team.com/forum/img/smilies/wink.png" width="15" height="15" alt="wink" />&nbsp; все зависит от компилятора или, если быть точным, от оптимизатора. Если оптимизатор генерирует код сравнения величин как восьмибайтовые блоки памяти, то нам повезло, а вот если будет код сравнения через FPU, то запросто могут вылезти косяки (при сравнении с нулем возможна нормализация операндов, при сохранении в стеке FPU могут появится погрешности) <img src="https://www.svp-team.com/forum/img/smilies/wink.png" width="15" height="15" alt="wink" /></p>]]></description>
			<author><![CDATA[null@example.com (yartat)]]></author>
			<pubDate>Sat, 22 Sep 2012 13:11:34 +0000</pubDate>
			<guid>https://www.svp-team.com/forum/viewtopic.php?pid=24829#p24829</guid>
		</item>
		<item>
			<title><![CDATA[Re: Результаты статического анализа]]></title>
			<link>https://www.svp-team.com/forum/viewtopic.php?pid=24828#p24828</link>
			<description><![CDATA[<p>Проект jsoncpp.<br />Файл json_reader.cpp строки 588-589<br /></p><div class="codebox"><pre><code>      bool badTokenType = ( token.type_ == tokenArraySeparator  &amp;&amp;
                            token.type_ == tokenArrayEnd );</code></pre></div><p>Скорее всего нужно заменить на <br /></p><div class="codebox"><pre><code>      bool badTokenType = ( token.type_ == tokenArraySeparator  ||
                            token.type_ == tokenArrayEnd );</code></pre></div><p>Проект svpflow1.<br />Файл MVSuper.cpp стока 76<br /></p><div class="codebox"><pre><code>    if(yRatioUV==2 &amp;&amp; vi.height&amp;1) vi.height++; // even</code></pre></div><p>yRatioUV всегда будет 2</p><p>Обратите внимание на возможное переполнение в PlaneOfBlocks::SearchMVs_common файл PlaneOfBlocks.cpp строки 274<br /></p><div class="codebox"><pre><code>    if(mode) lambda = int(min(lambda/pow(plevel,levelsCount-nLevel-1)/(nPel*nPel),INT_MAX/100.0));</code></pre></div><p>PS:&nbsp; в первом посте я анализировал MVTools2 2.5.11.9 SVP edition, исходники брал с страницы загрузки на wiki. Насколько я вижу mvtools2 используется в SVPMark</p>]]></description>
			<author><![CDATA[null@example.com (yartat)]]></author>
			<pubDate>Sat, 22 Sep 2012 12:39:37 +0000</pubDate>
			<guid>https://www.svp-team.com/forum/viewtopic.php?pid=24828#p24828</guid>
		</item>
		<item>
			<title><![CDATA[Re: Результаты статического анализа]]></title>
			<link>https://www.svp-team.com/forum/viewtopic.php?pid=24825#p24825</link>
			<description><![CDATA[<p>Эту бы энергию да в мирных целях&nbsp; <img src="https://www.svp-team.com/forum/img/smilies/hmm.png" width="15" height="15" alt="hmm" /> <br />Результаты работы следует направлять <a href="http://avisynth.org.ru/">куда-то туда</a>. <br />MVTools к SVP отношения не имеет уже достаточно давно.</p><p>Даже не касаясь этого, списочек слабоват, там на порядки больше интересного&nbsp; <img src="https://www.svp-team.com/forum/img/smilies/big_smile.png" width="15" height="15" alt="big_smile" /> </p><p><div class="offtop"><em>Типичная ошибка оперирования с IEEE754 double</em><br />fGamma - не результат расчета, а входной параметр, поэтому прямое сравнение вполне допустимо <img src="https://www.svp-team.com/forum/img/smilies/wink.png" width="15" height="15" alt="wink" /></div></p>]]></description>
			<author><![CDATA[null@example.com (Chainik)]]></author>
			<pubDate>Sat, 22 Sep 2012 11:33:12 +0000</pubDate>
			<guid>https://www.svp-team.com/forum/viewtopic.php?pid=24825#p24825</guid>
		</item>
		<item>
			<title><![CDATA[Результаты статического анализа]]></title>
			<link>https://www.svp-team.com/forum/viewtopic.php?pid=24824#p24824</link>
			<description><![CDATA[<p>Провел статический анализ с помощью PVS<br />Для проекта mvtools2:<br />файл MVBlockFps.cpp в конструкторе MVBlockFps строка 40-41<br /></p><div class="codebox"><pre><code>        if (nOverlapX!=0 || nOverlapX!=0)
                env-&gt;ThrowError(&quot;MBlockFps: Overlap must be 0&quot;);  // may be implemented later but some modes are not clear</code></pre></div><p>явно ошибка копи-паста, скорее всего нужно <br /></p><div class="codebox"><pre><code>        if (nOverlapX!=0 || nOverlapY!=0)
                env-&gt;ThrowError(&quot;MBlockFps: Overlap must be 0&quot;);  // may be implemented later but some modes are not clear</code></pre></div><p>Далее набор из однотипных<br /></p><div class="codebox"><pre><code>        DebugPrintf(&quot;Degrain2: get source frame %d clip %d&quot;,n,super);</code></pre></div><p>Для PClip и IClip не перегружены операторы преобразования к int. Либо нужно ввести перегрузку, либо заменить %d на %p<br />файл MVDegrain2.cpp строчки 237, 338, 345, 352, 359; файл MVSuper.cpp строка 157</p><p>Файл MVDepan.cpp строка 711<br /></p><div class="codebox"><pre><code>    int nf = (backward) ? ndest: ndest; // set next frame number as data frame if backward</code></pre></div><p>Ошибка копи-паста, скорее всего нужно так:<br /></p><div class="codebox"><pre><code>    int nf = (backward) ? ndest - 1 : ndest; // set next frame number as data frame if backward</code></pre></div><p>Функция GetAbsolutePelPointer полностью идентична GetAbsolutePointerPel1. Файл mvinterface.h строки 710 и 665.</p><p>Типичная ошибка оперирования с IEEE754 double<br /></p><div class="codebox"><pre><code>        if (fGamma == 1.0)</code></pre></div><p>Рекомендуется заменить на <br /></p><div class="codebox"><pre><code>        if (fabs(fGamma - 1.0) &lt;= 1e-4)</code></pre></div><p>Точность 10^(-4) вполне достаточна.<br />Файлы maskfun.cpp строки 27, 167, 218. Схожее в файле mvdepan.cpp строках 313, 414, 547</p><p>Обратите внимание на возможное переполнение в MVMask::Length файл MVMask.cpp строки 89-97<br /></p><div class="codebox"><pre><code>        double norme = double(v.x * v.x + v.y * v.y) / ( pel * pel);</code></pre></div><p>Прошу не воспринимать этот пост как упрек или что-то подобное. Я лишь хочу, чтобы SVP был быстрым и содержал по возможности меньше ошибок.</p>]]></description>
			<author><![CDATA[null@example.com (yartat)]]></author>
			<pubDate>Sat, 22 Sep 2012 11:26:45 +0000</pubDate>
			<guid>https://www.svp-team.com/forum/viewtopic.php?pid=24824#p24824</guid>
		</item>
	</channel>
</rss>
