Skip to content

Commit

Permalink
[partial] Fix preview when reconfiguring a partialized filter
Browse files Browse the repository at this point in the history
  • Loading branch information
eumagga0x2a committed May 23, 2017
1 parent 15cafef commit 62ed4cf
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion avidemux/common/ADM_videoFilter2/src/ADM_vidPartial.cpp
Expand Up @@ -45,7 +45,7 @@ class partialFilter : public ADM_coreVideoFilter
virtual void setCoupledConf(CONFcouple *couples);
virtual bool configure(void) ; /// Start graphical user interface
virtual uint64_t getAbsoluteStartTime(void) ; /// Return the absolute offset of the current frame. Used to display time of for filter
virtual bool goToTime(uint64_t usSeek) {return true;} /// Start graphical user interface
virtual bool goToTime(uint64_t usSeek); // needed for seekable preview when reconfiguring a partialized filter
};


Expand All @@ -58,6 +58,7 @@ class partialFilter : public ADM_coreVideoFilter
ADMImage *intermediate;
bool hasIntermediate;
uint32_t intermediateFn;
bool sonFilterPreview;


bool isInRange(uint64_t tme);
Expand Down Expand Up @@ -97,6 +98,7 @@ partialFilter::partialFilter( ADM_coreVideoFilter *in,CONFcouple *setup) : ADM_
{
trampoline=NULL;
sonFilter=NULL;
sonFilterPreview=false;
byPass=true;

intermediate=new ADMImageDefault(in->getInfo()->width,in->getInfo()->height);
Expand Down Expand Up @@ -171,6 +173,8 @@ partialFilter::~partialFilter()
*/
bool partialFilter::getNextFrameForSon(uint32_t *fn,ADMImage *image)
{
if(sonFilterPreview)
return previousFilter->getNextFrame(fn,image);
if(!hasIntermediate)
{
ADM_warning("Partial filter requesting image, no image in store!!\n");
Expand Down Expand Up @@ -289,7 +293,9 @@ void partialFilter::reconfigureCallback(void *cookie)
*/
void partialFilter::reconfigureSon(void)
{
sonFilterPreview=true;
sonFilter->configure();
sonFilterPreview=false;
}

/**
Expand Down Expand Up @@ -342,6 +348,12 @@ uint64_t partialFilter::trampolineFilter::getAbsoluteStartTime()
return previousFilter->getAbsoluteStartTime(); // never called
}

bool partialFilter::trampolineFilter::goToTime(uint64_t usSeek)
{
partialFilter *p=(partialFilter *)previousFilter;
return p->previousFilter->goToTime(usSeek);
}

bool partialFilter::trampolineFilter::getNextFrame(uint32_t *frameNumber,ADMImage *image)
{
partialFilter *p=(partialFilter *)previousFilter;
Expand Down

0 comments on commit 62ed4cf

Please sign in to comment.