diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/frame.cc | 5 | ||||
| -rw-r--r-- | lib/libdv_wrapper.cc | 14 | 
2 files changed, 10 insertions, 9 deletions
| diff --git a/lib/frame.cc b/lib/frame.cc index b3ad28f..472a03a 100644 --- a/lib/frame.cc +++ b/lib/frame.cc @@ -42,6 +42,9 @@ Frame::Frame(char *vframe, int vframesize, int vformat,    this->aframe = aframe;    this->aframesize = aframesize;    this->aformat = aformat; + +  // FIX... remove when old code is removed +  data = NULL;  } @@ -70,7 +73,7 @@ Frame::Frame(unsigned char *d, int sz)  Frame::~Frame()  { -  delete data; +  if(data) delete data;    data = NULL;    size = 0;  } diff --git a/lib/libdv_wrapper.cc b/lib/libdv_wrapper.cc index cb9cc7c..11c641d 100644 --- a/lib/libdv_wrapper.cc +++ b/lib/libdv_wrapper.cc @@ -100,7 +100,7 @@ Frame *LibDVWrapper::decode(Frame *input, DV::ColorSpace c)    case DV::YUV:  #ifdef COLORSPACE_YV12      size = width*height*2; -    buf = (char*)malloc(size); +    buf = new char[size];      type = VF_YV12;      yuv[0] = (unsigned char*)buf;      yuv[1] = (unsigned char*)yuv[0] + (width * height); @@ -111,7 +111,7 @@ Frame *LibDVWrapper::decode(Frame *input, DV::ColorSpace c)  #else      printf("!\n");      size = width*height*2; -    buf = (char*)malloc(size); +    buf = new char[size];      type = VF_YUV422;      yuv[0] = (unsigned char*)buf;      yuv[1] = yuv[2] = NULL; @@ -122,7 +122,7 @@ Frame *LibDVWrapper::decode(Frame *input, DV::ColorSpace c)    case DV::RGB:      size = width*height*3; -    buf = (char*)malloc(size); +    buf = new char[size];      type = VF_RGB;      yuv[0] = (unsigned char*)buf;      yuv[1] = yuv[2] = NULL; @@ -132,7 +132,7 @@ Frame *LibDVWrapper::decode(Frame *input, DV::ColorSpace c)    case DV::BGR0:      size = width*height*4; -    buf = (char*)malloc(size); +    buf = new char[size];      type = VF_BRG0;      yuv[0] = (unsigned char*)buf;      yuv[1] = yuv[2] = NULL; @@ -143,13 +143,11 @@ Frame *LibDVWrapper::decode(Frame *input, DV::ColorSpace c)    dv_decode_full_frame(decoder, -                       (const uint8_t*)input, +                       (const uint8_t*)input->vframe,                         (dv_color_space_t)colorspace,                         yuv,                         pitches); -  //  memset(buf, 1, width*height); -  //  memset(buf+width*height, 100, width*height/2); -  //  memset(buf+width*height+width*height/2, 200, width*height/2); +    Frame *frame = new Frame(buf, size, type, NULL, 0, AF_NONE);    return frame;  } | 
