mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-27 23:42:51 +02:00
moviecut: formatting code using astyle
Origin commit data
------------------
Branch: ni/coolstream
Commit: 426c5f41fe
Author: vanhofen <vanhofen@gmx.de>
Date: 2022-09-17 (Sat, 17 Sep 2022)
Origin message was:
------------------
- moviecut: formatting code using astyle
------------------
No further description and justification available within origin commit message!
------------------
This commit was generated by Migit
This commit is contained in:
@@ -59,7 +59,8 @@ typedef struct pvr_file_info
|
||||
uint32_t uTSPacketSize;
|
||||
} PVR_FILE_INFO;
|
||||
|
||||
struct mybook {
|
||||
struct mybook
|
||||
{
|
||||
off64_t pos;
|
||||
off64_t len;
|
||||
bool ok;
|
||||
@@ -82,11 +83,13 @@ CMovieCut::~CMovieCut()
|
||||
|
||||
void CMovieCut::paintProgress(bool refresh)
|
||||
{
|
||||
if (!timescale) {
|
||||
if (!timescale)
|
||||
{
|
||||
timescale = new CProgressBar();
|
||||
timescale->setType(CProgressBar::PB_TIMESCALE);
|
||||
}
|
||||
if (refresh) {
|
||||
if (refresh)
|
||||
{
|
||||
frameBuffer->paintBoxRel(x + 40, y + 12, 200, 15, COL_INFOBAR_PLUS_0); //TODO: remove unneeded box paints
|
||||
timescale->reset();
|
||||
}
|
||||
@@ -105,15 +108,18 @@ void CMovieCut::reset_atime(const char * path, time_t tt)
|
||||
void CMovieCut::WriteHeader(const char *path, uint32_t duration)
|
||||
{
|
||||
int srcfd = open(path, O_WRONLY | O_LARGEFILE);
|
||||
if (srcfd >= 0) {
|
||||
if (lseek64(srcfd, 188-sizeof(PVR_FILE_INFO), SEEK_SET) >= 0) {
|
||||
if (srcfd >= 0)
|
||||
{
|
||||
if (lseek64(srcfd, 188 - sizeof(PVR_FILE_INFO), SEEK_SET) >= 0)
|
||||
{
|
||||
PVR_FILE_INFO pinfo;
|
||||
pinfo.uDuration = duration;
|
||||
pinfo.uTSPacketSize = 188;
|
||||
write(srcfd, (uint8_t *)&pinfo, sizeof(PVR_FILE_INFO));
|
||||
}
|
||||
close(srcfd);
|
||||
} else
|
||||
}
|
||||
else
|
||||
perror(path);
|
||||
}
|
||||
|
||||
@@ -121,8 +127,10 @@ uint32_t CMovieCut::getHeaderDurationMS(MI_MOVIE_INFO * minfo)
|
||||
{
|
||||
uint32_t duration = 0;
|
||||
int srcfd = open(minfo->file.Name.c_str(), O_RDONLY | O_LARGEFILE);
|
||||
if (srcfd >= 0) {
|
||||
if (lseek64(srcfd, 188-sizeof(PVR_FILE_INFO), SEEK_SET) >= 0) {
|
||||
if (srcfd >= 0)
|
||||
{
|
||||
if (lseek64(srcfd, 188 - sizeof(PVR_FILE_INFO), SEEK_SET) >= 0)
|
||||
{
|
||||
PVR_FILE_INFO pinfo;
|
||||
memset(&pinfo, 0, sizeof(PVR_FILE_INFO));
|
||||
read(srcfd, (uint8_t *)&pinfo, sizeof(PVR_FILE_INFO));
|
||||
@@ -131,7 +139,8 @@ uint32_t CMovieCut::getHeaderDurationMS(MI_MOVIE_INFO * minfo)
|
||||
close(srcfd);
|
||||
printf("CMovieCut::%s: [%s] duration %d ms\n", __func__, minfo->file.Name.c_str(), duration);
|
||||
}
|
||||
} else
|
||||
}
|
||||
else
|
||||
perror(minfo->file.Name.c_str());
|
||||
|
||||
return duration;
|
||||
@@ -140,7 +149,8 @@ uint32_t CMovieCut::getHeaderDurationMS(MI_MOVIE_INFO * minfo)
|
||||
off64_t CMovieCut::getSecondSize(MI_MOVIE_INFO *minfo)
|
||||
{
|
||||
struct stat64 s;
|
||||
if (stat64(minfo->file.Name.c_str(), &s)) {
|
||||
if (stat64(minfo->file.Name.c_str(), &s))
|
||||
{
|
||||
perror(minfo->file.Name.c_str());
|
||||
return 0;
|
||||
}
|
||||
@@ -167,7 +177,8 @@ bool CMovieCut::truncateMovie(MI_MOVIE_INFO * minfo)
|
||||
off64_t newsize = secsize * minfo->bookmarks.end;
|
||||
|
||||
printf("CMovieCut::%s: [%s] truncate to %d sec, new size %" PRId64 "\n", __func__, minfo->file.Name.c_str(), minfo->bookmarks.end, newsize);
|
||||
if (truncate(minfo->file.Name.c_str(), newsize)) {
|
||||
if (truncate(minfo->file.Name.c_str(), newsize))
|
||||
{
|
||||
perror(minfo->file.Name.c_str());
|
||||
return false;
|
||||
}
|
||||
@@ -184,8 +195,7 @@ bool CMovieCut::truncateMovie(MI_MOVIE_INFO * minfo)
|
||||
int CMovieCut::check_pes_start(unsigned char *packet)
|
||||
{
|
||||
// PCKT: 47 41 91 37 07 50 3F 14 BF 04 FE B9 00 00 01 EA 00 00 8C ...
|
||||
if (packet[0] == 0x47 && // sync byte 0x47
|
||||
(packet[1] & 0x40)) // pusi == 1
|
||||
if (packet[0] == 0x47 /* sync byte 0x47*/ && (packet[1] & 0x40) /* pusi == 1*/)
|
||||
{
|
||||
/* good, now we have to check if it is video stream */
|
||||
unsigned char *pes = packet + 4;
|
||||
@@ -196,18 +206,21 @@ int CMovieCut::check_pes_start (unsigned char *packet)
|
||||
{
|
||||
pes += 4;
|
||||
while (pes < (packet + 188 - 4))
|
||||
{
|
||||
if (!memcmp(pes, "\x00\x00\x01\xB8", 4)) // GOP detect
|
||||
return 1;
|
||||
else
|
||||
pes++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CMovieCut::find_gop(unsigned char *buf, int r)
|
||||
{
|
||||
for (int j = 0; j < r/188; j++) {
|
||||
for (int j = 0; j < r / 188; j++)
|
||||
{
|
||||
if (check_pes_start(&buf[188 * j]))
|
||||
return 188 * j;
|
||||
}
|
||||
@@ -228,11 +241,13 @@ off64_t CMovieCut::fake_read(int fd, unsigned char *buf, size_t size, off64_t fs
|
||||
int CMovieCut::read_psi(const char *spart, unsigned char *buf)
|
||||
{
|
||||
int srcfd = open(spart, O_RDONLY | O_LARGEFILE);
|
||||
if (srcfd >= 0) {
|
||||
if (srcfd >= 0)
|
||||
{
|
||||
/* read psi */
|
||||
int r = read(srcfd, buf, PSI_SIZE);
|
||||
close(srcfd);
|
||||
if (r != PSI_SIZE) {
|
||||
if (r != PSI_SIZE)
|
||||
{
|
||||
perror("read psi");
|
||||
return -1;
|
||||
}
|
||||
@@ -251,8 +266,10 @@ void CMovieCut::save_info(MI_MOVIE_INFO * minfo, char * dpart, off64_t spos, off
|
||||
ninfo.bookmarks.end = 0;
|
||||
ninfo.bookmarks.start = 0;
|
||||
ninfo.bookmarks.lastPlayStop = 0;
|
||||
for (int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++) {
|
||||
if (ninfo.bookmarks.user[book_nr].pos != 0 && ninfo.bookmarks.user[book_nr].length > 0) {
|
||||
for (int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++)
|
||||
{
|
||||
if (ninfo.bookmarks.user[book_nr].pos != 0 && ninfo.bookmarks.user[book_nr].length > 0)
|
||||
{
|
||||
ninfo.bookmarks.user[book_nr].pos = 0;
|
||||
ninfo.bookmarks.user[book_nr].length = 0;
|
||||
}
|
||||
@@ -326,7 +343,8 @@ bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo)
|
||||
off64_t secsize = getSecondSize(minfo);
|
||||
off64_t newsize = size;
|
||||
|
||||
if (minfo->bookmarks.start != 0) {
|
||||
if (minfo->bookmarks.start != 0)
|
||||
{
|
||||
books[bcount].pos = 0;
|
||||
books[bcount].len = (minfo->bookmarks.start * secsize) / 188 * 188;
|
||||
if (books[bcount].len > SAFE_GOP)
|
||||
@@ -335,8 +353,10 @@ bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo)
|
||||
printf("CMovieCut::%s: start bookmark %d at %" PRId64 " len %" PRId64 "\n", __func__, bcount, books[bcount].pos, books[bcount].len);
|
||||
bcount++;
|
||||
}
|
||||
for (int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++) {
|
||||
if (minfo->bookmarks.user[book_nr].pos != 0 && minfo->bookmarks.user[book_nr].length > 0) {
|
||||
for (int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++)
|
||||
{
|
||||
if (minfo->bookmarks.user[book_nr].pos != 0 && minfo->bookmarks.user[book_nr].length > 0)
|
||||
{
|
||||
books[bcount].pos = (minfo->bookmarks.user[book_nr].pos * secsize) / 188 * 188;
|
||||
books[bcount].len = (minfo->bookmarks.user[book_nr].length * secsize) / 188 * 188;
|
||||
if (books[bcount].len > SAFE_GOP)
|
||||
@@ -346,7 +366,8 @@ bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo)
|
||||
bcount++;
|
||||
}
|
||||
}
|
||||
if (minfo->bookmarks.end != 0) {
|
||||
if (minfo->bookmarks.end != 0)
|
||||
{
|
||||
books[bcount].pos = ((off64_t) minfo->bookmarks.end * secsize) / 188 * 188;
|
||||
books[bcount].len = size - books[bcount].pos;
|
||||
books[bcount].ok = 1;
|
||||
@@ -358,7 +379,8 @@ bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo)
|
||||
return false;
|
||||
|
||||
unsigned char *buf = new unsigned char[BUF_SIZE];
|
||||
if (buf == 0) {
|
||||
if (buf == 0)
|
||||
{
|
||||
perror("new");
|
||||
return false;
|
||||
}
|
||||
@@ -366,20 +388,27 @@ bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo)
|
||||
paintProgress(true);
|
||||
|
||||
qsort(books, bcount, sizeof(struct mybook), compare_book);
|
||||
for (int i = 0; i < bcount; i++) {
|
||||
if (books[i].ok) {
|
||||
for (int i = 0; i < bcount; i++)
|
||||
{
|
||||
if (books[i].ok)
|
||||
{
|
||||
//printf("cut: bookmark %d at %" PRId64 " len %" PRId64 " -> skip to %" PRId64 "\n", i, books[i].pos, books[i].len, books[i].pos+books[i].len);
|
||||
newsize -= books[i].len;
|
||||
off64_t curend = books[i].pos + books[i].len;
|
||||
/* check for overlapping bookmarks */
|
||||
for (int j = i + 1; j < bcount; j++) {
|
||||
if ((books[j].pos > books[i].pos) && (books[j].pos < curend)) {
|
||||
for (int j = i + 1; j < bcount; j++)
|
||||
{
|
||||
if ((books[j].pos > books[i].pos) && (books[j].pos < curend))
|
||||
{
|
||||
off64_t newend = books[j].pos + books[j].len;
|
||||
if (newend > curend) {
|
||||
if (newend > curend)
|
||||
{
|
||||
printf("CMovieCut::%s: bad bookmark %d, position %" PRId64 " len %" PRId64 ", adjusting..\n", __func__, j, books[j].pos, books[j].len);
|
||||
books[j].pos = curend;
|
||||
books[j].len = newend - curend;
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("CMovieCut::%s: bad bookmark %d, position %" PRId64 " len %" PRId64 ", skipping..\n", __func__, j, books[j].pos, books[j].len);
|
||||
books[j].ok = 0;
|
||||
}
|
||||
@@ -396,11 +425,13 @@ bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo)
|
||||
|
||||
printf("CMovieCut::%s: new file %s, expected size %" PRId64 ", start time %s", __func__, dpart, newsize, ctime(&tt));
|
||||
dstfd = open(dpart, O_CREAT | O_WRONLY | O_TRUNC | O_LARGEFILE, 0644);
|
||||
if (dstfd < 0) {
|
||||
if (dstfd < 0)
|
||||
{
|
||||
perror(dpart);
|
||||
goto ret_err;
|
||||
}
|
||||
if (read_psi(minfo->file.Name.c_str(), &psi[0])) {
|
||||
if (read_psi(minfo->file.Name.c_str(), &psi[0]))
|
||||
{
|
||||
perror(minfo->file.Name.c_str());
|
||||
goto ret_err;
|
||||
}
|
||||
@@ -409,40 +440,48 @@ bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo)
|
||||
stat64(minfo->file.Name.c_str(), &s);
|
||||
|
||||
srcfd = open(minfo->file.Name.c_str(), O_RDONLY | O_LARGEFILE);
|
||||
if (srcfd < 0) {
|
||||
if (srcfd < 0)
|
||||
{
|
||||
perror(minfo->file.Name.c_str());
|
||||
goto ret_err;
|
||||
}
|
||||
lseek64(srcfd, offset, SEEK_SET);
|
||||
|
||||
/* process all bookmarks */
|
||||
while (true) {
|
||||
while (true)
|
||||
{
|
||||
off64_t until = bpos;
|
||||
printf("CMovieCut::%s: bookmark #%d reading from %" PRId64 " to %" PRId64 " (%" PRId64 ") want gop %d\n", __func__, bindex, offset, until, until - offset, need_gop);
|
||||
/* read up to jump end */
|
||||
while (offset < until) {
|
||||
while (offset < until)
|
||||
{
|
||||
int msg = getInput();
|
||||
was_cancel = msg & 2;
|
||||
if (msg & 4) {
|
||||
if (msg & 4)
|
||||
{
|
||||
unlink(dpart);
|
||||
retval = true;
|
||||
goto ret_err;
|
||||
}
|
||||
size_t toread = (until - offset) > BUF_SIZE ? BUF_SIZE : until - offset;
|
||||
size_t r = read(srcfd, buf, toread);
|
||||
if (r > 0) {
|
||||
if (r > 0)
|
||||
{
|
||||
int wptr = 0;
|
||||
if (r != toread)
|
||||
printf("CMovieCut::%s: short read at %" PRId64 ": %d\n", __func__, offset, (int)r);
|
||||
if (buf[0] != 0x47)
|
||||
printf("CMovieCut::%s: buffer not aligned at %" PRId64 "\n", __func__, offset);
|
||||
if (need_gop) {
|
||||
if (need_gop)
|
||||
{
|
||||
int gop = find_gop(buf, r);
|
||||
if (gop >= 0) {
|
||||
if (gop >= 0)
|
||||
{
|
||||
printf("CMovieCut::%s: GOP found at %" PRId64 " offset %d\n", __func__, (off64_t)(offset + gop), gop);
|
||||
newsize -= gop;
|
||||
wptr = gop;
|
||||
} else
|
||||
}
|
||||
else
|
||||
printf("CMovieCut::%s: GOP not found\n", __func__);
|
||||
need_gop = 0;
|
||||
}
|
||||
@@ -451,11 +490,14 @@ bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo)
|
||||
percent = (int)((float)(spos) / (float)(newsize) * 100.);
|
||||
paintProgress(msg != 0);
|
||||
size_t wr = write(dstfd, &buf[wptr], r - wptr);
|
||||
if (wr < (r-wptr)) {
|
||||
if (wr < (r - wptr))
|
||||
{
|
||||
perror(dpart);
|
||||
goto ret_err;
|
||||
}
|
||||
} else if (offset < s.st_size) {
|
||||
}
|
||||
else if (offset < s.st_size)
|
||||
{
|
||||
/* read error ? */
|
||||
perror(minfo->file.Name.c_str());
|
||||
goto ret_err;
|
||||
@@ -466,19 +508,23 @@ bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo)
|
||||
offset = bpos + bskip;
|
||||
|
||||
bindex++;
|
||||
while(bindex < bcount) {
|
||||
while (bindex < bcount)
|
||||
{
|
||||
if (books[bindex].ok)
|
||||
break;
|
||||
else
|
||||
bindex++;
|
||||
}
|
||||
if(bindex < bcount) {
|
||||
if (bindex < bcount)
|
||||
{
|
||||
bpos = books[bindex].pos;
|
||||
bskip = books[bindex].len;
|
||||
} else
|
||||
}
|
||||
else
|
||||
bpos = size;
|
||||
|
||||
if (offset >= s.st_size) {
|
||||
if (offset >= s.st_size)
|
||||
{
|
||||
printf("CMovieCut::%s: offset behind EOF: %" PRId64 " from %" PRId64 "\n", __func__, offset, s.st_size);
|
||||
break;
|
||||
}
|
||||
@@ -520,8 +566,10 @@ bool CMovieCut::copyMovie(MI_MOVIE_INFO * minfo, bool onefile)
|
||||
off64_t newsize = 0;
|
||||
|
||||
off64_t secsize = getSecondSize(minfo);
|
||||
for (int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++) {
|
||||
if (minfo->bookmarks.user[book_nr].pos != 0 && minfo->bookmarks.user[book_nr].length > 0) {
|
||||
for (int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++)
|
||||
{
|
||||
if (minfo->bookmarks.user[book_nr].pos != 0 && minfo->bookmarks.user[book_nr].length > 0)
|
||||
{
|
||||
books[bcount].pos = (minfo->bookmarks.user[book_nr].pos * secsize) / 188 * 188;
|
||||
if (books[bcount].pos > SAFE_GOP)
|
||||
books[bcount].pos -= SAFE_GOP;
|
||||
@@ -537,7 +585,8 @@ bool CMovieCut::copyMovie(MI_MOVIE_INFO * minfo, bool onefile)
|
||||
return false;
|
||||
|
||||
unsigned char *buf = new unsigned char[BUF_SIZE];
|
||||
if (buf == 0) {
|
||||
if (buf == 0)
|
||||
{
|
||||
perror("new");
|
||||
return false;
|
||||
}
|
||||
@@ -545,24 +594,29 @@ bool CMovieCut::copyMovie(MI_MOVIE_INFO * minfo, bool onefile)
|
||||
paintProgress(true);
|
||||
|
||||
printf("********* %d boormarks, to %s file(s), expected size to copy %" PRId64 ", start time %s", bcount, onefile ? "one" : "many", newsize, ctime(&tt));
|
||||
if (read_psi(minfo->file.Name.c_str(), &psi[0])) {
|
||||
if (read_psi(minfo->file.Name.c_str(), &psi[0]))
|
||||
{
|
||||
perror(minfo->file.Name.c_str());
|
||||
goto ret_err;
|
||||
}
|
||||
srcfd = open(minfo->file.Name.c_str(), O_RDONLY | O_LARGEFILE);
|
||||
if (srcfd < 0) {
|
||||
if (srcfd < 0)
|
||||
{
|
||||
perror(minfo->file.Name.c_str());
|
||||
goto ret_err;
|
||||
}
|
||||
stat64(minfo->file.Name.c_str(), &s);
|
||||
for (int i = 0; i < bcount; i++) {
|
||||
for (int i = 0; i < bcount; i++)
|
||||
{
|
||||
printf("\ncopy: processing bookmark %d at %" PRId64 " len %" PRId64 "\n", i, books[i].pos, books[i].len);
|
||||
|
||||
if (!dst_done || !onefile) {
|
||||
if (!dst_done || !onefile)
|
||||
{
|
||||
findNewName(minfo->file.Name.c_str(), dpart, sizeof(dpart));
|
||||
dstfd = open(dpart, O_CREAT | O_WRONLY | O_TRUNC | O_LARGEFILE, 0644);
|
||||
printf("copy: new file %s fd %d\n", dpart, dstfd);
|
||||
if (dstfd < 0) {
|
||||
if (dstfd < 0)
|
||||
{
|
||||
printf("failed to open %s\n", dpart);
|
||||
goto ret_err;
|
||||
}
|
||||
@@ -576,29 +630,35 @@ bool CMovieCut::copyMovie(MI_MOVIE_INFO * minfo, bool onefile)
|
||||
lseek64(srcfd, offset, SEEK_SET);
|
||||
off64_t until = books[i].pos + books[i].len;
|
||||
printf("copy: read from %" PRId64 " to %" PRId64 " read size %d want gop %d\n", offset, until, BUF_SIZE, need_gop);
|
||||
while (offset < until) {
|
||||
while (offset < until)
|
||||
{
|
||||
size_t toread = (until - offset) > BUF_SIZE ? BUF_SIZE : until - offset;
|
||||
int msg = getInput();
|
||||
was_cancel = msg & 2;
|
||||
if (msg & 4) {
|
||||
if (msg & 4)
|
||||
{
|
||||
unlink(dpart);
|
||||
retval = true;
|
||||
goto ret_err;
|
||||
}
|
||||
size_t r = read(srcfd, buf, toread);
|
||||
if (r > 0) {
|
||||
if (r > 0)
|
||||
{
|
||||
int wptr = 0;
|
||||
if (r != toread)
|
||||
printf("****** short read ? %d\n", (int)r);
|
||||
if (buf[0] != 0x47)
|
||||
printf("copy: buffer not aligned at %" PRId64 "\n", offset);
|
||||
if (need_gop) {
|
||||
if (need_gop)
|
||||
{
|
||||
int gop = find_gop(buf, r);
|
||||
if (gop >= 0) {
|
||||
if (gop >= 0)
|
||||
{
|
||||
printf("cut: GOP found at %" PRId64 " offset %d\n", (off64_t)(offset + gop), gop);
|
||||
newsize -= gop;
|
||||
wptr = gop;
|
||||
} else
|
||||
}
|
||||
else
|
||||
printf("cut: GOP needed, but not found\n");
|
||||
need_gop = 0;
|
||||
}
|
||||
@@ -609,19 +669,23 @@ bool CMovieCut::copyMovie(MI_MOVIE_INFO * minfo, bool onefile)
|
||||
paintProgress(msg != 0);
|
||||
|
||||
size_t wr = write(dstfd, &buf[wptr], r - wptr);
|
||||
if (wr < (r-wptr)) {
|
||||
if (wr < (r - wptr))
|
||||
{
|
||||
printf("write to %s failed\n", dpart);
|
||||
unlink(dpart);
|
||||
goto ret_err;
|
||||
}
|
||||
} else if (offset < s.st_size) {
|
||||
}
|
||||
else if (offset < s.st_size)
|
||||
{
|
||||
/* read error ? */
|
||||
perror(minfo->file.Name.c_str());
|
||||
break;
|
||||
}
|
||||
} /* while(offset < until) */
|
||||
|
||||
if (!onefile) {
|
||||
if (!onefile)
|
||||
{
|
||||
close(dstfd);
|
||||
dstfd = -1;
|
||||
save_info(minfo, dpart, spos, secsize);
|
||||
@@ -629,7 +693,8 @@ bool CMovieCut::copyMovie(MI_MOVIE_INFO * minfo, bool onefile)
|
||||
printf("copy: ********* %s: total written %" PRId64 " took %ld secs\n", dpart, spos, tt1 - tt);
|
||||
}
|
||||
} /* for all books */
|
||||
if (onefile) {
|
||||
if (onefile)
|
||||
{
|
||||
save_info(minfo, dpart, spos, secsize);
|
||||
time_t tt1 = time(0);
|
||||
printf("copy: ********* %s: total written %" PRId64 " took %ld secs\n", dpart, spos, tt1 - tt);
|
||||
|
Reference in New Issue
Block a user