手順
- gpac-libgpacをインストールしておく。gpac-mp4boxをインストールしてあればすでにインストールされているはず。
- Seraphy氏のサイトからソースをいただく。(20081009版)
- 展開する。
> mkdir DtsEdit
> cd DtsEdit
> unzip ../DtsEdit_src20081009.zip
- 一部ファイルを削除する。
> rm stdint.h
- 文字コード、改行コードを変更する。
> nkf -e -Lu hoge.cpp > hoge.cpp.euc
> mv hoge.cpp.euc hoge.cpp
- てな感じですべてのcpp,hファイルを変更する。
- じゃまくさいので、スクリプトで
#!/bin/sh
NKF=/usr/local/bin/nkf
for file in `ls ./DtsEdit/*.cpp ./DtsEdit/*.h`; do
echo "converting "$file
${NKF} -e -Lu $file > $file".euc-unix"
mv $file".euc-unix" $file
done
- パッチファイル。同じ文字コード、改行コードで作成。
diff -urN DtsEdit.orig/EditMain.cpp DtsEdit/EditMain.cpp
--- DtsEdit.orig/EditMain.cpp 2009-03-06 22:32:51.000000000 +0900
+++ DtsEdit/EditMain.cpp 2009-03-06 00:47:09.000000000 +0900
@@ -54,6 +54,7 @@
qsort(tsSort, mi.ui_sampleCount, sizeof(T_TS_LIST), (int(*)(const void*, const void*))CompareTS_PTS);
// 最終フレームのFPS補完
+ {
u32 i = mi.ui_sampleCount;
tsSort[i].DTS = ts[i-1].DTS + (ts[i-1].DTS - ts[i-2].DTS);
tsSort[i].CTS_Offset = 0;
@@ -266,6 +267,7 @@
goto _ERROR_RET;
}
}
+ }
_ERROR_RET:
diff -urN DtsEdit.orig/EditMain.h DtsEdit/EditMain.h
--- DtsEdit.orig/EditMain.h 2009-03-06 22:32:51.000000000 +0900
+++ DtsEdit/EditMain.h 2009-03-05 22:54:33.000000000 +0900
@@ -3,7 +3,7 @@
#pragma once
-#define MODE_IN 0x00000001ui32
-#define MODE_OUT 0x00000002ui32
+#define MODE_IN ((ui32)0x00000001)
+#define MODE_OUT ((ui32)0x00000002)
void EditMain(T_EDIT_PARAM *prm);
diff -urN DtsEdit.orig/Makefile DtsEdit/Makefile
--- DtsEdit.orig/Makefile 1970-01-01 09:00:00.000000000 +0900
+++ DtsEdit/Makefile 2009-03-05 22:54:33.000000000 +0900
@@ -0,0 +1,17 @@
+# Makefile for DtsEdit
+CPP = g++
+OBJS = DtsEdit.o EditMain.o Help.o common.o
+#
+DtsEdit: $(OBJS)
+ $(CPP) -o $@ $(OBJS) -lgpac -L/usr/local/lib
+#
+.cpp.o:
+ g++ -c $< -I /usr/local/include -I ./
+#
+clean:
+ @rm -f DtsEdit *.o *~
+#
+DtsEdit.o: stdafx.h Help.h EditMain.h windows.h
+EditMain.o: stdafx.h Help.h EditMain.h debug.h
+Help.o: Help.h
+common.o: stdafx.h Help.h debug.h
diff -urN DtsEdit.orig/common.cpp DtsEdit/common.cpp
--- DtsEdit.orig/common.cpp 2009-03-06 22:32:51.000000000 +0900
+++ DtsEdit/common.cpp 2009-03-05 22:54:33.000000000 +0900
@@ -1,5 +1,5 @@
#include "stdafx.h"
-#include "help.h"
+#include "Help.h"
#include "debug.h"
// 最大公約数の取得
diff -urN DtsEdit.orig/stdafx.h DtsEdit/stdafx.h
--- DtsEdit.orig/stdafx.h 2009-03-06 22:32:51.000000000 +0900
+++ DtsEdit/stdafx.h 2009-03-06 22:34:42.000000000 +0900
@@ -3,6 +3,7 @@
// を記述します。
//
+/*
#pragma once
#ifndef _WIN32_WINNT // Windows XP 以降のバージョンに固有の機能の使用を許可します。
@@ -12,8 +13,23 @@
#include <windows.h>
//#include <stdio.h>
//#include <tchar.h>
+*/
// TODO: プログラムに必要な追加ヘッダーをここで参照してください。
+#include <stdio.h>
+#include <strings.h>
+#include <unistd.h>
+#include <sys/types.h>
+typedef int BOOL;
+typedef __uint32_t ui32;
#include <gpac/isomedia.h>
#include <gpac/internal/isomedia_dev.h>
#include "common.h"
+
+#define ZeroMemory(ptr,size) memset(ptr,0,size)
+#define _stricmp(str1,str2) strcasecmp(str1,str2)
+#define GetFileAttributes(path) ((__uint32_t)access(path,F_OK))
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
diff -urN DtsEdit.orig/windows.h DtsEdit/windows.h
--- DtsEdit.orig/windows.h 1970-01-01 09:00:00.000000000 +0900
+++ DtsEdit/windows.h 2009-03-06 22:27:43.000000000 +0900
@@ -0,0 +1 @@
+//
- patchをあてる。スペースとかタブがうまく投稿できてないので。
> patch -l -p < DtsEdit.patch
- makeする,これも投稿の問題で、Makefileのスペース8個をタブに書き換えてください。
> cd DtsEdit
> make
- できあがり、のはず。
No comments:
Post a Comment