[GEM-cvs] SF.net SVN: pd-gem:[2618] trunk/Gem/src/Pixes
Brought to you by:
zmoelnig
From: <zmo...@us...> - 2008-12-07 19:16:56
|
Revision: 2618 http://pd-gem.svn.sourceforge.net/pd-gem/?rev=2618&view=rev Author: zmoelnig Date: 2008-12-07 19:16:54 +0000 (Sun, 07 Dec 2008) Log Message: ----------- log callback Modified Paths: -------------- trunk/Gem/src/Pixes/filmGMERLIN.cpp trunk/Gem/src/Pixes/filmGMERLIN.h Modified: trunk/Gem/src/Pixes/filmGMERLIN.cpp =================================================================== --- trunk/Gem/src/Pixes/filmGMERLIN.cpp 2008-12-07 18:42:56 UTC (rev 2617) +++ trunk/Gem/src/Pixes/filmGMERLIN.cpp 2008-12-07 19:16:54 UTC (rev 2618) @@ -76,6 +76,31 @@ } +void filmGMERLIN::log(bgav_log_level_t level, const char *log_domain, const char *message) +{ + switch(level) { + case BGAV_LOG_DEBUG: + verbose(2, "[pix_film:%s] %s", log_domain, message); + break; + case BGAV_LOG_INFO: + verbose(1, "[pix_film:%s] %s", log_domain, message); + break; + case BGAV_LOG_WARNING: + post("[pix_film:%s] %s", log_domain, message); + break; + case BGAV_LOG_ERROR: + error("[pix_film:%s!] %s", log_domain, message); + break; + default:break; + } +} + +void filmGMERLIN::log_callback (void *data, bgav_log_level_t level, const char *log_domain, const char *message) +{ + // post("gmerlin[%d:%s] %s", level, log_domain, message); + ((filmGMERLIN*)(data))->log(level, log_domain, message); +} + ///////////////////////////////////////////////////////// // really open the file ! (OS dependent) // @@ -96,7 +121,12 @@ bgav_options_set_seek_subtitles(m_opt, 0); bgav_options_set_sample_accurate(m_opt, 1); + bgav_options_set_log_callback(m_opt, + log_callback, + this); + + if(!strncmp(filename, "vcd://", 6)) { if(!bgav_open_vcd(m_file, filename + 5)) @@ -218,6 +248,7 @@ } int filmGMERLIN :: changeImage(int imgNum, int trackNum){ + // LATER implement track-switching if(!m_file)return FILM_ERROR_FAILURE; if(imgNum>m_numFrames || imgNum<0)return FILM_ERROR_FAILURE; if (imgNum>0)m_curFrame=imgNum; @@ -225,14 +256,10 @@ if(bgav_can_seek(m_file)) { int64_t seekposOrg = imgNum; - - //seekposOrg = gavl_frames_to_time(m_fps_num, m_fps_denum, imgNum); - //post("%d/%d=%f", m_fps_num, m_fps_denum, m_fps); - int64_t seekpos = seekposOrg; - // LATER lookup the docs for the 3rd parameter + // LATER lookup the docs for the 3rd parameter: + // it should be the same "timebase" as the original source in order to get frame-accurate seeking bgav_seek_scaled(m_file, &seekpos, m_fps); - //post("seeked: %d->%d", seekposOrg, seekpos); if(seekposOrg == seekpos) return FILM_ERROR_SUCCESS; /* never mind: always return success... */ Modified: trunk/Gem/src/Pixes/filmGMERLIN.h =================================================================== --- trunk/Gem/src/Pixes/filmGMERLIN.h 2008-12-07 18:42:56 UTC (rev 2617) +++ trunk/Gem/src/Pixes/filmGMERLIN.h 2008-12-07 19:16:54 UTC (rev 2618) @@ -85,6 +85,12 @@ gavl_video_converter_s*m_gconverter; int m_fps_num, m_fps_denum; + + + static void log_callback(void *data, bgav_log_level_t level, const char *log_domain, const char *message); + virtual void log(bgav_log_level_t level, const char *log_domain, const char *message); + + #endif int m_lastFrame; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |