#ifndef ACCELERATION_SPEED_H
#define ACCELERATION_SPEED_H
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <getopt.h>
#include <string>
#include <stack>
#include <memory>
#include "libde265/image.h"
#include "libde265/image-io.h"
class DSPFunc
{
public:
DSPFunc() { next = first; first = this; }
virtual ~DSPFunc() { }
virtual const char* name() const = 0;
virtual int getBlkWidth() const = 0;
virtual int getBlkHeight() const = 0;
virtual void runOnBlock(int x,int y) = 0;
virtual DSPFunc* referenceImplementation() const { return NULL; }
virtual bool prepareNextImage(std::shared_ptr<const de265_image>) = 0;
bool runOnImage(std::shared_ptr<const de265_image> img, bool compareToReference);
virtual bool compareToReferenceImplementation() { return false; }
static DSPFunc* first;
DSPFunc* next;
};
#endif