mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-26 23:13:13 +02:00
driver/moviecut.cpp: fix saving header after truncate,
remove redundant CMovieInfo arg from api
This commit is contained in:
@@ -175,6 +175,9 @@ bool CMovieCut::truncateMovie(MI_MOVIE_INFO * minfo)
|
||||
minfo->length = minfo->bookmarks.end/60;
|
||||
minfo->bookmarks.end = 0;
|
||||
reset_atime(minfo->file.Name.c_str(), minfo->file.Time);
|
||||
CMovieInfo cmovie;
|
||||
cmovie.saveMovieInfo(*minfo);
|
||||
WriteHeader(minfo->file.Name.c_str(), newsize/secsize*1000);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -238,8 +241,9 @@ int CMovieCut::read_psi(const char * spart, unsigned char * buf)
|
||||
return -1;
|
||||
}
|
||||
|
||||
void CMovieCut::save_info(CMovieInfo * cmovie, MI_MOVIE_INFO * minfo, char * dpart, off64_t spos, off64_t secsize)
|
||||
void CMovieCut::save_info(MI_MOVIE_INFO * minfo, char * dpart, off64_t spos, off64_t secsize)
|
||||
{
|
||||
CMovieInfo cmovie;
|
||||
MI_MOVIE_INFO ninfo = *minfo;
|
||||
ninfo.file.Name = dpart;
|
||||
ninfo.file.Size = spos;
|
||||
@@ -253,7 +257,7 @@ void CMovieCut::save_info(CMovieInfo * cmovie, MI_MOVIE_INFO * minfo, char * dpa
|
||||
ninfo.bookmarks.user[book_nr].length = 0;
|
||||
}
|
||||
}
|
||||
cmovie->saveMovieInfo(ninfo);
|
||||
cmovie.saveMovieInfo(ninfo);
|
||||
WriteHeader(ninfo.file.Name.c_str(), spos/secsize*1000);
|
||||
reset_atime(dpart, minfo->file.Time);
|
||||
}
|
||||
@@ -302,7 +306,7 @@ int CMovieCut::getInput()
|
||||
return retval;
|
||||
}
|
||||
|
||||
bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie)
|
||||
bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo)
|
||||
{
|
||||
struct mybook books[MI_MOVIE_BOOK_USER_MAX+2];
|
||||
unsigned char psi[PSI_SIZE];
|
||||
@@ -482,7 +486,7 @@ bool CMovieCut::cutMovie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie)
|
||||
tt1 = time(0);
|
||||
printf("CMovieCut::%s: total written %" PRId64 " tooks %ld secs end time %s", __func__, spos, tt1-tt, ctime(&tt1));
|
||||
|
||||
save_info(cmovie, minfo, dpart, spos, secsize);
|
||||
save_info(minfo, dpart, spos, secsize);
|
||||
retval = true;
|
||||
ret_err:
|
||||
if (srcfd >= 0)
|
||||
@@ -498,7 +502,7 @@ ret_err:
|
||||
return retval;
|
||||
}
|
||||
|
||||
bool CMovieCut::copyMovie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie, bool onefile)
|
||||
bool CMovieCut::copyMovie(MI_MOVIE_INFO * minfo, bool onefile)
|
||||
{
|
||||
struct mybook books[MI_MOVIE_BOOK_USER_MAX+2];
|
||||
struct stat64 s;
|
||||
@@ -619,13 +623,13 @@ bool CMovieCut::copyMovie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie, bool onefi
|
||||
if (!onefile) {
|
||||
close(dstfd);
|
||||
dstfd = -1;
|
||||
save_info(cmovie, minfo, dpart, spos, secsize);
|
||||
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);
|
||||
}
|
||||
} /* for all books */
|
||||
if (onefile) {
|
||||
save_info(cmovie, minfo, dpart, spos, secsize);
|
||||
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);
|
||||
}
|
||||
|
@@ -41,7 +41,7 @@ class CMovieCut
|
||||
int find_gop(unsigned char *buf, int r);
|
||||
off64_t fake_read(int fd, unsigned char *buf, size_t size, off64_t fsize);
|
||||
int read_psi(const char * spart, unsigned char * buf);
|
||||
void save_info(CMovieInfo * cmovie, MI_MOVIE_INFO * minfo, char * dpart, off64_t spos, off64_t secsize);
|
||||
void save_info(MI_MOVIE_INFO * minfo, char * dpart, off64_t spos, off64_t secsize);
|
||||
void findNewName(const char * fname, char * dpart,size_t dpart_len);
|
||||
static int compare_book(const void *x, const void *y);
|
||||
int getInput();
|
||||
@@ -52,8 +52,8 @@ class CMovieCut
|
||||
CMovieCut();
|
||||
~CMovieCut();
|
||||
bool truncateMovie(MI_MOVIE_INFO * minfo);
|
||||
bool cutMovie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie);
|
||||
bool copyMovie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie, bool onefile);
|
||||
bool cutMovie(MI_MOVIE_INFO * minfo);
|
||||
bool copyMovie(MI_MOVIE_INFO * minfo, bool onefile);
|
||||
//int handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data);
|
||||
};
|
||||
|
||||
|
@@ -899,7 +899,7 @@ int CMovieBrowser::exec(CMenuTarget* parent, const std::string & actionKey)
|
||||
delete hintBox;
|
||||
framebuffer->paintBackground(); // clear screen
|
||||
CMovieCut mc;
|
||||
bool res = mc.copyMovie(m_movieSelectionHandler, &m_movieInfo, onefile);
|
||||
bool res = mc.copyMovie(m_movieSelectionHandler, onefile);
|
||||
//g_RCInput->clearRCMsg();
|
||||
if (res == 0)
|
||||
ShowMsg(LOCALE_MESSAGEBOX_ERROR, LOCALE_MOVIEBROWSER_COPY_FAILED, CMessageBox::mbrCancel, CMessageBox::mbCancel, NEUTRINO_ICON_ERROR);
|
||||
@@ -924,7 +924,7 @@ int CMovieBrowser::exec(CMenuTarget* parent, const std::string & actionKey)
|
||||
delete hintBox;
|
||||
framebuffer->paintBackground(); // clear screen
|
||||
CMovieCut mc;
|
||||
bool res = mc.cutMovie(m_movieSelectionHandler, &m_movieInfo);
|
||||
bool res = mc.cutMovie(m_movieSelectionHandler);
|
||||
//g_RCInput->clearRCMsg();
|
||||
if (!res)
|
||||
ShowMsg(LOCALE_MESSAGEBOX_ERROR, LOCALE_MOVIEBROWSER_CUT_FAILED, CMessageBox::mbrCancel, CMessageBox::mbCancel, NEUTRINO_ICON_ERROR);
|
||||
@@ -955,11 +955,7 @@ int CMovieBrowser::exec(CMenuTarget* parent, const std::string & actionKey)
|
||||
if (!res)
|
||||
ShowMsg(LOCALE_MESSAGEBOX_ERROR, LOCALE_MOVIEBROWSER_TRUNCATE_FAILED, CMessageBox::mbrCancel, CMessageBox::mbCancel, NEUTRINO_ICON_ERROR);
|
||||
else
|
||||
{
|
||||
//printf("New movie info: size %lld len %d\n", res, m_movieSelectionHandler->bookmarks.end/60);
|
||||
m_movieInfo.saveMovieInfo(*m_movieSelectionHandler);
|
||||
m_doLoadMovies = true;
|
||||
}
|
||||
m_doRefresh = true;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user