mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-02-15 22:59:53 +08:00
avoid new/delete for mjpeg_decoder
BUG=none TEST=none Review URL: https://webrtc-codereview.appspot.com/404001 git-svn-id: http://libyuv.googlecode.com/svn/trunk@185 16f28f9a-4ce2-e073-06de-1de4eb20be90
This commit is contained in:
parent
724d0c1b8e
commit
57397ebafd
@ -1,6 +1,6 @@
|
|||||||
Name: libyuv
|
Name: libyuv
|
||||||
URL: http://code.google.com/p/libyuv/
|
URL: http://code.google.com/p/libyuv/
|
||||||
Version: 184
|
Version: 185
|
||||||
License: BSD
|
License: BSD
|
||||||
License File: LICENSE
|
License File: LICENSE
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
#ifndef INCLUDE_LIBYUV_VERSION_H_
|
#ifndef INCLUDE_LIBYUV_VERSION_H_
|
||||||
#define INCLUDE_LIBYUV_VERSION_H_
|
#define INCLUDE_LIBYUV_VERSION_H_
|
||||||
|
|
||||||
#define LIBYUV_VERSION 184
|
#define LIBYUV_VERSION 185
|
||||||
|
|
||||||
#endif // INCLUDE_LIBYUV_VERSION_H_
|
#endif // INCLUDE_LIBYUV_VERSION_H_
|
||||||
|
|
||||||
|
|||||||
@ -1489,78 +1489,75 @@ int MJPGToI420(const uint8* sample,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO(fbarchard): Port to C
|
// TODO(fbarchard): Port to C
|
||||||
MJpegDecoder* mjpeg_decoder = new MJpegDecoder();
|
MJpegDecoder mjpeg_decoder;
|
||||||
bool ret = mjpeg_decoder->LoadFrame(sample, sample_size);
|
bool ret = mjpeg_decoder.LoadFrame(sample, sample_size);
|
||||||
if (ret && (mjpeg_decoder->GetWidth() != w ||
|
if (ret && (mjpeg_decoder.GetWidth() != w ||
|
||||||
mjpeg_decoder->GetHeight() != h)) {
|
mjpeg_decoder.GetHeight() != h)) {
|
||||||
// ERROR: MJPEG frame has unexpected dimensions
|
// ERROR: MJPEG frame has unexpected dimensions
|
||||||
mjpeg_decoder->UnloadFrame();
|
mjpeg_decoder.UnloadFrame();
|
||||||
delete mjpeg_decoder;
|
|
||||||
return 1; // runtime failure
|
return 1; // runtime failure
|
||||||
}
|
}
|
||||||
if (ret) {
|
if (ret) {
|
||||||
I420Buffers bufs = { y, y_stride, u, u_stride, v, v_stride, dw, dh };
|
I420Buffers bufs = { y, y_stride, u, u_stride, v, v_stride, dw, dh };
|
||||||
// YUV420
|
// YUV420
|
||||||
if (mjpeg_decoder->GetColorSpace() ==
|
if (mjpeg_decoder.GetColorSpace() ==
|
||||||
MJpegDecoder::kColorSpaceYCbCr &&
|
MJpegDecoder::kColorSpaceYCbCr &&
|
||||||
mjpeg_decoder->GetNumComponents() == 3 &&
|
mjpeg_decoder.GetNumComponents() == 3 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(0) == 2 &&
|
mjpeg_decoder.GetVertSampFactor(0) == 2 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(0) == 2 &&
|
mjpeg_decoder.GetHorizSampFactor(0) == 2 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(1) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(1) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(1) == 1 &&
|
mjpeg_decoder.GetHorizSampFactor(1) == 1 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(2) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(2) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(2) == 1) {
|
mjpeg_decoder.GetHorizSampFactor(2) == 1) {
|
||||||
ret = mjpeg_decoder->DecodeToCallback(&JpegCopyI420, &bufs, dw, dh);
|
ret = mjpeg_decoder.DecodeToCallback(&JpegCopyI420, &bufs, dw, dh);
|
||||||
// YUV422
|
// YUV422
|
||||||
} else if (mjpeg_decoder->GetColorSpace() ==
|
} else if (mjpeg_decoder.GetColorSpace() ==
|
||||||
MJpegDecoder::kColorSpaceYCbCr &&
|
MJpegDecoder::kColorSpaceYCbCr &&
|
||||||
mjpeg_decoder->GetNumComponents() == 3 &&
|
mjpeg_decoder.GetNumComponents() == 3 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(0) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(0) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(0) == 2 &&
|
mjpeg_decoder.GetHorizSampFactor(0) == 2 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(1) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(1) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(1) == 1 &&
|
mjpeg_decoder.GetHorizSampFactor(1) == 1 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(2) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(2) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(2) == 1) {
|
mjpeg_decoder.GetHorizSampFactor(2) == 1) {
|
||||||
ret = mjpeg_decoder->DecodeToCallback(&JpegI422ToI420, &bufs, dw, dh);
|
ret = mjpeg_decoder.DecodeToCallback(&JpegI422ToI420, &bufs, dw, dh);
|
||||||
// YUV444
|
// YUV444
|
||||||
} else if (mjpeg_decoder->GetColorSpace() ==
|
} else if (mjpeg_decoder.GetColorSpace() ==
|
||||||
MJpegDecoder::kColorSpaceYCbCr &&
|
MJpegDecoder::kColorSpaceYCbCr &&
|
||||||
mjpeg_decoder->GetNumComponents() == 3 &&
|
mjpeg_decoder.GetNumComponents() == 3 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(0) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(0) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(0) == 1 &&
|
mjpeg_decoder.GetHorizSampFactor(0) == 1 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(1) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(1) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(1) == 1 &&
|
mjpeg_decoder.GetHorizSampFactor(1) == 1 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(2) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(2) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(2) == 1) {
|
mjpeg_decoder.GetHorizSampFactor(2) == 1) {
|
||||||
ret = mjpeg_decoder->DecodeToCallback(&JpegI444ToI420, &bufs, dw, dh);
|
ret = mjpeg_decoder.DecodeToCallback(&JpegI444ToI420, &bufs, dw, dh);
|
||||||
// YUV411
|
// YUV411
|
||||||
} else if (mjpeg_decoder->GetColorSpace() ==
|
} else if (mjpeg_decoder.GetColorSpace() ==
|
||||||
MJpegDecoder::kColorSpaceYCbCr &&
|
MJpegDecoder::kColorSpaceYCbCr &&
|
||||||
mjpeg_decoder->GetNumComponents() == 3 &&
|
mjpeg_decoder.GetNumComponents() == 3 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(0) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(0) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(0) == 4 &&
|
mjpeg_decoder.GetHorizSampFactor(0) == 4 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(1) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(1) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(1) == 1 &&
|
mjpeg_decoder.GetHorizSampFactor(1) == 1 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(2) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(2) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(2) == 1) {
|
mjpeg_decoder.GetHorizSampFactor(2) == 1) {
|
||||||
ret = mjpeg_decoder->DecodeToCallback(&JpegI411ToI420, &bufs, dw, dh);
|
ret = mjpeg_decoder.DecodeToCallback(&JpegI411ToI420, &bufs, dw, dh);
|
||||||
// YUV400
|
// YUV400
|
||||||
} else if (mjpeg_decoder->GetColorSpace() ==
|
} else if (mjpeg_decoder.GetColorSpace() ==
|
||||||
MJpegDecoder::kColorSpaceGrayscale &&
|
MJpegDecoder::kColorSpaceGrayscale &&
|
||||||
mjpeg_decoder->GetNumComponents() == 1 &&
|
mjpeg_decoder.GetNumComponents() == 1 &&
|
||||||
mjpeg_decoder->GetVertSampFactor(0) == 1 &&
|
mjpeg_decoder.GetVertSampFactor(0) == 1 &&
|
||||||
mjpeg_decoder->GetHorizSampFactor(0) == 1) {
|
mjpeg_decoder.GetHorizSampFactor(0) == 1) {
|
||||||
ret = mjpeg_decoder->DecodeToCallback(&JpegI400ToI420, &bufs, dw, dh);
|
ret = mjpeg_decoder.DecodeToCallback(&JpegI400ToI420, &bufs, dw, dh);
|
||||||
} else {
|
} else {
|
||||||
// TODO(fbarchard): Implement conversion for any other colorspace/sample
|
// TODO(fbarchard): Implement conversion for any other colorspace/sample
|
||||||
// factors that occur in practice. 411 is supported by libjpeg
|
// factors that occur in practice. 411 is supported by libjpeg
|
||||||
// ERROR: Unable to convert MJPEG frame because format is not supported
|
// ERROR: Unable to convert MJPEG frame because format is not supported
|
||||||
mjpeg_decoder->UnloadFrame();
|
mjpeg_decoder.UnloadFrame();
|
||||||
delete mjpeg_decoder;
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete mjpeg_decoder;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user