<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>kimson.name</title>
	<atom:link href="http://kimson.name/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>https://kimson.name/wordpress</link>
	<description>Just  memo pad</description>
	<lastBuildDate>Sat, 24 Mar 2012 14:49:46 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>StartComで無料のSSL証明書を取得してみた2（SSL証明書の取得）</title>
		<link>https://kimson.name/wordpress/archives/175</link>
		<comments>https://kimson.name/wordpress/archives/175#comments</comments>
		<pubDate>Sat, 24 Mar 2012 14:31:30 +0000</pubDate>
		<dc:creator>kimson</dc:creator>
				<category><![CDATA[サーバ]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">https://kimson.name/wordpress/?p=175</guid>
		<description><![CDATA[これ「StartComで無料のSSL証明書を取得してみた１（アカウントの登録まで）」の続きです。 証明書ですが以下の２つがあれば取得できます。 トップレベルドメイン webmasterかpostmasterかhostma &#8230; <a href="https://kimson.name/wordpress/archives/175">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>これ「<a title="StartComで無料のSSL証明書を取得してみた１（アカウントの登録まで）" href="https://kimson.name/wordpress/archives/144">StartComで無料のSSL証明書を取得してみた１（アカウントの登録まで）</a>」の続きです。</p>
<p>証明書ですが以下の２つがあれば取得できます。</p>
<ul>
<li>トップレベルドメイン</li>
<li>webmasterかpostmasterかhostmaster@hostnameなメールアドレス</li>
</ul>
<p>まずドメインの登録。validations wizardでDomain name validationを選択して次へ。</p>
<p><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/domain.png"><img class="alignnone size-large wp-image-177" title="StartCom SSL証明書の取得2-1" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/domain-1024x595.png" alt="StartCom SSL証明書の取得2-1" width="640" height="371" /></a></p>
<p><span id="more-175"></span>ドメイン名を入力。</p>
<p><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/domain2.png"><img class="alignnone size-large wp-image-179" title="StartCom SSL証明書の取得2-2" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/domain2-1024x595.png" alt="StartCom SSL証明書の取得2-2" width="640" height="371" /></a></p>
<p>認証コードを受信するメールアドレスを選択。</p>
<p><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/domain3.png"><img class="alignnone size-large wp-image-180" title="StartCom SSL証明書の取得2-3" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/domain3-1024x595.png" alt="StartCom SSL証明書の取得2-3" width="640" height="371" /></a></p>
<p>後はメールで送られてきた認証コードを入力すればドメインの登録は完了。<br />
本題のSSL証明書を取得します。Certificates Wizardで WebServer SSL/TLS Certificateを選択</p>
<p><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/ssl4.png"><img class="alignnone size-large wp-image-181" title="StartCom SSL証明書の取得2-4" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/ssl4-1024x595.png" alt="StartCom SSL証明書の取得2-4" width="640" height="371" /></a></p>
<p>プライベートキーの作成。プライベートキーのためのパスワードを入力。</p>
<p><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/ssl5.png"><img class="alignnone size-large wp-image-182" title="StartCom SSL証明書の取得2-5" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/ssl5-1024x595.png" alt="StartCom SSL証明書の取得2-5" width="640" height="371" /></a></p>
<p>プライベートキーが出力されるんでコピペしておきます。</p>
<p><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/82cd89bf6e3e7beeac7a6a7e3c296e8a.png"><img class="alignnone size-large wp-image-183" title="StartCom SSL証明書の取得2-6" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/82cd89bf6e3e7beeac7a6a7e3c296e8a-1024x541.png" alt="StartCom SSL証明書の取得2-6" width="640" height="338" /></a></p>
<p>次に証明書を取得するドメインを選択。</p>
<p><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/5bc9fc4d63d4a0ab3f0efe11bd966220.png"><img class="alignnone size-large wp-image-184" title="StartCom SSL証明書の取得2-7" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/5bc9fc4d63d4a0ab3f0efe11bd966220-1024x540.png" alt="StartCom SSL証明書の取得2-7" width="640" height="337" /></a></p>
<p>無料のプランだと１つだけサブドメインを追加できるので適当に入力。</p>
<p><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/a88e5b631e0ef8187e3605a9d1a5a789.png"><img class="alignnone size-large wp-image-185" title="StartCom SSL証明書の取得2-8" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/a88e5b631e0ef8187e3605a9d1a5a789-1024x540.png" alt="StartCom SSL証明書の取得2-8" width="640" height="337" /></a></p>
<p>次に確認が出るので、Continueをクリック。これで証明書が発行されます。</p>
<p><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/935fa1487c9a157f63f7141b92c39790.png"><img class="alignnone size-large wp-image-186" title="StartCom SSL証明書の取得2-9" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/935fa1487c9a157f63f7141b92c39790-1024x539.png" alt="StartCom SSL証明書の取得2-9" width="640" height="336" /></a></p>
<p>あとはサーバで設定すればOKです。なんか思ったより簡単に取得できるもんなんですね。</p>
]]></content:encoded>
			<wfw:commentRss>https://kimson.name/wordpress/archives/175/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>StartComで無料のSSL証明書を取得してみた１（アカウントの登録まで）</title>
		<link>https://kimson.name/wordpress/archives/144</link>
		<comments>https://kimson.name/wordpress/archives/144#comments</comments>
		<pubDate>Fri, 23 Mar 2012 14:48:22 +0000</pubDate>
		<dc:creator>kimson</dc:creator>
				<category><![CDATA[サーバ]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[startcom]]></category>

		<guid isPermaLink="false">https://kimson.name/wordpress/?p=144</guid>
		<description><![CDATA[個人利用なら無料で正規のSSL証明書が取得できるらしいのでやってみました。 http://www.startcom.org/ freeって書いてあります。（図１）ということで右上のControl Panelから登録を始め &#8230; <a href="https://kimson.name/wordpress/archives/144">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>個人利用なら無料で正規のSSL証明書が取得できるらしいのでやってみました。<br />
<a href="http://www.startcom.org/">http://www.startcom.org/</a></p>
<div id="attachment_149" class="wp-caption alignnone" style="width: 650px"><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/11.png"><img class="size-large wp-image-149" title="StartCom SSL証明書の取得１" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/11-1024x595.png" alt="StartCom SSL証明書の取得１" width="640" height="371" /></a><p class="wp-caption-text">図１</p></div>
<p><a href="http://www.startcom.org/"></a><br />
<span id="more-144"></span><br />
freeって書いてあります。（図１）ということで右上の<a href="https://www.startssl.com/?app=12">Control Panel</a>から登録を始めます。<br />
chromeだと違うブラウザ使えと怒られて登録できなかったです。<br />
クライアント証明書を発行してもらった後であればその証明書を使ってchromeでも大丈夫でした。</p>
<div id="attachment_153" class="wp-caption alignnone" style="width: 650px"><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/21.png"><img class="size-large wp-image-153" title="StartCom SSL証明書の取得2" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/21-1024x595.png" alt="StartCom SSL証明書の取得2" width="640" height="371" /></a><p class="wp-caption-text">図２</p></div>
<p>Sign upへ移動します。（図２）</p>
<div id="attachment_154" class="wp-caption alignnone" style="width: 650px"><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/3.png"><img class="size-large wp-image-154" title="StartCom SSL証明書の取得3" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/3-1024x595.png" alt="StartCom SSL証明書の取得3" width="640" height="371" /></a><p class="wp-caption-text">図３</p></div>
<p>適当に入力してContinueを押すとアラートで個人情報はなんたらと出るのでOKをクリック。（図３）<br />
次の画面に移るのにしばらく時間がかかりますが、以下の画面が表示されます。（図４）</p>
<div id="attachment_158" class="wp-caption alignnone" style="width: 650px"><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/cc925323aa7c180495713a9457c14a0b.png"><img class="size-large wp-image-158" title="StartCom SSL証明書の取得4" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/cc925323aa7c180495713a9457c14a0b-1024x594.png" alt="StartCom SSL証明書の取得4" width="640" height="371" /></a><p class="wp-caption-text">図４</p></div>
<p><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/d5d60f813575e85acf0a483a662900981.png"></a>メールで認証コードが送られてきてるのでそれを入力します。（図４）<br />
すると次の画面（見逃した）に移って、しばらくするとコントロールパネルの画面に自動的に戻ります。 「アカウントのリクエストを受け付けたよ」って画面だと思います。<br />
その後リクエストを承認しましたってメールが来るはず。（自分の場合５分くらいで来た。）<br />
メールの文面にあるリンクをクリックして、メールの文面にある認証コードを入力します。（図５）</p>
<div id="attachment_159" class="wp-caption alignnone" style="width: 650px"><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/d5d60f813575e85acf0a483a662900982.png"><img class="size-large wp-image-159" title="StartCom SSL証明書の取得5" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/d5d60f813575e85acf0a483a662900982-1024x595.png" alt="StartCom SSL証明書の取得5" width="640" height="371" /></a><p class="wp-caption-text">図５</p></div>
<p>次はクライアント証明書の作成に移ります。<br />
Webアクセスの確認は「はい」をクリック。鍵のbit長はMediumのままにしました。（図６）</p>
<div id="attachment_162" class="wp-caption alignnone" style="width: 650px"><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/8b52efbf905b3c6f3004b7cf5552ed97.png"><img class="size-large wp-image-162" title="StartCom SSL証明書の取得6" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/8b52efbf905b3c6f3004b7cf5552ed97-1024x594.png" alt="StartCom SSL証明書の取得6" width="640" height="371" /></a><p class="wp-caption-text">図６</p></div>
<p>インストールをクリック。（図７）</p>
<div id="attachment_164" class="wp-caption alignnone" style="width: 650px"><a href="https://kimson.name/wordpress/wp-content/uploads/2012/03/cf3f284917b7d4a4ab7f3c10f322a965.png"><img class="size-large wp-image-164" title="StartCom SSL証明書の取得7" src="https://kimson.name/wordpress/wp-content/uploads/2012/03/cf3f284917b7d4a4ab7f3c10f322a965-1024x594.png" alt="StartCom SSL証明書の取得7" width="640" height="371" /></a><p class="wp-caption-text">図７</p></div>
<p>これでクラインと証明書のインストールが完了で登録自体は終わりです。<br />
とりあえずここまででそのうちSSL証明書の取得も書きます。＞<a title="StartComで無料のSSL証明書を取得してみた2（SSL証明書の取得）" href="https://kimson.name/wordpress/archives/175">StartComで無料のSSL証明書を取得してみた2（SSL証明書の取得）</a></p>
<p>ちなみに取得したクライアント証明書は他のPCで使うためにエクスポート、インポートできます。<br />
IEのツール→インターネットオプション→コンテンツ→証明書<br />
ここに発行者がStartCom Class 1&#8230;&#8230;となっているクライアント証明書があると思うのでエクスポートを行えばOKです。</p>
]]></content:encoded>
			<wfw:commentRss>https://kimson.name/wordpress/archives/144/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>mpeg2-ts : SDT(Service Description Table)の情報を表示</title>
		<link>https://kimson.name/wordpress/archives/132</link>
		<comments>https://kimson.name/wordpress/archives/132#comments</comments>
		<pubDate>Mon, 20 Feb 2012 10:00:51 +0000</pubDate>
		<dc:creator>kimson</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[mpeg2-ts]]></category>
		<category><![CDATA[SDT]]></category>

		<guid isPermaLink="false">http://kimson.name/wordpress/?p=132</guid>
		<description><![CDATA[mpeg2-tsファイルからSDTの情報を（一部）表示するプログラムを書いてみた。 SDTに配置される可能性のある記述子はいくつかあるんだけど、その内で 必須となっているサービス記述子のみを表示します。 表示するといって &#8230; <a href="https://kimson.name/wordpress/archives/132">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>mpeg2-tsファイルからSDTの情報を（一部）表示するプログラムを書いてみた。<br />
SDTに配置される可能性のある記述子はいくつかあるんだけど、その内で<br />
必須となっているサービス記述子のみを表示します。<br />
表示するといってもサービス記述子に含まれる文字列はそのまま、バイト列で<br />
表示するだけです。<br />
いくつかTSファイルを試してみるとSDTにはサービス記述子とロゴ伝送記述子<br />
が多く含まれていたので、ロゴ伝送記述子についても表示できるように改良したい。<br />
<span id="more-132"></span><br />
文字列ですが、８単位符号とやらを使って文字列を符号化しているらしいです。<br />
詳しくは、ARIB STD-B24に書かれています。（<a href="http://www.arib.or.jp/english/html/overview/sb_ej.html">http://www.arib.or.jp/english/html/overview/sb_ej.html</a>）<br />
一応読めばどうやっているのかわかるんですが、これを実装するのがめんどくさい。。。<br />
きっとすでに実装されている方がいるはず！！と思ってググったらおられました。<br />
rplsTOOL(<a title="rplsTOOL" href="http://nek.web.infoseek.co.jp/yaki2fan/bd/rpls.html" target="_blank">http://nek.web.infoseek.co.jp/yaki2fan/bd/rpls.html</a>)<br />
このツールはTSファイルの番組情報や番組内容の情報を編集することができるツールです。<br />
ソースも公開されています。ただwindows専用ソフトみたいです。<br />
個人的にlinuxで動かしたかったので、少し変更して使わせてもらってます。<br />
コードは公開してます。<a href="https://github.com/kimson/tsinfo" target="_blank">https://github.com/kimson/tsinfo</a></p>
<p>それで、今回書いてみたSDTの表示プログラムですが使い方は</p>
<p style="padding-left: 30px;">#gcc displyaSdt.c -o displaySdt<br />
#./displyaSdt test.ts</p>
<div id="gist-1868591" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="cp">#include &lt;stdio.h&gt;</span></div><div class='line' id='LC2'><span class="cp">#include &lt;stdlib.h&gt;</span></div><div class='line' id='LC3'><span class="cp">#include &lt;string.h&gt;</span></div><div class='line' id='LC4'><span class="cp">#include &lt;errno.h&gt;</span></div><div class='line' id='LC5'><br/></div><div class='line' id='LC6'><span class="cp">#define PID_SDT 0x0011</span></div><div class='line' id='LC7'><br/></div><div class='line' id='LC8'><span class="k">typedef</span> <span class="k">struct</span> <span class="n">ServiceDescriptorStructure</span> <span class="p">{</span></div><div class='line' id='LC9'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">descriptor_tag</span><span class="p">;</span></div><div class='line' id='LC10'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">descriptor_length</span><span class="p">;</span></div><div class='line' id='LC11'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">service_type</span><span class="p">;</span></div><div class='line' id='LC12'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">service_provider_name_length</span><span class="p">;</span></div><div class='line' id='LC13'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">*</span><span class="n">service_provider_name</span><span class="p">;</span></div><div class='line' id='LC14'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">service_name_length</span><span class="p">;</span></div><div class='line' id='LC15'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">*</span><span class="n">service_name</span><span class="p">;</span></div><div class='line' id='LC16'>	<span class="k">struct</span> <span class="n">ServiceDescriptorStructure</span> <span class="o">*</span><span class="n">next</span><span class="p">;</span></div><div class='line' id='LC17'><span class="p">}</span><span class="n">ServiceDescriptor</span><span class="p">;</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'><br/></div><div class='line' id='LC20'><span class="k">typedef</span> <span class="k">struct</span> <span class="n">LoopSectionStructure</span> <span class="p">{</span></div><div class='line' id='LC21'>	<span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">service_id</span><span class="p">;</span></div><div class='line' id='LC22'>	<span class="kt">char</span> <span class="n">reserved_future_use</span><span class="p">;</span></div><div class='line' id='LC23'>	<span class="kt">char</span> <span class="n">eit_user_defined_flags</span><span class="p">;</span></div><div class='line' id='LC24'>	<span class="kt">char</span> <span class="n">eit_schedule_flag</span><span class="p">;</span></div><div class='line' id='LC25'>	<span class="kt">char</span> <span class="n">eit_present_following_flag</span><span class="p">;</span></div><div class='line' id='LC26'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">running_status</span><span class="p">;</span></div><div class='line' id='LC27'>	<span class="kt">char</span> <span class="n">free_ca_mode</span><span class="p">;</span></div><div class='line' id='LC28'>	<span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">descriptors_loop_length</span><span class="p">;</span></div><div class='line' id='LC29'>	<span class="n">ServiceDescriptor</span> <span class="o">*</span><span class="n">descriptor</span><span class="p">;</span></div><div class='line' id='LC30'>	<span class="k">struct</span> <span class="n">LoopSectionStructure</span> <span class="o">*</span><span class="n">next</span><span class="p">;</span></div><div class='line' id='LC31'><span class="p">}</span><span class="n">LoopSection</span><span class="p">;</span></div><div class='line' id='LC32'><br/></div><div class='line' id='LC33'><br/></div><div class='line' id='LC34'><span class="k">typedef</span> <span class="k">struct</span> <span class="p">{</span></div><div class='line' id='LC35'>	<span class="kt">char</span> <span class="n">table_id</span><span class="p">;</span></div><div class='line' id='LC36'>	<span class="kt">char</span> <span class="n">section_syntax_indicator</span><span class="p">;</span></div><div class='line' id='LC37'>	<span class="kt">char</span> <span class="n">reserved_future_use</span><span class="p">;</span></div><div class='line' id='LC38'>	<span class="kt">char</span> <span class="n">reserved</span><span class="p">;</span></div><div class='line' id='LC39'>	<span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">section_length</span><span class="p">;</span></div><div class='line' id='LC40'>	<span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">transport_stream_id</span><span class="p">;</span></div><div class='line' id='LC41'>	<span class="kt">char</span> <span class="n">reserved2</span><span class="p">;</span></div><div class='line' id='LC42'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">version_number</span><span class="p">;</span></div><div class='line' id='LC43'>	<span class="kt">char</span> <span class="n">current_next_indicator</span><span class="p">;</span></div><div class='line' id='LC44'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">section_number</span><span class="p">;</span></div><div class='line' id='LC45'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">last_section_number</span><span class="p">;</span></div><div class='line' id='LC46'>	<span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">original_network_id</span><span class="p">;</span></div><div class='line' id='LC47'>	<span class="kt">char</span> <span class="n">reserved_future_use2</span><span class="p">;</span></div><div class='line' id='LC48'>	<span class="n">LoopSection</span> <span class="o">*</span><span class="n">loop</span><span class="p">;</span></div><div class='line' id='LC49'>	<span class="kt">char</span> <span class="n">crc</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span></div><div class='line' id='LC50'><span class="p">}</span><span class="n">ServiceDescriptionTable</span><span class="p">;</span></div><div class='line' id='LC51'><br/></div><div class='line' id='LC52'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">getSectionLength</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span><span class="p">);</span></div><div class='line' id='LC53'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">getPid</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span><span class="p">);</span></div><div class='line' id='LC54'><span class="kt">void</span> <span class="n">printPacket</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span><span class="p">);</span></div><div class='line' id='LC55'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">getTransportStreamId</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span><span class="p">);</span></div><div class='line' id='LC56'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">getOriginalNetworkId</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span><span class="p">);</span></div><div class='line' id='LC57'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">getServiceId</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span><span class="p">);</span></div><div class='line' id='LC58'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">getDescriptorsLoopLength</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span><span class="p">);</span></div><div class='line' id='LC59'><span class="kt">void</span> <span class="n">printSdtStruct</span><span class="p">();</span></div><div class='line' id='LC60'><span class="kt">void</span> <span class="n">printSdt</span><span class="p">(</span><span class="n">ServiceDescriptionTable</span><span class="o">*</span><span class="p">);</span></div><div class='line' id='LC61'><span class="kt">char</span><span class="o">*</span> <span class="n">toB</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="p">,</span> <span class="kt">int</span><span class="p">,</span> <span class="kt">char</span><span class="o">*</span><span class="p">);</span></div><div class='line' id='LC62'><span class="kt">void</span> <span class="o">*</span><span class="n">MyMalloc</span><span class="p">(</span><span class="kt">size_t</span><span class="p">);</span></div><div class='line' id='LC63'><br/></div><div class='line' id='LC64'><span class="n">LoopSection</span> <span class="o">*</span><span class="n">loop_tail</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></div><div class='line' id='LC65'><span class="n">ServiceDescriptor</span> <span class="o">*</span><span class="n">sd_tail</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></div><div class='line' id='LC66'><br/></div><div class='line' id='LC67'><br/></div><div class='line' id='LC68'><span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span><span class="o">*</span> <span class="n">argv</span><span class="p">[])</span></div><div class='line' id='LC69'><span class="p">{</span></div><div class='line' id='LC70'>	<span class="kt">int</span> <span class="n">byte_count</span><span class="p">,</span> <span class="n">adaptation_field_byte</span><span class="p">,</span> <span class="n">payload_start_index</span><span class="p">,</span> <span class="n">section_length</span><span class="p">,</span> <span class="n">service_id</span><span class="p">,</span> <span class="n">descriptor_length</span><span class="p">;</span></div><div class='line' id='LC71'>	<span class="kt">int</span> <span class="n">loop_start_index</span><span class="p">,</span> <span class="n">service_p_length</span><span class="p">,</span> <span class="n">service_n_length</span><span class="p">,</span> <span class="n">chname_length</span><span class="p">;</span></div><div class='line' id='LC72'>	<span class="kt">int</span> <span class="n">i</span><span class="p">,</span><span class="n">j</span><span class="p">,</span><span class="n">k</span><span class="p">;</span></div><div class='line' id='LC73'>	<span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">pid</span><span class="p">;</span></div><div class='line' id='LC74'>	<span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">*</span><span class="n">buf</span><span class="p">,</span> <span class="n">tmp</span><span class="p">;</span></div><div class='line' id='LC75'>	<span class="kt">char</span> <span class="o">*</span><span class="n">inputfile</span><span class="p">;</span></div><div class='line' id='LC76'>	<span class="kt">FILE</span> <span class="o">*</span><span class="n">fp</span><span class="p">;</span></div><div class='line' id='LC77'><br/></div><div class='line' id='LC78'>	<span class="n">ServiceDescriptionTable</span> <span class="o">*</span><span class="n">sdt</span><span class="p">;</span></div><div class='line' id='LC79'>	<span class="n">LoopSection</span> <span class="o">*</span><span class="n">loop</span><span class="p">;</span></div><div class='line' id='LC80'>	<span class="n">ServiceDescriptor</span> <span class="o">*</span><span class="n">sd</span><span class="p">;</span></div><div class='line' id='LC81'><br/></div><div class='line' id='LC82'>	<span class="k">if</span><span class="p">(</span><span class="n">argc</span> <span class="o">&gt;</span> <span class="mi">3</span><span class="p">){</span></div><div class='line' id='LC83'>		<span class="n">printf</span><span class="p">(</span><span class="s">&quot;Usage: ./tsinfo -v &lt;input filename&gt;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></div><div class='line' id='LC84'>		<span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span></div><div class='line' id='LC85'>	<span class="p">}</span></div><div class='line' id='LC86'><br/></div><div class='line' id='LC87'>	<span class="k">if</span><span class="p">(</span><span class="n">argc</span> <span class="o">==</span> <span class="mi">3</span> <span class="o">&amp;&amp;</span> <span class="n">strcmp</span><span class="p">(</span><span class="s">&quot;-v&quot;</span><span class="p">,</span> <span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="o">==</span><span class="mi">0</span><span class="p">){</span></div><div class='line' id='LC88'>		<span class="n">printSdtStruct</span><span class="p">();</span></div><div class='line' id='LC89'>		<span class="n">inputfile</span> <span class="o">=</span> <span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span></div><div class='line' id='LC90'>	<span class="p">}</span><span class="k">else</span><span class="p">{</span></div><div class='line' id='LC91'>		<span class="n">inputfile</span> <span class="o">=</span> <span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC92'>	<span class="p">}</span></div><div class='line' id='LC93'><br/></div><div class='line' id='LC94'>	<span class="k">if</span><span class="p">((</span><span class="n">fp</span> <span class="o">=</span> <span class="n">fopen</span><span class="p">(</span><span class="n">inputfile</span><span class="p">,</span> <span class="s">&quot;r&quot;</span><span class="p">))</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">){</span></div><div class='line' id='LC95'>		<span class="n">perror</span><span class="p">(</span><span class="s">&quot;Input file : &quot;</span><span class="p">);</span></div><div class='line' id='LC96'>		<span class="k">return</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC97'>	<span class="p">}</span></div><div class='line' id='LC98'><br/></div><div class='line' id='LC99'>	<span class="n">buf</span> <span class="o">=</span> <span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span><span class="p">)</span><span class="n">MyMalloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">char</span><span class="p">)</span><span class="o">*</span><span class="mi">188</span><span class="p">);</span></div><div class='line' id='LC100'><br/></div><div class='line' id='LC101'>	<span class="n">sdt</span> <span class="o">=</span> <span class="p">(</span><span class="n">ServiceDescriptionTable</span><span class="o">*</span><span class="p">)</span><span class="n">MyMalloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="n">ServiceDescriptionTable</span><span class="p">));</span></div><div class='line' id='LC102'>	<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">loop</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></div><div class='line' id='LC103'><br/></div><div class='line' id='LC104'>	<span class="n">byte_count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC105'>	<span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC106'>	<span class="k">while</span><span class="p">(</span><span class="n">fread</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="kt">char</span><span class="p">),</span> <span class="mi">188</span><span class="p">,</span> <span class="n">fp</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">){</span></div><div class='line' id='LC107'>		<span class="n">pid</span> <span class="o">=</span> <span class="n">getPid</span><span class="p">(</span><span class="n">buf</span><span class="p">);</span></div><div class='line' id='LC108'>		<span class="c1">//PID == 0x0011</span></div><div class='line' id='LC109'>		<span class="k">if</span><span class="p">(</span><span class="n">pid</span> <span class="o">==</span> <span class="n">PID_SDT</span><span class="p">){</span></div><div class='line' id='LC110'>			<span class="c1">//adaptation fieldのチェック</span></div><div class='line' id='LC111'>			<span class="k">if</span><span class="p">((</span><span class="n">buf</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">|</span> <span class="mh">0xcf</span><span class="p">)</span> <span class="o">==</span> <span class="mh">0xff</span><span class="p">){</span>  <span class="c1">//adaptation field ctl = &#39;11&#39;. both.</span></div><div class='line' id='LC112'>				<span class="n">adaptation_field_byte</span> <span class="o">=</span> <span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">buf</span><span class="p">[</span><span class="mi">5</span><span class="p">];</span></div><div class='line' id='LC113'>			<span class="c1">//adaptation field ctl = &#39;01&#39;. only payload.</span></div><div class='line' id='LC114'>			<span class="p">}</span><span class="k">else</span> <span class="k">if</span><span class="p">((</span><span class="n">buf</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">|</span> <span class="mh">0xcf</span><span class="p">)</span> <span class="o">==</span> <span class="mh">0xdf</span><span class="p">){</span></div><div class='line' id='LC115'>				<span class="n">adaptation_field_byte</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC116'>			<span class="c1">//adaptation field ctl = &#39;10&#39; only adaptation field.</span></div><div class='line' id='LC117'>			<span class="p">}</span><span class="k">else</span> <span class="k">if</span><span class="p">((</span><span class="n">buf</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">|</span> <span class="mh">0xcf</span><span class="p">)</span> <span class="o">==</span> <span class="mh">0xef</span><span class="p">){</span></div><div class='line' id='LC118'>				<span class="n">adaptation_field_byte</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC119'>			<span class="c1">//adaptation field ctl = &#39;00&#39;. undefined.</span></div><div class='line' id='LC120'>			<span class="p">}</span><span class="k">else</span><span class="p">{</span></div><div class='line' id='LC121'>				<span class="n">adaptation_field_byte</span> <span class="o">=</span> <span class="o">-</span><span class="mi">2</span><span class="p">;</span></div><div class='line' id='LC122'>			<span class="p">}</span></div><div class='line' id='LC123'><br/></div><div class='line' id='LC124'>			<span class="c1">//adaptation fieldは無視</span></div><div class='line' id='LC125'>			<span class="k">if</span><span class="p">(</span><span class="n">adaptation_field_byte</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span> <span class="k">continue</span><span class="p">;</span></div><div class='line' id='LC126'>			<span class="n">payload_start_index</span> <span class="o">=</span> <span class="mi">5</span> <span class="o">+</span> <span class="n">adaptation_field_byte</span><span class="p">;</span></div><div class='line' id='LC127'><br/></div><div class='line' id='LC128'><br/></div><div class='line' id='LC129'><br/></div><div class='line' id='LC130'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">table_id</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">payload_start_index</span><span class="p">];</span></div><div class='line' id='LC131'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">section_syntax_indicator</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">payload_start_index</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">&gt;&gt;</span> <span class="mi">7</span><span class="p">;</span></div><div class='line' id='LC132'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">reserved_future_use</span> <span class="o">=</span> <span class="p">(</span><span class="n">buf</span><span class="p">[</span><span class="n">payload_start_index</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mh">0x01</span><span class="p">;</span></div><div class='line' id='LC133'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">reserved</span> <span class="o">=</span> <span class="p">(</span><span class="n">buf</span><span class="p">[</span><span class="n">payload_start_index</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mh">0x03</span><span class="p">;</span></div><div class='line' id='LC134'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">section_length</span> <span class="o">=</span> <span class="n">getSectionLength</span><span class="p">(</span><span class="n">buf</span> <span class="o">+</span> <span class="n">payload_start_index</span><span class="p">);</span></div><div class='line' id='LC135'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">transport_stream_id</span> <span class="o">=</span> <span class="n">getTransportStreamId</span><span class="p">(</span><span class="n">buf</span> <span class="o">+</span> <span class="n">payload_start_index</span><span class="p">);</span></div><div class='line' id='LC136'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">reserved2</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">payload_start_index</span> <span class="o">+</span> <span class="mi">5</span><span class="p">]</span> <span class="o">&gt;&gt;</span> <span class="mi">6</span><span class="p">;</span></div><div class='line' id='LC137'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">version_number</span> <span class="o">=</span> <span class="p">(</span><span class="n">buf</span><span class="p">[</span><span class="n">payload_start_index</span> <span class="o">+</span> <span class="mi">5</span><span class="p">]</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mh">0x1f</span><span class="p">;</span></div><div class='line' id='LC138'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">current_next_indicator</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">payload_start_index</span> <span class="o">+</span> <span class="mi">5</span><span class="p">]</span> <span class="o">&amp;</span> <span class="mh">0x01</span><span class="p">;</span></div><div class='line' id='LC139'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">section_number</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">payload_start_index</span> <span class="o">+</span> <span class="mi">6</span><span class="p">];</span></div><div class='line' id='LC140'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">last_section_number</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">payload_start_index</span> <span class="o">+</span> <span class="mi">7</span><span class="p">];</span> </div><div class='line' id='LC141'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">original_network_id</span> <span class="o">=</span> <span class="n">getOriginalNetworkId</span><span class="p">(</span><span class="n">buf</span> <span class="o">+</span> <span class="n">payload_start_index</span><span class="p">);</span></div><div class='line' id='LC142'>			<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">reserved_future_use2</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">payload_start_index</span> <span class="o">+</span> <span class="mi">10</span><span class="p">];</span></div><div class='line' id='LC143'><br/></div><div class='line' id='LC144'>			<span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC145'>			<span class="k">while</span><span class="p">(</span><span class="n">i</span> <span class="o">&lt;</span> <span class="n">sdt</span><span class="o">-&gt;</span><span class="n">section_length</span> <span class="o">-</span> <span class="mi">12</span><span class="p">){</span></div><div class='line' id='LC146'>				<span class="n">loop_start_index</span> <span class="o">=</span> <span class="n">payload_start_index</span> <span class="o">+</span> <span class="mi">11</span> <span class="o">+</span> <span class="n">i</span><span class="p">;</span> </div><div class='line' id='LC147'>				<span class="n">loop</span> <span class="o">=</span> <span class="p">(</span><span class="n">LoopSection</span><span class="o">*</span><span class="p">)</span><span class="n">MyMalloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="n">LoopSection</span><span class="p">));</span></div><div class='line' id='LC148'>				<span class="n">loop</span><span class="o">-&gt;</span><span class="n">next</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></div><div class='line' id='LC149'>				<span class="k">if</span><span class="p">(</span><span class="n">loop_tail</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">){</span></div><div class='line' id='LC150'>					<span class="n">sdt</span><span class="o">-&gt;</span><span class="n">loop</span> <span class="o">=</span> <span class="n">loop</span><span class="p">;</span></div><div class='line' id='LC151'>				<span class="p">}</span><span class="k">else</span><span class="p">{</span></div><div class='line' id='LC152'>					<span class="n">loop_tail</span><span class="o">-&gt;</span><span class="n">next</span> <span class="o">=</span> <span class="n">loop</span><span class="p">;</span></div><div class='line' id='LC153'>				<span class="p">}</span></div><div class='line' id='LC154'>				<span class="n">loop_tail</span> <span class="o">=</span> <span class="n">loop</span><span class="p">;</span></div><div class='line' id='LC155'><br/></div><div class='line' id='LC156'>				<span class="n">loop</span><span class="o">-&gt;</span><span class="n">service_id</span> <span class="o">=</span> <span class="n">getServiceId</span><span class="p">(</span><span class="n">buf</span> <span class="o">+</span> <span class="n">loop_start_index</span><span class="p">);</span></div><div class='line' id='LC157'>				<span class="n">loop</span><span class="o">-&gt;</span><span class="n">reserved_future_use</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">2</span><span class="p">]</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span><span class="p">;</span></div><div class='line' id='LC158'>				<span class="n">loop</span><span class="o">-&gt;</span><span class="n">eit_user_defined_flags</span> <span class="o">=</span> <span class="p">(</span><span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">2</span><span class="p">]</span> <span class="o">&gt;&gt;</span> <span class="mi">2</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mh">0x07</span><span class="p">;</span></div><div class='line' id='LC159'>				<span class="n">loop</span><span class="o">-&gt;</span><span class="n">eit_schedule_flag</span> <span class="o">=</span> <span class="p">(</span><span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">2</span><span class="p">]</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mh">0x01</span><span class="p">;</span></div><div class='line' id='LC160'>				<span class="n">loop</span><span class="o">-&gt;</span><span class="n">eit_present_following_flag</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">2</span><span class="p">]</span> <span class="o">&amp;</span> <span class="mh">0x01</span><span class="p">;</span></div><div class='line' id='LC161'>				<span class="n">loop</span><span class="o">-&gt;</span><span class="n">running_status</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">3</span><span class="p">]</span> <span class="o">&gt;&gt;</span> <span class="mi">5</span><span class="p">;</span></div><div class='line' id='LC162'>				<span class="n">loop</span><span class="o">-&gt;</span><span class="n">free_ca_mode</span> <span class="o">=</span> <span class="p">(</span><span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">3</span><span class="p">]</span> <span class="o">&gt;&gt;</span> <span class="mi">4</span><span class="p">)</span> <span class="o">&amp;</span> <span class="mh">0x01</span><span class="p">;</span></div><div class='line' id='LC163'>				<span class="n">loop</span><span class="o">-&gt;</span><span class="n">descriptors_loop_length</span> <span class="o">=</span> <span class="n">getDescriptorsLoopLength</span><span class="p">(</span><span class="n">buf</span> <span class="o">+</span> <span class="n">loop_start_index</span><span class="p">);</span></div><div class='line' id='LC164'><br/></div><div class='line' id='LC165'>				<span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC166'>				<span class="k">while</span><span class="p">(</span><span class="n">j</span> <span class="o">&lt;</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">descriptors_loop_length</span><span class="p">){</span></div><div class='line' id='LC167'>					<span class="n">sd</span> <span class="o">=</span> <span class="p">(</span><span class="n">ServiceDescriptor</span><span class="o">*</span><span class="p">)</span><span class="n">MyMalloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="n">ServiceDescriptor</span><span class="p">));</span></div><div class='line' id='LC168'>					<span class="n">sd</span><span class="o">-&gt;</span><span class="n">next</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></div><div class='line' id='LC169'>					<span class="k">if</span><span class="p">(</span><span class="n">sd_tail</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">){</span></div><div class='line' id='LC170'>						<span class="n">loop</span><span class="o">-&gt;</span><span class="n">descriptor</span> <span class="o">=</span> <span class="n">sd</span><span class="p">;</span></div><div class='line' id='LC171'>					<span class="p">}</span><span class="k">else</span><span class="p">{</span></div><div class='line' id='LC172'>						<span class="n">sd_tail</span><span class="o">-&gt;</span><span class="n">next</span> <span class="o">=</span> <span class="n">sd</span><span class="p">;</span></div><div class='line' id='LC173'>					<span class="p">}</span></div><div class='line' id='LC174'>					<span class="n">sd_tail</span> <span class="o">=</span> <span class="n">sd</span><span class="p">;</span></div><div class='line' id='LC175'><br/></div><div class='line' id='LC176'>					<span class="n">sd</span><span class="o">-&gt;</span><span class="n">descriptor_tag</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">5</span> <span class="o">+</span> <span class="n">j</span><span class="p">];</span></div><div class='line' id='LC177'>					<span class="k">switch</span><span class="p">(</span><span class="n">sd</span><span class="o">-&gt;</span><span class="n">descriptor_tag</span><span class="p">)</span></div><div class='line' id='LC178'>					<span class="p">{</span></div><div class='line' id='LC179'>						<span class="k">case</span> <span class="mh">0x48</span> :</div><div class='line' id='LC180'>							<span class="n">sd</span><span class="o">-&gt;</span><span class="n">descriptor_length</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">5</span> <span class="o">+</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC181'>							<span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_type</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">5</span> <span class="o">+</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">2</span><span class="p">];</span></div><div class='line' id='LC182'>							<span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name_length</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">5</span> <span class="o">+</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">3</span><span class="p">];</span></div><div class='line' id='LC183'>							<span class="k">if</span><span class="p">(</span><span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name_length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">){</span></div><div class='line' id='LC184'>								<span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name</span> <span class="o">=</span> <span class="p">(</span><span class="kt">char</span><span class="o">*</span><span class="p">)</span><span class="n">MyMalloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">char</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="kt">size_t</span><span class="p">)</span><span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name_length</span><span class="p">);</span></div><div class='line' id='LC185'>								<span class="k">for</span><span class="p">(</span><span class="n">k</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="n">k</span><span class="o">&lt;</span><span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name_length</span><span class="p">;</span><span class="n">k</span><span class="o">++</span><span class="p">){</span></div><div class='line' id='LC186'>									<span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">5</span> <span class="o">+</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">4</span> <span class="o">+</span> <span class="n">k</span><span class="p">];</span></div><div class='line' id='LC187'>								<span class="p">}</span></div><div class='line' id='LC188'>							<span class="p">}</span><span class="k">else</span><span class="p">{</span></div><div class='line' id='LC189'>								<span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></div><div class='line' id='LC190'>							<span class="p">}</span></div><div class='line' id='LC191'>							<span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name_length</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">5</span> <span class="o">+</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">4</span> <span class="o">+</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name_length</span><span class="p">];</span></div><div class='line' id='LC192'>							<span class="k">if</span><span class="p">(</span><span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name_length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">){</span></div><div class='line' id='LC193'>								<span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name</span> <span class="o">=</span> <span class="p">(</span><span class="kt">char</span><span class="o">*</span><span class="p">)</span><span class="n">MyMalloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">char</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="kt">size_t</span><span class="p">)</span><span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name_length</span><span class="p">);</span></div><div class='line' id='LC194'>								<span class="k">for</span><span class="p">(</span><span class="n">k</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="n">k</span><span class="o">&lt;</span><span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name_length</span><span class="p">;</span><span class="n">k</span><span class="o">++</span><span class="p">){</span></div><div class='line' id='LC195'>									<span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">buf</span><span class="p">[</span><span class="n">loop_start_index</span> <span class="o">+</span> <span class="mi">5</span> <span class="o">+</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">4</span> <span class="o">+</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name_length</span> <span class="o">+</span> <span class="n">k</span><span class="p">];</span></div><div class='line' id='LC196'>								<span class="p">}</span></div><div class='line' id='LC197'>							<span class="p">}</span><span class="k">else</span><span class="p">{</span></div><div class='line' id='LC198'>								<span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></div><div class='line' id='LC199'>							<span class="p">}</span></div><div class='line' id='LC200'>							<span class="n">j</span> <span class="o">+=</span> <span class="mi">5</span> <span class="o">+</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name_length</span> <span class="o">+</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name_length</span><span class="p">;</span></div><div class='line' id='LC201'>							<span class="k">break</span><span class="p">;</span></div><div class='line' id='LC202'>						<span class="c1">//case 0xCF :</span></div><div class='line' id='LC203'>						<span class="c1">//	break;</span></div><div class='line' id='LC204'>						<span class="k">default</span> <span class="o">:</span></div><div class='line' id='LC205'>							<span class="n">j</span> <span class="o">+=</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">descriptors_loop_length</span><span class="p">;</span></div><div class='line' id='LC206'>							<span class="k">break</span><span class="p">;</span></div><div class='line' id='LC207'>					<span class="p">}</span></div><div class='line' id='LC208'>				<span class="p">}</span></div><div class='line' id='LC209'>				<span class="n">i</span> <span class="o">+=</span> <span class="p">(</span><span class="mi">5</span> <span class="o">+</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">descriptors_loop_length</span><span class="p">);</span></div><div class='line' id='LC210'>				<span class="n">sd_tail</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></div><div class='line' id='LC211'>			<span class="p">}</span></div><div class='line' id='LC212'>			<span class="n">printSdt</span><span class="p">(</span><span class="n">sdt</span><span class="p">);</span></div><div class='line' id='LC213'>			<span class="n">printPacket</span><span class="p">(</span><span class="n">buf</span><span class="p">);</span></div><div class='line' id='LC214'>			<span class="n">freeSdtLoop</span><span class="p">(</span><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">loop</span><span class="p">);</span></div><div class='line' id='LC215'>			<span class="n">loop_tail</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></div><div class='line' id='LC216'>		<span class="p">}</span></div><div class='line' id='LC217'>		<span class="k">if</span><span class="p">(</span><span class="n">k</span><span class="o">==</span><span class="mi">1</span><span class="p">){</span></div><div class='line' id='LC218'>			<span class="n">printf</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n\n</span><span class="s">&quot;</span><span class="p">);</span></div><div class='line' id='LC219'>		<span class="p">}</span></div><div class='line' id='LC220'>		<span class="n">byte_count</span> <span class="o">+=</span> <span class="mi">188</span><span class="p">;</span></div><div class='line' id='LC221'>	<span class="p">}</span></div><div class='line' id='LC222'><br/></div><div class='line' id='LC223'>	<span class="n">free</span><span class="p">(</span><span class="n">buf</span><span class="p">);</span></div><div class='line' id='LC224'>	<span class="n">fclose</span><span class="p">(</span><span class="n">fp</span><span class="p">);</span></div><div class='line' id='LC225'><br/></div><div class='line' id='LC226'>	<span class="k">return</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC227'><span class="p">}</span></div><div class='line' id='LC228'><br/></div><div class='line' id='LC229'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="nf">getPid</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span> <span class="n">buf</span><span class="p">)</span></div><div class='line' id='LC230'><span class="p">{</span></div><div class='line' id='LC231'>	<span class="kt">int</span> <span class="n">pid</span> <span class="o">=</span> <span class="mh">0x0000</span><span class="p">;</span></div><div class='line' id='LC232'><br/></div><div class='line' id='LC233'>	<span class="n">pid</span> <span class="o">=</span> <span class="n">pid</span> <span class="o">|</span> <span class="p">(</span><span class="n">buf</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">&amp;</span> <span class="mh">0x1f</span><span class="p">);</span></div><div class='line' id='LC234'>	<span class="n">pid</span> <span class="o">=</span> <span class="n">pid</span> <span class="o">&lt;&lt;</span> <span class="mi">8</span><span class="p">;</span></div><div class='line' id='LC235'>	<span class="n">pid</span> <span class="o">=</span> <span class="n">pid</span> <span class="o">|</span> <span class="n">buf</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span></div><div class='line' id='LC236'><br/></div><div class='line' id='LC237'>	<span class="k">return</span> <span class="n">pid</span><span class="p">;</span></div><div class='line' id='LC238'><br/></div><div class='line' id='LC239'><span class="p">}</span></div><div class='line' id='LC240'><br/></div><div class='line' id='LC241'><span class="c1">//payloadの先頭アドレス</span></div><div class='line' id='LC242'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="nf">getSectionLength</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span> <span class="n">buf</span><span class="p">)</span></div><div class='line' id='LC243'><span class="p">{</span></div><div class='line' id='LC244'>	<span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">section_length</span> <span class="o">=</span> <span class="mh">0x00</span><span class="p">;</span></div><div class='line' id='LC245'><br/></div><div class='line' id='LC246'>	<span class="n">section_length</span> <span class="o">|=</span> <span class="n">buf</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">&amp;</span> <span class="mh">0x0f</span><span class="p">;</span></div><div class='line' id='LC247'>	<span class="n">section_length</span> <span class="o">=</span> <span class="n">section_length</span> <span class="o">&lt;&lt;</span> <span class="mi">8</span><span class="p">;</span></div><div class='line' id='LC248'>	<span class="n">section_length</span> <span class="o">|=</span> <span class="n">buf</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span></div><div class='line' id='LC249'><br/></div><div class='line' id='LC250'>	<span class="k">return</span> <span class="n">section_length</span><span class="p">;</span></div><div class='line' id='LC251'><span class="p">}</span></div><div class='line' id='LC252'><br/></div><div class='line' id='LC253'><span class="c1">//payloadの先頭アドレス</span></div><div class='line' id='LC254'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="nf">getTransportStreamId</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span> <span class="n">buf</span><span class="p">)</span></div><div class='line' id='LC255'><span class="p">{</span></div><div class='line' id='LC256'>	<span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">transport_stream_id</span> <span class="o">=</span> <span class="mh">0x00</span><span class="p">;</span></div><div class='line' id='LC257'><br/></div><div class='line' id='LC258'>	<span class="n">transport_stream_id</span> <span class="o">|=</span> <span class="n">buf</span><span class="p">[</span><span class="mi">3</span><span class="p">];</span></div><div class='line' id='LC259'>	<span class="n">transport_stream_id</span> <span class="o">=</span> <span class="n">transport_stream_id</span> <span class="o">&lt;&lt;</span> <span class="mi">8</span><span class="p">;</span></div><div class='line' id='LC260'>	<span class="n">transport_stream_id</span> <span class="o">|=</span> <span class="n">buf</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span></div><div class='line' id='LC261'><br/></div><div class='line' id='LC262'>	<span class="k">return</span> <span class="n">transport_stream_id</span><span class="p">;</span></div><div class='line' id='LC263'><span class="p">}</span></div><div class='line' id='LC264'><br/></div><div class='line' id='LC265'><span class="c1">//payloadの先頭アドレス</span></div><div class='line' id='LC266'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="nf">getOriginalNetworkId</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span> <span class="n">buf</span><span class="p">)</span></div><div class='line' id='LC267'><span class="p">{</span></div><div class='line' id='LC268'>	<span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">original_network_id</span> <span class="o">=</span> <span class="mh">0x0000</span><span class="p">;</span></div><div class='line' id='LC269'><br/></div><div class='line' id='LC270'>	<span class="n">original_network_id</span> <span class="o">|=</span> <span class="n">buf</span><span class="p">[</span><span class="mi">8</span><span class="p">];</span></div><div class='line' id='LC271'>	<span class="n">original_network_id</span> <span class="o">=</span> <span class="n">original_network_id</span> <span class="o">&lt;&lt;</span> <span class="mi">8</span><span class="p">;</span></div><div class='line' id='LC272'>	<span class="n">original_network_id</span> <span class="o">|=</span> <span class="n">buf</span><span class="p">[</span><span class="mi">9</span><span class="p">];</span></div><div class='line' id='LC273'><br/></div><div class='line' id='LC274'>	<span class="k">return</span> <span class="n">original_network_id</span><span class="p">;</span></div><div class='line' id='LC275'><span class="p">}</span></div><div class='line' id='LC276'><br/></div><div class='line' id='LC277'><span class="c1">//payload内のloopの先頭アドレス</span></div><div class='line' id='LC278'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="nf">getServiceId</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span> <span class="n">buf</span><span class="p">)</span></div><div class='line' id='LC279'><span class="p">{</span></div><div class='line' id='LC280'>	<span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">service_id</span> <span class="o">=</span> <span class="mh">0x0000</span><span class="p">;</span></div><div class='line' id='LC281'><br/></div><div class='line' id='LC282'>	<span class="n">service_id</span> <span class="o">|=</span> <span class="n">buf</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></div><div class='line' id='LC283'>	<span class="n">service_id</span> <span class="o">=</span> <span class="n">service_id</span> <span class="o">&lt;&lt;</span> <span class="mi">8</span><span class="p">;</span></div><div class='line' id='LC284'>	<span class="n">service_id</span> <span class="o">|=</span> <span class="n">buf</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></div><div class='line' id='LC285'><br/></div><div class='line' id='LC286'>	<span class="k">return</span> <span class="n">service_id</span><span class="p">;</span></div><div class='line' id='LC287'><span class="p">}</span></div><div class='line' id='LC288'><br/></div><div class='line' id='LC289'><span class="c1">//payload内のloopの先頭アドレス</span></div><div class='line' id='LC290'><span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="nf">getDescriptorsLoopLength</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span> <span class="n">buf</span><span class="p">)</span></div><div class='line' id='LC291'><span class="p">{</span></div><div class='line' id='LC292'>	<span class="kt">unsigned</span> <span class="kt">short</span> <span class="kt">int</span> <span class="n">descriptor_length</span> <span class="o">=</span> <span class="mh">0x0000</span><span class="p">;</span></div><div class='line' id='LC293'><br/></div><div class='line' id='LC294'>	<span class="n">descriptor_length</span> <span class="o">|=</span> <span class="n">buf</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">&amp;</span> <span class="mh">0x0f</span><span class="p">;</span></div><div class='line' id='LC295'>	<span class="n">descriptor_length</span> <span class="o">=</span> <span class="n">descriptor_length</span> <span class="o">&lt;&lt;</span> <span class="mi">8</span><span class="p">;</span></div><div class='line' id='LC296'>	<span class="n">descriptor_length</span> <span class="o">|=</span> <span class="n">buf</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span></div><div class='line' id='LC297'><br/></div><div class='line' id='LC298'>	<span class="k">return</span> <span class="n">descriptor_length</span><span class="p">;</span></div><div class='line' id='LC299'><span class="p">}</span></div><div class='line' id='LC300'><br/></div><div class='line' id='LC301'><br/></div><div class='line' id='LC302'><span class="kt">void</span> <span class="nf">printSdtStruct</span><span class="p">()</span></div><div class='line' id='LC303'><span class="p">{</span></div><div class='line' id='LC304'>	<span class="n">printf</span><span class="p">(</span><span class="s">&quot;SDT table structure </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC305'><span class="s">===================================================== </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC306'><span class="s">service_description_section(){ </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC307'><span class="s">	table_id(8) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC308'><span class="s">	section_syntax_indicator(1) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC309'><span class="s">	reserved_future_use(1) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC310'><span class="s">	reserved(2) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC311'><span class="s">	section_length(12) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC312'><span class="s">	transport_stream_id(16) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC313'><span class="s">	reserved(2) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC314'><span class="s">	version_number(5) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC315'><span class="s">	current_next_indicator(1) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC316'><span class="s">	section_number(8) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC317'><span class="s">	last_section_number(8) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC318'><span class="s">	original_network_id(16) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC319'><span class="s">	reserved_future_use(8) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC320'><span class="s">	for (i=0;i&lt;N;i++){ </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC321'><span class="s">		service_id(16) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC322'><span class="s">		reserved_future_use(3) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC323'><span class="s">		EIT_user_defined_flags(3) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC324'><span class="s">		EIT_schedule_flag(1) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC325'><span class="s">		EIT_present_following_flag(1) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC326'><span class="s">		running_status(3) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC327'><span class="s">		free_CA_mode(1) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC328'><span class="s">		descriptors_loop_length(12) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC329'><span class="s">		for (j=0;j&lt;N;j++){ </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC330'><span class="s">			descriptor() </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC331'><span class="s">		} </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC332'><span class="s">	} </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC333'><span class="s">	CRC_32(32) </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC334'><span class="s">} </span><span class="se">\n</span><span class="s"> \</span></div><div class='line' id='LC335'><span class="s">===================================================== </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC336'><span class="s">&quot;</span><span class="p">);</span></div><div class='line' id='LC337'><span class="p">}</span></div><div class='line' id='LC338'><br/></div><div class='line' id='LC339'><span class="kt">void</span> <span class="nf">printSdt</span><span class="p">(</span><span class="n">ServiceDescriptionTable</span> <span class="o">*</span><span class="n">sdt</span><span class="p">)</span></div><div class='line' id='LC340'><span class="p">{</span></div><div class='line' id='LC341'>	<span class="kt">char</span> <span class="n">tmp1</span><span class="p">[</span><span class="mi">9</span><span class="p">],</span><span class="n">tmp2</span><span class="p">[</span><span class="mi">9</span><span class="p">],</span><span class="n">tmp3</span><span class="p">[</span><span class="mi">9</span><span class="p">],</span><span class="n">tmp4</span><span class="p">[</span><span class="mi">9</span><span class="p">],</span><span class="n">tmp5</span><span class="p">[</span><span class="mi">9</span><span class="p">],</span><span class="n">tmp6</span><span class="p">[</span><span class="mi">9</span><span class="p">];</span></div><div class='line' id='LC342'>	<span class="n">printf</span><span class="p">(</span><span class="s">&quot;==================SDT================== </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC343'><span class="s">table_id = 0x%02X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC344'><span class="s">section_syntax_indicator = 0b%s </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC345'><span class="s">reserved_future_use = 0b%s </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC346'><span class="s">reserved = 0b%s </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC347'><span class="s">section_length = %d, 0x%04X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC348'><span class="s">transport_stream_id = %d, 0x%04X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC349'><span class="s">reserved2 = 0b%s </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC350'><span class="s">version_number = %d, 0x%02X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC351'><span class="s">current_next_indicator = 0b%s </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC352'><span class="s">section_number = %d, 0x%02X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC353'><span class="s">last_section_number = %d, 0x%02X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC354'><span class="s">original_network_id = %d, 0x%04X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC355'><span class="s">reserved_future_use2 = 0b%s </span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span></div><div class='line' id='LC356'><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">table_id</span><span class="p">,</span> <span class="n">toB</span><span class="p">(</span><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">section_syntax_indicator</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">tmp1</span><span class="p">),</span> <span class="n">toB</span><span class="p">(</span><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">reserved_future_use</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">tmp2</span><span class="p">),</span></div><div class='line' id='LC357'><span class="n">toB</span><span class="p">(</span><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">reserved</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">tmp3</span><span class="p">),</span> <span class="n">sdt</span><span class="o">-&gt;</span><span class="n">section_length</span><span class="p">,</span> <span class="n">sdt</span><span class="o">-&gt;</span><span class="n">section_length</span><span class="p">,</span></div><div class='line' id='LC358'><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">transport_stream_id</span><span class="p">,</span> <span class="n">sdt</span><span class="o">-&gt;</span><span class="n">transport_stream_id</span><span class="p">,</span> <span class="n">toB</span><span class="p">(</span><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">reserved2</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">tmp4</span><span class="p">),</span></div><div class='line' id='LC359'><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">version_number</span><span class="p">,</span> <span class="n">sdt</span><span class="o">-&gt;</span><span class="n">version_number</span><span class="p">,</span> <span class="n">toB</span><span class="p">(</span><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">current_next_indicator</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">tmp5</span><span class="p">),</span></div><div class='line' id='LC360'><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">section_number</span><span class="p">,</span> <span class="n">sdt</span><span class="o">-&gt;</span><span class="n">section_number</span><span class="p">,</span> <span class="n">sdt</span><span class="o">-&gt;</span><span class="n">last_section_number</span><span class="p">,</span> <span class="n">sdt</span><span class="o">-&gt;</span><span class="n">last_section_number</span><span class="p">,</span></div><div class='line' id='LC361'><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">original_network_id</span><span class="p">,</span> <span class="n">sdt</span><span class="o">-&gt;</span><span class="n">original_network_id</span><span class="p">,</span> <span class="n">toB</span><span class="p">(</span><span class="n">sdt</span><span class="o">-&gt;</span><span class="n">reserved_future_use2</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="n">tmp6</span><span class="p">));</span></div><div class='line' id='LC362'><br/></div><div class='line' id='LC363'>	<span class="n">LoopSection</span> <span class="o">*</span><span class="n">loop</span> <span class="o">=</span> <span class="n">sdt</span><span class="o">-&gt;</span><span class="n">loop</span><span class="p">;</span></div><div class='line' id='LC364'>	<span class="kt">int</span> <span class="n">i</span><span class="p">,</span><span class="n">j</span><span class="p">;</span></div><div class='line' id='LC365'>	<span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></div><div class='line' id='LC366'><br/></div><div class='line' id='LC367'>	<span class="k">while</span><span class="p">(</span><span class="n">loop</span> <span class="o">!=</span> <span class="nb">NULL</span><span class="p">){</span></div><div class='line' id='LC368'>		<span class="n">printf</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\t</span><span class="s">--------------loop%d-------------- </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC369'><span class="s">	service_id = %d = 0x%04X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC370'><span class="s">	reserved_future_use = 0b%s </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC371'><span class="s">	EIT_user_defined_flags = 0b%s </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC372'><span class="s">	EIT_schedule_flag = 0b%s </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC373'><span class="s">	EIT_present_following_flag = 0b%s </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC374'><span class="s">	running_status = %d = 0x%02X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC375'><span class="s">	free_CA_mode = 0b%s </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC376'><span class="s">	descriptors_loop_length = %d = 0x%02X </span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span></div><div class='line' id='LC377'>		<span class="n">i</span><span class="p">,</span></div><div class='line' id='LC378'>		<span class="n">loop</span><span class="o">-&gt;</span><span class="n">service_id</span><span class="p">,</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">service_id</span><span class="p">,</span> <span class="n">toB</span><span class="p">(</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">reserved_future_use</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">tmp1</span><span class="p">),</span></div><div class='line' id='LC379'>		<span class="n">toB</span><span class="p">(</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">eit_user_defined_flags</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">tmp2</span><span class="p">),</span> <span class="n">toB</span><span class="p">(</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">eit_schedule_flag</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">tmp3</span><span class="p">),</span></div><div class='line' id='LC380'>		<span class="n">toB</span><span class="p">(</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">eit_present_following_flag</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">tmp4</span><span class="p">),</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">running_status</span><span class="p">,</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">running_status</span><span class="p">,</span></div><div class='line' id='LC381'>		<span class="n">toB</span><span class="p">(</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">free_ca_mode</span><span class="p">,</span> <span class="mi">1</span> <span class="p">,</span><span class="n">tmp5</span><span class="p">),</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">descriptors_loop_length</span><span class="p">,</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">descriptors_loop_length</span><span class="p">);</span></div><div class='line' id='LC382'><br/></div><div class='line' id='LC383'>		<span class="n">ServiceDescriptor</span> <span class="o">*</span><span class="n">sd</span> <span class="o">=</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">descriptor</span><span class="p">;</span></div><div class='line' id='LC384'>		<span class="k">while</span><span class="p">(</span><span class="n">sd</span> <span class="o">!=</span> <span class="nb">NULL</span><span class="p">){</span></div><div class='line' id='LC385'>			<span class="k">if</span><span class="p">(</span><span class="n">sd</span><span class="o">-&gt;</span><span class="n">descriptor_tag</span> <span class="o">!=</span> <span class="mh">0x48</span><span class="p">){</span></div><div class='line' id='LC386'>				<span class="n">sd</span> <span class="o">=</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">next</span><span class="p">;</span></div><div class='line' id='LC387'>				<span class="k">continue</span><span class="p">;</span></div><div class='line' id='LC388'>			<span class="p">}</span></div><div class='line' id='LC389'>			<span class="n">printf</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\t\t</span><span class="s">*********descriptor********* </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC390'><span class="s">		descriptor_tag = 0x%02X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC391'><span class="s">		descriptor_length = %d = 0x%02X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC392'><span class="s">		service_type = 0x%02X </span><span class="se">\n</span><span class="s">\</span></div><div class='line' id='LC393'><span class="s">		service_provider_name_length = %d = 0x%02X </span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span></div><div class='line' id='LC394'>			<span class="n">sd</span><span class="o">-&gt;</span><span class="n">descriptor_tag</span><span class="p">,</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">descriptor_length</span><span class="p">,</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">descriptor_length</span><span class="p">,</span></div><div class='line' id='LC395'>			<span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_type</span><span class="p">,</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name_length</span><span class="p">,</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name_length</span><span class="p">);</span></div><div class='line' id='LC396'>			<span class="n">printf</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\t\t</span><span class="s">service_provider_name = &quot;</span><span class="p">);</span></div><div class='line' id='LC397'>			<span class="k">for</span><span class="p">(</span><span class="n">j</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="n">j</span><span class="o">&lt;</span><span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name_length</span><span class="p">;</span><span class="n">j</span><span class="o">++</span><span class="p">){</span></div><div class='line' id='LC398'>				<span class="n">printf</span><span class="p">(</span><span class="s">&quot;%02X &quot;</span><span class="p">,</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_provider_name</span><span class="p">[</span><span class="n">j</span><span class="p">]);</span></div><div class='line' id='LC399'>			<span class="p">}</span></div><div class='line' id='LC400'>			<span class="n">printf</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></div><div class='line' id='LC401'>			<span class="n">printf</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\t\t</span><span class="s">service_name_length = %d = 0x%02X</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name_length</span><span class="p">,</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name_length</span><span class="p">);</span></div><div class='line' id='LC402'>			<span class="n">printf</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\t\t</span><span class="s">service_name = &quot;</span><span class="p">);</span></div><div class='line' id='LC403'>			<span class="k">for</span><span class="p">(</span><span class="n">j</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="n">j</span><span class="o">&lt;</span><span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name_length</span><span class="p">;</span><span class="n">j</span><span class="o">++</span><span class="p">){</span></div><div class='line' id='LC404'>				<span class="n">printf</span><span class="p">(</span><span class="s">&quot;%02X &quot;</span><span class="p">,</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">service_name</span><span class="p">[</span><span class="n">j</span><span class="p">]);</span></div><div class='line' id='LC405'>			<span class="p">}</span></div><div class='line' id='LC406'>			<span class="n">printf</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></div><div class='line' id='LC407'><br/></div><div class='line' id='LC408'>			<span class="n">sd</span> <span class="o">=</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">next</span><span class="p">;</span></div><div class='line' id='LC409'>		<span class="p">}</span></div><div class='line' id='LC410'><br/></div><div class='line' id='LC411'>		<span class="n">i</span><span class="o">++</span><span class="p">;</span></div><div class='line' id='LC412'>		<span class="n">loop</span> <span class="o">=</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">next</span><span class="p">;</span></div><div class='line' id='LC413'>	<span class="p">}</span></div><div class='line' id='LC414'>	<span class="n">printf</span><span class="p">(</span><span class="s">&quot;======================================= </span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></div><div class='line' id='LC415'><br/></div><div class='line' id='LC416'><span class="p">}</span></div><div class='line' id='LC417'><br/></div><div class='line' id='LC418'><span class="kt">char</span> <span class="o">*</span><span class="nf">toB</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">buf</span><span class="p">,</span> <span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*</span><span class="n">str</span><span class="p">)</span></div><div class='line' id='LC419'><span class="p">{</span></div><div class='line' id='LC420'>	<span class="kt">int</span> <span class="n">i</span><span class="p">;</span></div><div class='line' id='LC421'><br/></div><div class='line' id='LC422'>	<span class="n">str</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">=</span> <span class="sc">&#39;\0&#39;</span><span class="p">;</span></div><div class='line' id='LC423'>	<span class="k">for</span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">;</span><span class="n">i</span><span class="o">&gt;=</span><span class="mi">0</span><span class="p">;</span><span class="n">i</span><span class="o">--</span><span class="p">){</span></div><div class='line' id='LC424'>		<span class="k">if</span><span class="p">(</span><span class="n">buf</span> <span class="o">&amp;</span> <span class="mh">0x1</span><span class="p">){</span></div><div class='line' id='LC425'>			<span class="n">str</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="sc">&#39;1&#39;</span><span class="p">;</span></div><div class='line' id='LC426'>		<span class="p">}</span><span class="k">else</span><span class="p">{</span></div><div class='line' id='LC427'>			<span class="n">str</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="sc">&#39;0&#39;</span><span class="p">;</span></div><div class='line' id='LC428'>		<span class="p">}</span></div><div class='line' id='LC429'>		<span class="n">buf</span> <span class="o">=</span> <span class="n">buf</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span><span class="p">;</span></div><div class='line' id='LC430'>	<span class="p">}</span></div><div class='line' id='LC431'><br/></div><div class='line' id='LC432'>	<span class="k">return</span> <span class="n">str</span><span class="p">;</span></div><div class='line' id='LC433'><span class="p">}</span></div><div class='line' id='LC434'><br/></div><div class='line' id='LC435'><span class="kt">void</span> <span class="nf">printPacket</span><span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="o">*</span> <span class="n">buf</span><span class="p">)</span></div><div class='line' id='LC436'><span class="p">{</span></div><div class='line' id='LC437'>	<span class="kt">int</span> <span class="n">i</span><span class="p">;</span></div><div class='line' id='LC438'><br/></div><div class='line' id='LC439'>	<span class="k">for</span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="n">i</span><span class="o">&lt;</span><span class="mi">188</span><span class="p">;</span><span class="n">i</span><span class="o">++</span><span class="p">){</span></div><div class='line' id='LC440'>		<span class="n">printf</span><span class="p">(</span><span class="s">&quot;%02X  &quot;</span><span class="p">,</span> <span class="n">buf</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span></div><div class='line' id='LC441'>		<span class="k">if</span><span class="p">((</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">%</span> <span class="mi">12</span> <span class="o">==</span> <span class="mi">0</span><span class="p">){</span></div><div class='line' id='LC442'>			<span class="n">printf</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span></div><div class='line' id='LC443'>		<span class="p">}</span></div><div class='line' id='LC444'>	<span class="p">}</span></div><div class='line' id='LC445'>	<span class="n">printf</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">-----------------------</span><span class="se">\n\n</span><span class="s">&quot;</span><span class="p">);</span></div><div class='line' id='LC446'><span class="p">}</span></div><div class='line' id='LC447'><br/></div><div class='line' id='LC448'><br/></div><div class='line' id='LC449'><span class="kt">void</span><span class="o">*</span> <span class="nf">MyMalloc</span><span class="p">(</span><span class="kt">size_t</span> <span class="n">size</span><span class="p">)</span></div><div class='line' id='LC450'><span class="p">{</span></div><div class='line' id='LC451'>	<span class="kt">void</span> <span class="o">*</span><span class="n">buf</span><span class="p">;</span></div><div class='line' id='LC452'><br/></div><div class='line' id='LC453'>	<span class="k">if</span><span class="p">((</span><span class="n">buf</span> <span class="o">=</span> <span class="n">malloc</span><span class="p">(</span><span class="n">size</span><span class="p">))</span> <span class="o">==</span> <span class="nb">NULL</span><span class="p">){</span></div><div class='line' id='LC454'>		<span class="n">perror</span><span class="p">(</span><span class="s">&quot;malloc error&quot;</span><span class="p">);</span></div><div class='line' id='LC455'>		<span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span></div><div class='line' id='LC456'>	<span class="p">}</span></div><div class='line' id='LC457'><br/></div><div class='line' id='LC458'>	<span class="k">return</span> <span class="n">buf</span><span class="p">;</span></div><div class='line' id='LC459'><span class="p">}</span></div><div class='line' id='LC460'><br/></div><div class='line' id='LC461'><span class="kt">void</span> <span class="nf">freeSdtLoop</span><span class="p">(</span><span class="n">LoopSection</span> <span class="o">*</span><span class="n">loop</span><span class="p">)</span></div><div class='line' id='LC462'><span class="p">{</span></div><div class='line' id='LC463'>	<span class="n">LoopSection</span> <span class="o">*</span><span class="n">tmp_loop</span><span class="p">;</span></div><div class='line' id='LC464'>	<span class="n">ServiceDescriptor</span> <span class="o">*</span><span class="n">sd</span><span class="p">,</span> <span class="o">*</span><span class="n">tmp_sd</span><span class="p">;</span></div><div class='line' id='LC465'><br/></div><div class='line' id='LC466'>	<span class="k">while</span><span class="p">(</span><span class="n">loop</span> <span class="o">!=</span> <span class="nb">NULL</span><span class="p">){</span></div><div class='line' id='LC467'>		<span class="k">if</span><span class="p">(</span><span class="n">loop</span><span class="o">-&gt;</span><span class="n">descriptor</span> <span class="o">!=</span> <span class="nb">NULL</span><span class="p">){</span></div><div class='line' id='LC468'>			<span class="n">sd</span> <span class="o">=</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">descriptor</span><span class="p">;</span></div><div class='line' id='LC469'>			<span class="k">while</span><span class="p">(</span><span class="n">sd</span> <span class="o">!=</span> <span class="nb">NULL</span><span class="p">){</span></div><div class='line' id='LC470'>				<span class="n">tmp_sd</span> <span class="o">=</span> <span class="n">sd</span><span class="o">-&gt;</span><span class="n">next</span><span class="p">;</span></div><div class='line' id='LC471'>				<span class="n">free</span><span class="p">(</span><span class="n">sd</span><span class="p">);</span></div><div class='line' id='LC472'>				<span class="n">sd</span> <span class="o">=</span> <span class="n">tmp_sd</span><span class="p">;</span></div><div class='line' id='LC473'>			<span class="p">}</span></div><div class='line' id='LC474'>		<span class="p">}</span></div><div class='line' id='LC475'>		<span class="n">tmp_loop</span> <span class="o">=</span> <span class="n">loop</span><span class="o">-&gt;</span><span class="n">next</span><span class="p">;</span></div><div class='line' id='LC476'>		<span class="n">free</span><span class="p">(</span><span class="n">loop</span><span class="p">);</span></div><div class='line' id='LC477'>		<span class="n">loop</span> <span class="o">=</span> <span class="n">tmp_loop</span><span class="p">;</span></div><div class='line' id='LC478'>	<span class="p">}</span></div><div class='line' id='LC479'><span class="p">}</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1868591/be1390d0bdf3adbf07e5833064e625822e912831/displaySdt.c" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1868591#file_display_sdt.c" style="float:right;margin-right:10px;color:#666">displaySdt.c</a>
            <a href="https://gist.github.com/1868591">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

]]></content:encoded>
			<wfw:commentRss>https://kimson.name/wordpress/archives/132/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>ubuntu11.10 : ffmpeg + libfaac + libx264 でTSファイルのエンコード</title>
		<link>https://kimson.name/wordpress/archives/115</link>
		<comments>https://kimson.name/wordpress/archives/115#comments</comments>
		<pubDate>Sat, 21 Jan 2012 03:21:11 +0000</pubDate>
		<dc:creator>kimson</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[libx264]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://kimson.name/wordpress/?p=115</guid>
		<description><![CDATA[ffmpegでlibx264を使ってのエンコードは公式パッケージのffmpegではライセンスの問題で使えないので，ソースからインストールかどこかのPPAからもらってくるとかする必要があります． 今回はソースからインストー &#8230; <a href="https://kimson.name/wordpress/archives/115">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>ffmpegでlibx264を使ってのエンコードは公式パッケージのffmpegではライセンスの問題で使えないので，ソースからインストールかどこかのPPAからもらってくるとかする必要があります．<br />
今回はソースからインストールしてみました．ただのメモです．<br />
インストールに関してはほぼ参考サイトのとおりです．<br />
（参考：<a href="https://wiki.ubuntulinux.jp/UbuntuTips/Application/HowToInstallAndUseLatestFFmpegAndX264">最新FFmpegとx264をUbuntu Lucid Lynx 10.04 にインストール</a>）</p>
<p>libx264をインストール</p>
<p style="padding-left: 30px;">$ git clone git://git.videolan.org/x264<br />
$ cd x264<br />
$ ./configure &#8211;enable-static<br />
$ make<br />
$ make install</p>
<p><del>これはいらないかもしれないです．ffmpeg自体に含まれている?<br />
</del>libfaacのインストール．</p>
<p style="padding-left: 30px;">$ sudo apt-get install libfaac-dev</p>
<p>そしてffmpegをインストール．</p>
<p style="padding-left: 30px;">$ git clone git://git.videolan.org/ffmpeg<br />
$ cd ffmpeg<br />
$ ./configure &#8211;enable-gpl &#8211;enable-version3 &#8211;enable-nonfree &#8211;enable-postproc &#8211;enable-libfaac &#8211;enable-libx264<br />
$ make<br />
$ make install</p>
<p>これでOK．<br />
あとはプリセットをどうするかですが，これも参考サイトのものを使う．<br />
参考サイト：<a href="http://d.hatena.ne.jp/munepi/20091227/1261941397">ffmpeg で TS をできるだけ高画質な mp4 へ変換してみた </a><br />
参考サイトのスクリプトを少し変えて使わせてもらってます．</p>
<ul>
<li>-vpre -&gt; -fpre プリセットの指定オプションが変更されててサンプルのままだとエラーとなるので変更</li>
<li>-s 1960&#215;1080 に変更</li>
<li>-vsync 1で音ズレ対策ができるようなので追加</li>
<li>-deinterlace を追加．あまりよろしくないようですが手軽にデインターレースできるので</li>
</ul>
<p>だいたい30分で2.4GByteのTSファイルが400MByte前後になる．<br />
Xeon 3040@1.86GHz（2cores)，メモリ1GByteで約3時間．<br />
Core i7 860@2.8GHz (4cores, 8threads)，メモリ4GByteで約1時間．</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://kimson.name/wordpress/archives/115/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>PHP:ZIPモジュールのインストール（CentOS5.5)</title>
		<link>https://kimson.name/wordpress/archives/107</link>
		<comments>https://kimson.name/wordpress/archives/107#comments</comments>
		<pubDate>Wed, 07 Sep 2011 13:15:45 +0000</pubDate>
		<dc:creator>kimson</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://kimson.name/wordpress/?p=107</guid>
		<description><![CDATA[PHPでZIPファイルの解凍をしたくて，その際に調べたことなどをメモとして残しておく． 環境 serversman@VPSのEntryのサーバです． OS : CentOS 5.5 PHP : 5.1.6 調べていると， &#8230; <a href="https://kimson.name/wordpress/archives/107">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>PHPでZIPファイルの解凍をしたくて，その際に調べたことなどをメモとして残しておく．</p>
<p>環境<br />
serversman@VPSのEntryのサーバです．<br />
OS : CentOS 5.5<br />
PHP : 5.1.6</p>
<p>調べていると，どうやらモジュールの追加が必要らしい．<br />
そのモジュールはPECLとやらでインストールできて，PECLはpearをインストールすれば使える．<br />
ということでpearのインストール．</p>
<p># yum -y instal php-pear</p>
<p>それでzipモジュールのインストール．最新バージョンをインストールしようとするとエラーが出るので，古いのを入れます．<br />
（参考：<a href="http://prograrts-job.blogspot.com/2010/11/php-zipso.html">http://prograrts-job.blogspot.com/2010/11/php-zipso.html</a>)</p>
<p># pecl install zip-1.8.10.tgz</p>
<p>あとは/etc/php.iniの適当なことろに設定を追加</p>
<p># echo &#8220;extension=zip.so&#8221; &gt;&gt; /etc/php.ini<br />
# service httpd restart</p>
<p>これでzipモジュールが使えるはず．</p>
<div id="extensionsWeblioEjBx" style="position: absolute; z-index: 2147483647; left: 181px; top: 677px; display: none;"></div>
]]></content:encoded>
			<wfw:commentRss>https://kimson.name/wordpress/archives/107/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>mdadm vs ZFS : ソフトウェアRAIDの性能比較</title>
		<link>https://kimson.name/wordpress/archives/92</link>
		<comments>https://kimson.name/wordpress/archives/92#comments</comments>
		<pubDate>Sat, 30 Jul 2011 22:07:36 +0000</pubDate>
		<dc:creator>kimson</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[ZFS]]></category>

		<guid isPermaLink="false">http://kimson.name/wordpress/?p=92</guid>
		<description><![CDATA[mdadmとZFSの性能を測ってみたのでグラフのせます。 構成は、前の記事（http://kimson.name/wordpress/archives/67）と同じ。disk3台つかてます。 ベンチマークも同じ。bonn &#8230; <a href="https://kimson.name/wordpress/archives/92">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>mdadmとZFSの性能を測ってみたのでグラフのせます。<br /> 構成は、前の記事（<a href="http://kimson.name/wordpress/archives/67">http://kimson.name/wordpress/archives/67</a>）と同じ。disk3台つかてます。<br /> ベンチマークも同じ。bonnie++で４GBのファイルを読み書き。</p>
<p>まずは、mdadm-raid0 vs zfs-stripe.<br /> 基本的にmdadm-raid0の勝ち。</p>
<p><a href="http://kimson.name/wordpress/wp-content/uploads/2011/07/strip-raid0.jpg"><img class="alignnone size-full wp-image-94" title="zfs stripe vs mdadm raid0" src="http://kimson.name/wordpress/wp-content/uploads/2011/07/strip-raid0.jpg" alt="zfs stripe vs mdadm raid0" width="756" height="448" /></a>﻿</p>
<p>次に、mdadm-raid1 vs zfs-mirror.<br /> 書き込みはmdadm-raid1のほうが性能がいい。<br /> 読み込みはzfs-mirrorのほうが高い。</p>
<p><a href="http://kimson.name/wordpress/wp-content/uploads/2011/07/mirror-raid1.jpg"><img class="alignnone size-full wp-image-95" title="zfs mirror vs mdadm raid1" src="http://kimson.name/wordpress/wp-content/uploads/2011/07/mirror-raid1.jpg" alt="zfs mirror vs mdadm raid1" width="757" height="448" /></a></p>
<p>最後に、mdadm-raid5 vs zfs-raidz.<br /> put_blockがだいぶzfs-raidzのほうが速い。</p>
<p><a href="http://kimson.name/wordpress/wp-content/uploads/2011/07/raidz-raid5.jpg"><img class="alignnone size-full wp-image-96" title="zfs raidz vs mdadm raid5" src="http://kimson.name/wordpress/wp-content/uploads/2011/07/raidz-raid5.jpg" alt="zfs raidz vs mdadm raid5" width="757" height="449" /></a></p>
<p>こんな感じでした。<br /> ファイルサーバをどういう構成にするか検討中で、使うとしたらmdadm-raid5 or zfs-raidz。<br /> 置くファイルは、動画とか音楽とか写真とか比較的大きいサイズのデータを置く予定。<br /> ということで、zfs-raidz がいいかなという感じ。<br /> 書き込み速いし、読み込みに関しては1GbEでつなぐとしてだいたいバンド幅使い切れるのでmdadm-raid5よりは遅いけどいいかな。</p>
<div id="extensionsWeblioEjBx" style="position: absolute; z-index: 2147483647; left: 153px; top: 59px; display: none;"></div>
]]></content:encoded>
			<wfw:commentRss>https://kimson.name/wordpress/archives/92/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>mdadmでソフトウェアRAIDの構築メモ</title>
		<link>https://kimson.name/wordpress/archives/85</link>
		<comments>https://kimson.name/wordpress/archives/85#comments</comments>
		<pubDate>Thu, 14 Jul 2011 15:58:21 +0000</pubDate>
		<dc:creator>kimson</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[raid]]></category>

		<guid isPermaLink="false">http://kimson.name/wordpress/?p=85</guid>
		<description><![CDATA[ディスク3枚を使って，ソフトウェアraid5を構築する． まず，ディスク全体のパーティションを作成．以下をそれぞれsdc, sddでも行う． # fdisk /dev/sdb helpの表示 Command (m for &#8230; <a href="https://kimson.name/wordpress/archives/85">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>ディスク3枚を使って，ソフトウェアraid5を構築する．<br />
まず，ディスク全体のパーティションを作成．以下をそれぞれsdc, sddでも行う．</p>
<p style="padding-left: 30px;"># fdisk  /dev/sdb</p>
<p style="padding-left: 30px;"><strong>helpの表示</strong><br />
Command (m for help): m<br />
Command action<br />
a   toggle a bootable flag<br />
b   edit bsd disklabel<br />
c   toggle the dos compatibility flag<br />
d   delete a partition<br />
l   list known partition types<br />
m   print this menu<br />
n   add a new partition<br />
o   create a new empty DOS partition table<br />
p   print the partition table<br />
q   quit without saving changes<br />
s   create a new empty Sun disklabel<br />
t   change a partition&#8217;s system id<br />
u   change display/entry units<br />
v   verify the partition table<br />
w   write table to disk and exit<br />
x   extra functionality (experts only)</p>
<p style="padding-left: 30px;"><strong>既存パーティションの削除</strong><br />
Command (m for help): d<br />
Selected partition 1</p>
<p style="padding-left: 30px;"><strong>新しいパーティションの作成</strong><br />
Command (m for help): n<br />
<strong>primary partitionを選択</strong><br />
Command action<br />
e   extended<br />
p   primary partition (1-4)<br />
p<br />
<strong>1を選択</strong><br />
Partition number (1-4): 1<br />
<strong>あとはデフォルトのままenter, enter</strong><br />
First cylinder (1-60563, default 1):<br />
Using default value 1<br />
Last cylinder, +cylinders or +size{K,M,G} (1-60563, default 60563):<br />
Using default value 60563</p>
<p style="padding-left: 30px;"><strong>作成したパーティションの確認</strong><br />
Command (m for help): p</p>
<p style="padding-left: 30px;">Disk /dev/sdb: 500.1 GB, 500106780160 bytes<br />
256 heads, 63 sectors/track, 60563 cylinders<br />
Units = cylinders of 16128 * 512 = 8257536 bytes<br />
Sector size (logical/physical): 512 bytes / 512 bytes<br />
I/O size (minimum/optimal): 512 bytes / 512 bytes<br />
Disk identifier: 0&#215;00000000</p>
<p style="padding-left: 30px;">Device Boot      Start         End      Blocks   Id  System<br />
/dev/sdb1               1       60563   488380000+  83  Linux</p>
<p style="padding-left: 30px;"><strong>変更を反映して終了</strong><br />
Command (m for help): w<br />
The partition table has been altered!</p>
<p style="padding-left: 30px;">Calling ioctl() to re-read partition table.<br />
Syncing disks.</p>
<p>raid5の構築</p>
<p style="padding-left: 30px;"># mdadm -C /dev/md0 -l5 -n3 /dev/sd[bcd]1<br />
mdadm: Defaulting to version 1.2 metadata<br />
mdadm: array /dev/md0 started.</p>
<p>状態の確認</p>
<p style="padding-left: 30px;"># mdadm -D /dev/md0<br />
/dev/md0:<br />
Version : 1.2<br />
Creation Time : Fri Jul 15 00:34:46 2011<br />
Rd Dev Size : 488378368 (465.75 GiB 500.10 GB)</p>
<p style="padding-left: 30px;"><span style="font-size: 16px; font-family: Georgia, 'Bitstream Charter', serif; line-height: 24px;">Raid Devices : 3<br style="color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 1.5;" />Total Devices : 3<br style="color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 1.5;" />Persistence : Superblock is persistent<br style="color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 1.5;" />Update Time : Fri Jul 15 00:34:46 2011<br style="color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 1.5;" />State : clean, degraded, recovering<br style="color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 1.5;" />Active Devices : 2<br style="color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 1.5;" />Working Devices : 3<br style="color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 1.5;" />Failed Devices : 0<br style="color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 1.5;" />Spare Devices : 1<br style="color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 1.5;" />Layout : left-symmetric<br style="color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 1.5;" /></span></p>
<p style="padding-left: 30px;">Chunk Size : 512Kaid Level : raid5<br />
Array Size : 976756736 (931.51 GiB 1000.20 GB)<br />
Use</p>
<p style="padding-left: 30px;">Rebuild Status : 0% complete</p>
<p style="padding-left: 30px;">Name : kimson.name:0  (local to host kimson.name)<br />
UUID : a2a033fe:98d2f0c3:148a607a:90f0b39c<br />
Events : 1</p>
<p style="padding-left: 30px;">Number   Major   Minor   RaidDevice State<br />
0       8       17        0      active sync   /dev/sdb1<br />
1       8       33        1      active sync   /dev/sdc1<br />
3       8       49        2      spare rebuilding   /dev/sdd1</p>
<p>フォーマットする．今回はext4で．</p>
<p style="padding-left: 30px;"># mkfs.ext4 /dev/md0<br />
mke2fs 1.41.12 (17-May-2010)<br />
Filesystem label=<br />
OS type: Linux<br />
Block size=4096 (log=2)<br />
Fragment size=4096 (log=2)<br />
Stride=128 blocks, Stripe width=256 blocks<br />
61054976 inodes, 244189184 blocks<br />
12209459 blocks (5.00%) reserved for the super user<br />
First data block=0<br />
Maximum filesystem blocks=4294967296<br />
7453 block groups<br />
32768 blocks per group, 32768 fragments per group<br />
8192 inodes per group<br />
Superblock backups stored on blocks:<br />
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,<br />
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,<br />
102400000, 214990848</p>
<p style="padding-left: 30px;">Writing inode tables: done<br />
Creating journal (32768 blocks): done<br />
Writing superblocks and filesystem accounting information: done</p>
<p style="padding-left: 30px;">This filesystem will be automatically checked every 23 mounts or<br />
180 days, whichever comes first.  Use tune2fs -c or -i to override.</p>
<p>あとはマウントするだけ．</p>
<p style="padding-left: 30px;"># mount /dev/md0 tmp</p>
<p>次は性能を測って，ZFSと比較する．</p>
]]></content:encoded>
			<wfw:commentRss>https://kimson.name/wordpress/archives/85/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>CentOS 6.0でNative ZFS（インストールから簡単な評価まで）</title>
		<link>https://kimson.name/wordpress/archives/67</link>
		<comments>https://kimson.name/wordpress/archives/67#comments</comments>
		<pubDate>Tue, 12 Jul 2011 11:45:43 +0000</pubDate>
		<dc:creator>kimson</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[ZFS]]></category>

		<guid isPermaLink="false">http://kimson.name/wordpress/?p=67</guid>
		<description><![CDATA[やっとこさCentOS6がでたので，ZFS on linuxを試してみる． Native ZFS for linux : http://zfsonlinux.org/ ここからspl-0.6.0-rc4とzfs-0.6. &#8230; <a href="https://kimson.name/wordpress/archives/67">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>やっとこさCentOS6がでたので，ZFS on linuxを試してみる．</p>
<p>Native ZFS for linux : <a href="http://zfsonlinux.org/">http://zfsonlinux.org/</a><br />
ここからspl-0.6.0-rc4とzfs-0.6.0-rc4をインストールします．<br />
必要なパッケージをインストールしつつ</p>
<p style="padding-left: 30px;"># ./configure<br />
# make<br />
# make install</p>
<p>で特にハマることもなく，インストールできた．<br />
zfsはsplが必要なのでsplを先にインストールする必要があります．<br />
そして，モジュールのインストール</p>
<p style="padding-left: 30px;"># modprobe zfs</p>
<p>これでインストールは完了．<br />
ということで，簡単に性能評価してみる．</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">CPU</td>
<td valign="top">Celeron G1101 2.26GHz</td>
</tr>
<tr>
<td valign="top">Memory</td>
<td valign="top">DDR3, 2GB</td>
</tr>
<tr>
<td valign="top">OS</td>
<td valign="top">CentOS 6.0,  2.6.32-71.29.1.el6.x86_64</td>
</tr>
<tr>
<td valign="top">HDD</td>
<td valign="top">HDP725050GLA360, SATA 3Gb/s, 7200RPM,   500GB  *2 (sdb,sdd)<br />
HDT725050VLA360, SATA3Gb/s, 7200RPM, 500GB *1 (sdc)</td>
</tr>
</tbody>
</table>
<p>ML110G6を使ってます．<br />
まずそれぞれext4でのディスク性能を<a title="Bonnie++" href="http://www.coker.com.au/bonnie++/" target="_blank">bonnie++1.03e</a>で測定．単位はMByte/sです．<br />
4GBの書き込み読み込みを行ってます．5回の平均値となってます．</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top"></td>
<td valign="top">putc</td>
<td valign="top">put_block</td>
<td valign="top">rewrite</td>
<td valign="top">getc</td>
<td valign="top">get_block</td>
</tr>
<tr>
<td valign="top">sdb</td>
<td valign="top">77.4</td>
<td valign="top">92.2</td>
<td valign="top">39.2</td>
<td valign="top">67.7</td>
<td valign="top">112.0</td>
</tr>
<tr>
<td valign="top">sdc</td>
<td valign="top">75.0</td>
<td valign="top">71.2</td>
<td valign="top">31.8</td>
<td valign="top">68.9</td>
<td valign="top">95.9</td>
</tr>
<tr>
<td valign="top">sdd</td>
<td valign="top">77.8</td>
<td valign="top">92.6</td>
<td valign="top">39.5</td>
<td valign="top">67.5</td>
<td valign="top">113.7</td>
</tr>
</tbody>
</table>
<p>次はZFSの性能です．<br />
stripe, mirror, raidzを試しました．それぞれ以下の構成になっています．</p>
<p style="padding-left: 30px;">stripe<br />
#zpool create tank sdb sdc sdd<br />
mirror<br />
#zpool create tank mirror sdb sdc sdd<br />
raidz<br />
#zpool create tank raidz sdb sdc sdd</p>
<p>結果です．ext4と同様に測定してます．</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="72" valign="top"></td>
<td width="72" valign="top">putc</td>
<td width="72" valign="top">put_block</td>
<td width="72" valign="top">rewrite</td>
<td width="72" valign="top">getc</td>
<td width="72" valign="top">get_block</td>
</tr>
<tr>
<td width="72" valign="top">stripe</td>
<td width="72" valign="top">61.3</td>
<td width="72" valign="top">140.9</td>
<td width="72" valign="top">76.1</td>
<td width="72" valign="top">68.8</td>
<td width="72" valign="top">184.6</td>
</tr>
<tr>
<td width="72" valign="top">mirror</td>
<td width="72" valign="top">49.8</td>
<td width="72" valign="top">51.1</td>
<td width="72" valign="top">32.6</td>
<td width="72" valign="top">69.0</td>
<td width="72" valign="top">130.9</td>
</tr>
<tr>
<td width="72" valign="top">raidz</td>
<td width="72" valign="top">66.3</td>
<td width="72" valign="top">95.4</td>
<td width="72" valign="top">43.3</td>
<td width="72" valign="top">67.4</td>
<td width="72" valign="top">114.1</td>
</tr>
</tbody>
</table>
<p>とりあえず，こんな感じになりましたというところで今回は終了．<br />
手軽にraid0, 1, 5相当のストレージが作れていい感じだなという印象．</p>
]]></content:encoded>
			<wfw:commentRss>https://kimson.name/wordpress/archives/67/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>wordpress : デフォルトテーマにはてぶボタンとTweetボタンを追加</title>
		<link>https://kimson.name/wordpress/archives/20</link>
		<comments>https://kimson.name/wordpress/archives/20#comments</comments>
		<pubDate>Mon, 09 May 2011 09:09:10 +0000</pubDate>
		<dc:creator>kimson</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://kimson.name/wordpress/?p=20</guid>
		<description><![CDATA[まずTweetボタンの追加はプラグインを使った。 WP Tweet Button : http://wordpress.org/extend/plugins/wp-tweet-button/ 高機能でいろいろな設定ができ &#8230; <a href="https://kimson.name/wordpress/archives/20">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>まずTweetボタンの追加はプラグインを使った。<br />
WP Tweet Button : <a href="http://wordpress.org/extend/plugins/wp-tweet-button/">http://wordpress.org/extend/plugins/wp-tweet-button/</a><br />
高機能でいろいろな設定ができるのはすごくいいです．<br />
記事冒頭のTweetボタンとはてぶボタンを見てわかる通り，改行が入ってしまうのがちょっと個人的に気に入らないです．ホントは横にならべたいんだけどな．．．調べ中です．</p>
<p>はてぶボタンはいいプラグインが見つからなかったので、テーマを編集して追加した。（なんかいいプラグインを知ってたら教えてください．）<br />
はてぶボタンはここから取得できます。 : <a href="http://b.hatena.ne.jp/guide/bbutton">http://b.hatena.ne.jp/guide/bbutton</a></p>
<p><span id="more-20"></span></p>
<pre class="brush: xml; title: ソース１：取得したはてぶボタンのコード（注意：見やすいように改行を入れてます．）; notranslate">
&lt;a href=&quot;http://b.hatena.ne.jp/entry/http://example.jp&quot;
class=&quot;hatena-bookmark-button&quot;
data-hatena-bookmark-title=&quot;example.jp&quot;
data-hatena-bookmark-layout=&quot;standard&quot;
title=&quot;このエントリーをはてなブックマークに追加&quot;&gt;
&lt;img src=&quot;http://b.st-hatena.com/images/entry-button/button-only.gif&quot;
alt=&quot;このエントリーをはてなブックマークに追加&quot;
width=&quot;20&quot; height=&quot;20&quot; style=&quot;border: none;&quot; /&gt;&lt;/a&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://b.st-hatena.com/js/bookmark_button.js&quot;
charset=&quot;utf-8&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
</pre>
<p>ユーザが変更するのは，&#8221;href&#8221;と&#8221;data-hatena-bookmark-title&#8221;です．<br />
&#8220;href&#8221;はhttp://b.hatena.ne.jp/entry/以下にURLを追加すればいい。<br />
（例：href=&#8221;http://b.hatena.ne.jp/entry/http://kimson.name/wordpress/&#8221;）<br />
&#8220;data-hatena-bookmark-title&#8221;はページのタイトルを入れる。<br />
（例：data-hatena-bookmark-title=&#8221;wordpress : デフォルトテーマにはてぶボタンとTweetボタンを追加&#8221;）</p>
<p>デフォルトテーマの編集ですがブラウザ経由でも出来るみたいですが今回は直接、<br />
wp-content/themes/twentyten/ ディレクトリ以下のファイルを編集します。<br />
とりあえず記事１つを表示するページに表示させたいので、loop-single.phpを編集します。<br />
以下に示すソースコードは変更前のものです。記事のタイトル，本体を表示している部分．</p>
<pre class="brush: xml; title: ソース２：loop-single.phpの25行目くらいから; notranslate">
&lt;div id=&quot;post-&lt;?php the_ID(); ?&gt;&quot; &lt;?php post_class(); ?&gt;&gt;
&lt;h1 class=&quot;entry-title&quot;&gt;&lt;?php the_title(); ?&gt;&lt;/h1&gt;
&lt;div class=&quot;entry-meta&quot;&gt;
&lt;?php twentyten_posted_on(); ?&gt;
&lt;/div&gt;&lt;!-- .entry-meta --&gt;
&lt;div class=&quot;entry-content&quot;&gt;
&lt;?php the_content(); ?&gt;
&lt;?php wp_link_pages( array( 'before' =&gt; '&lt;div class=&quot;page-link&quot;&gt;' . __( 'Pages:', 'twentyten' ), 'after' =&gt; '&lt;/div&gt;' ) ); ?&gt;
&lt;/div&gt;&lt;!-- .entry-content --&gt;
</pre>
<ul>
<li>the_ID()関数では記事IDの取得</li>
<li>the_title()関数でタイトルを取得</li>
<li>the_content()関数で記事本体を取得</li>
</ul>
<p>記事のURLの取得ですが、get_permalink()関数で取得できます。ということでそれぞれ以下のようにすればいいはず</p>
<ul>
<li>href=&#8221;http://b.hatena.ne.jp/entry/&lt;?php echo get_permalink(); ?&gt;&#8221;</li>
<li>data-hatena-bookmark-title=&#8221;&lt;?php echo the_title(); ?&gt;&#8221;</li>
</ul>
<p>ということで、挿入するコードはこんな感じになります。</p>
<pre class="brush: xml; title: ソース３：変更したはてぶボタンのコード（注意：見やすいように改行を入れてます．）; notranslate">
&lt;a href=&quot;http://b.hatena.ne.jp/entry/&lt;?php echo get_permalink(); ?&gt;&quot;
class=&quot;hatena-bookmark-button&quot;
data-hatena-bookmark-title=&quot;&lt;?php echo the_title(); ?&gt;&quot;
data-hatena-bookmark-layout=&quot;standard&quot;
title=&quot;このエントリーをはてなブックマークに追加&quot;&gt;
&lt;img src=&quot;http://b.st-hatena.com/images/entry-button/button-only.gif&quot;
alt=&quot;このエントリーをはてなブックマークに追加&quot;
width=&quot;20&quot; height=&quot;20&quot; style=&quot;border: none;&quot; /&gt;&lt;/a&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://b.st-hatena.com/js/bookmark_button.js&quot;
charset=&quot;utf-8&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
</pre>
<p>これを、ソース２に書いたあたりの好きなことろに入れます。<br />
記事の冒頭にいれたければ、the_content()関数の前に入れればOKです。</p>
]]></content:encoded>
			<wfw:commentRss>https://kimson.name/wordpress/archives/20/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>ffmpeg : libx264の設定オプションメモ</title>
		<link>https://kimson.name/wordpress/archives/5</link>
		<comments>https://kimson.name/wordpress/archives/5#comments</comments>
		<pubDate>Sun, 08 May 2011 04:03:02 +0000</pubDate>
		<dc:creator>kimson</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[x264]]></category>
		<category><![CDATA[エンコード]]></category>

		<guid isPermaLink="false">http://kimson.name/wordpress/?p=5</guid>
		<description><![CDATA[ソース：http://help.encoding.com/idx.php/16/126/article/libx264.html（ソースの更新日時は2010/01/20) 2011/05/08：とりあえずは，ただの日本語 &#8230; <a href="https://kimson.name/wordpress/archives/5">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>ソース：<a href="http://help.encoding.com/idx.php/16/126/article/libx264.html">http://help.encoding.com/idx.php/16/126/article/libx264.html</a>（ソースの更新日時は2010/01/20)</p>
<p>2011/05/08：とりあえずは，ただの日本語訳を目指します．まったく詳しくないのでおかしなところがあったら教えてください．</p>
<p>ffmpeg用の設定例がいくつかすでに用意されていて，それの解説はここを参照とのこと．<br />
<a href="http://rob.opendot.cl/index.php/useful-stuff/ffmpeg-x264-encoding-guide/">http://rob.opendot.cl/index.php/useful-stuff/ffmpeg-x264-encoding-guide/ </a><br />
/usr/share/ffmpeg以下に有るlibx264-*.ffpresetの事だと思う．（場所は設定や環境によって違う可能性あり．）</p>
<p>ということで，オプションの内容に．</p>
<p><span id="more-5"></span></p>
<p><strong>Frame-type options:</strong></p>
<p><strong>g &lt;integer&gt;</strong><br />
Keyframeの間隔（GOP長）．I-frame間の距離の最大値を指定するもの．高いGOPを指定した場合，少し圧縮効率はよくなる．しかし動画のシークが少し難しくなる．250を推奨．</p>
<p><strong>keyint_min &lt;integer&gt;</strong><br />
上記のGOP長の最小値．25を推奨．</p>
<p><strong>sc_threshold &lt;integer&gt;</strong><br />
scenecutのしきい値．気にする必要はあんまない．40を推奨．</p>
<p><strong>bf &lt;integer&gt;</strong><br />
B-frameはH.264の中核をなすもので，H.264において既存の形式よりも効率的である． いくつかの特定の対象（HD-DVD, Blu-Ray)においては，連続するB-frameの数は制限される．x264ではB-adaptが使われていれば自動的に最適な値が使われるので，最大値である16に設定しとけば問題ない．iPod等ではB-frameをサポートしていないので注意が必要．16を推奨．</p>
<p><strong>b_strategy &lt;integer&gt;</strong><br />
B-frameの数の決定方法についての設定．x264はデフォルトで最適な値のB-frameを自動的に決定して使うので1を推奨．</p>
<p>0:（エンコが）とても速いが推奨しない．pre-scenecutが働かない．b-adaptをoff<br />
1:速い．デフォルトの値．スピードと質をバランスよく考慮．<br />
2: とても遅い．しかし，B-frameの値をより正確に決める設定．ただしくfades(色あせ?）を検出し，一般的にかなりいい品質になる．高いB-frame値を指定した場合非常にスピードが遅くなるので，B-frameの値は比較的小さい値（3くらい）を指定したほうがいい．スレッドモードで実行するとき最初のパスは非常に遅くなる．</p>
<p><strong>bframebias</strong><br />
x264ではより高い値のB-frameを選ぶことができるが，おすすめしない．これはその設定ができるっぽい．0を推奨．</p>
<p><strong>flags2 + bpyramid</strong></p>
<blockquote><p>Allows B-frames to be kept as references. The name is technically misleading, as x264 does not actually use pyramid coding; it simply adds B-references to the normal reference list. B-references get a quantizer halfway between that of a B-frame and P-frame. This setting is generally beneficial, but it increases the DPB (decoding picture buffer) size required for playback, so when encoding for hardware, disabling it may help compatibility.</p></blockquote>
<p><strong>coder</strong><br />
CABACはデフォルトでx264が使っているエントロピーエンコーダ．デコードとエンコードの終わりが少し遅くなってしまうが，実写動画の圧縮を10-15%改善し，アニメ（特にビットレートの低い）においてはより高い向上を得ることができる．格子量子化を使う必要がある．CABACを使わない場合，特に高いビットレートの場合少しデコードの速度がよくなる．CABACはベースラインプロファイルでは使用できない．&#8221;-coder 1&#8243;(CABACを使う）を推奨．</p>
<p><strong>refs &lt;integer&gt;</strong><br />
H.264の最も有用な特徴のひとつは，現在のフレームの直前の物以外のフレームを参照する事ができる点である．このパラメータはいくつ参照するかを指定するもの．最大値は16．refの値が大きくなるとDPB（Decoded Picture Buffer)の要求が大きくなる．プレイバックデバイスはよく扱えるrefsの数が厳密に制限される．実写動画ではより参照数は4-8を超えない値に制限される．しかしアニメ動画では最大値である16を使っても有用である．より多くのフレームを参照するにはより多くの計算パワーが必要．すべてのフレームはモーションサーチによって探されるため．&#8221;-refs 6&#8243;を推奨．</p>
<p><strong>flags</strong><br />
loopフィルターを行うかどうか．&#8221;-flags +loop&#8221; (loopフィルタを有効）を推奨．<br />
無効にするときは&#8221;-flags -loop&#8221;か？</p>
<p><strong>deblockalpha &lt;integer&gt;<br />
deblockbeta &lt;integer&gt; </strong><br />
H.264の主要な特徴の一つはin-loop deblockerである．これはブロックノイズを防ぐ．（which avoids the problem of blocking artifacts disrupting motion estimation.）<br />
デコーディング時CPUがすこし必要となるが，ほぼすべてのケースに置いて非常に品質を上げることができる．alpha（強さ）とbeta（しきい値）の二つのパラメータを指定．&#8221;-deblockalpha 0 -deblockbeta 0&#8243;を推奨．（&#8221;-flags +loop&#8221;が必須）</p>
<p><strong>Ratecontrol :</strong></p>
<p><strong>cqp &lt;integer&gt;</strong></p>
<p><strong>b &lt;integer&gt;</strong></p>
<p><strong>crf &lt;integer&gt;</strong></p>
<p><strong>maxrate &lt;integer&gt;</strong></p>
<p><strong>bufsize &lt;integer&gt;</strong></p>
<p><strong>rc_init_occupancy &lt;float&gt;</strong></p>
<p><strong>qmin &lt;integer&gt;</strong></p>
<p><strong>qmax &lt;integer&gt;</strong></p>
<p><strong>qdiff &lt;integer&gt;</strong></p>
<p><strong>bt &lt;float&gt;</strong></p>
<p><strong>i_qfactor &lt;float&gt;</strong></p>
<p><strong>b_qfactor &lt;float&gt;</strong></p>
<p><strong>chromaoffset &lt;integer&gt;</strong></p>
<p><strong>pass &lt;1,2,3&gt;</strong></p>
<p><strong>rc_eq &lt;string&gt;</strong></p>
<p><strong>qcomp &lt;float&gt;</strong></p>
<p><strong>complexityblur &lt;float&gt;</strong></p>
<p><strong>qblur &lt;float&gt;</strong></p>
<p><strong>partitions &lt;string&gt;</strong></p>
<p><strong>directpred &lt;integer&gt;</strong></p>
<p><strong>flags2 + wpred</strong></p>
<p><strong>me_method &lt;epzs,hex,umh,full&gt;</strong></p>
<p><strong>me_range &lt;integer&gt;</strong></p>
<p><strong>subq</strong></p>
<p><strong>flags2 +mixed_refs</strong></p>
<p><strong>flags2 +dct8x8</strong></p>
<p><strong>trellis &lt;0,1,2&gt;</strong></p>
<p><strong>flags2 -fastpskip</strong></p>
]]></content:encoded>
			<wfw:commentRss>https://kimson.name/wordpress/archives/5/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
	</channel>
</rss>

