Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3439)

Unified Diff: webrtc/modules/video_coding/codecs/i420/main/source/i420.cc

Issue 1418753002: Move i420 files to the right location (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_coding/codecs/i420/main/source/i420.cc
diff --git a/webrtc/modules/video_coding/codecs/i420/main/source/i420.cc b/webrtc/modules/video_coding/codecs/i420/main/source/i420.cc
deleted file mode 100644
index 065a2d76ccb66c74ba4b8a1327416fa3fd2b0a2d..0000000000000000000000000000000000000000
--- a/webrtc/modules/video_coding/codecs/i420/main/source/i420.cc
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "webrtc/modules/video_coding/codecs/i420/main/interface/i420.h"
-
-#include <limits>
-#include <string>
-
-#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
-
-namespace {
-const size_t kI420HeaderSize = 4;
-}
-
-namespace webrtc {
-
-I420Encoder::I420Encoder() : _inited(false), _encodedImage(),
- _encodedCompleteCallback(NULL) {
-}
-
-I420Encoder::~I420Encoder() {
- _inited = false;
- delete [] _encodedImage._buffer;
-}
-
-int I420Encoder::Release() {
- // Should allocate an encoded frame and then release it here, for that we
- // actually need an init flag.
- if (_encodedImage._buffer != NULL) {
- delete [] _encodedImage._buffer;
- _encodedImage._buffer = NULL;
- }
- _inited = false;
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-int I420Encoder::InitEncode(const VideoCodec* codecSettings,
- int /*numberOfCores*/,
- size_t /*maxPayloadSize */) {
- if (codecSettings == NULL) {
- return WEBRTC_VIDEO_CODEC_ERR_PARAMETER;
- }
- if (codecSettings->width < 1 || codecSettings->height < 1) {
- return WEBRTC_VIDEO_CODEC_ERR_PARAMETER;
- }
-
- // Allocating encoded memory.
- if (_encodedImage._buffer != NULL) {
- delete [] _encodedImage._buffer;
- _encodedImage._buffer = NULL;
- _encodedImage._size = 0;
- }
- const size_t newSize =
- CalcBufferSize(kI420, codecSettings->width, codecSettings->height) +
- kI420HeaderSize;
- uint8_t* newBuffer = new uint8_t[newSize];
- if (newBuffer == NULL) {
- return WEBRTC_VIDEO_CODEC_MEMORY;
- }
- _encodedImage._size = newSize;
- _encodedImage._buffer = newBuffer;
-
- // If no memory allocation, no point to init.
- _inited = true;
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-int I420Encoder::Encode(const VideoFrame& inputImage,
- const CodecSpecificInfo* /*codecSpecificInfo*/,
- const std::vector<FrameType>* /*frame_types*/) {
- if (!_inited) {
- return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
- }
- if (_encodedCompleteCallback == NULL) {
- return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
- }
-
- _encodedImage._frameType = kKeyFrame;
- _encodedImage._timeStamp = inputImage.timestamp();
- _encodedImage._encodedHeight = inputImage.height();
- _encodedImage._encodedWidth = inputImage.width();
-
- int width = inputImage.width();
- if (width > std::numeric_limits<uint16_t>::max()) {
- return WEBRTC_VIDEO_CODEC_ERR_SIZE;
- }
- int height = inputImage.height();
- if (height > std::numeric_limits<uint16_t>::max()) {
- return WEBRTC_VIDEO_CODEC_ERR_SIZE;
- }
-
- size_t req_length =
- CalcBufferSize(kI420, inputImage.width(), inputImage.height()) +
- kI420HeaderSize;
- if (_encodedImage._size > req_length) {
- // Reallocate buffer.
- delete [] _encodedImage._buffer;
-
- _encodedImage._buffer = new uint8_t[req_length];
- _encodedImage._size = req_length;
- }
-
- uint8_t *buffer = _encodedImage._buffer;
-
- buffer = InsertHeader(buffer, width, height);
-
- int ret_length = ExtractBuffer(inputImage, req_length - kI420HeaderSize,
- buffer);
- if (ret_length < 0)
- return WEBRTC_VIDEO_CODEC_MEMORY;
- _encodedImage._length = ret_length + kI420HeaderSize;
-
- _encodedCompleteCallback->Encoded(_encodedImage, NULL, NULL);
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-uint8_t* I420Encoder::InsertHeader(uint8_t *buffer, uint16_t width,
- uint16_t height) {
- *buffer++ = static_cast<uint8_t>(width >> 8);
- *buffer++ = static_cast<uint8_t>(width & 0xFF);
- *buffer++ = static_cast<uint8_t>(height >> 8);
- *buffer++ = static_cast<uint8_t>(height & 0xFF);
- return buffer;
-}
-
-int
-I420Encoder::RegisterEncodeCompleteCallback(EncodedImageCallback* callback) {
- _encodedCompleteCallback = callback;
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-
-I420Decoder::I420Decoder() : _decodedImage(), _width(0), _height(0),
- _inited(false), _decodeCompleteCallback(NULL) {
-}
-
-I420Decoder::~I420Decoder() {
- Release();
-}
-
-int
-I420Decoder::Reset() {
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-
-int
-I420Decoder::InitDecode(const VideoCodec* codecSettings,
- int /*numberOfCores */) {
- if (codecSettings == NULL) {
- return WEBRTC_VIDEO_CODEC_ERR_PARAMETER;
- } else if (codecSettings->width < 1 || codecSettings->height < 1) {
- return WEBRTC_VIDEO_CODEC_ERR_PARAMETER;
- }
- _width = codecSettings->width;
- _height = codecSettings->height;
- _inited = true;
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-int I420Decoder::Decode(const EncodedImage& inputImage, bool /*missingFrames*/,
- const RTPFragmentationHeader* /*fragmentation*/,
- const CodecSpecificInfo* /*codecSpecificInfo*/,
- int64_t /*renderTimeMs*/) {
- if (inputImage._buffer == NULL) {
- return WEBRTC_VIDEO_CODEC_ERR_PARAMETER;
- }
- if (_decodeCompleteCallback == NULL) {
- return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
- }
- if (inputImage._length <= 0) {
- return WEBRTC_VIDEO_CODEC_ERR_PARAMETER;
- }
- if (inputImage._completeFrame == false) {
- return WEBRTC_VIDEO_CODEC_ERR_PARAMETER;
- }
- if (!_inited) {
- return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
- }
- if (inputImage._length < kI420HeaderSize) {
- return WEBRTC_VIDEO_CODEC_ERROR;
- }
-
- const uint8_t* buffer = inputImage._buffer;
- uint16_t width, height;
-
- buffer = ExtractHeader(buffer, &width, &height);
- _width = width;
- _height = height;
-
- // Verify that the available length is sufficient:
- size_t req_length = CalcBufferSize(kI420, _width, _height) + kI420HeaderSize;
-
- if (req_length > inputImage._length) {
- return WEBRTC_VIDEO_CODEC_ERROR;
- }
- // Set decoded image parameters.
- int half_width = (_width + 1) / 2;
- _decodedImage.CreateEmptyFrame(_width, _height,
- _width, half_width, half_width);
- // Converting from buffer to plane representation.
- int ret = ConvertToI420(kI420, buffer, 0, 0, _width, _height, 0,
- kVideoRotation_0, &_decodedImage);
- if (ret < 0) {
- return WEBRTC_VIDEO_CODEC_MEMORY;
- }
- _decodedImage.set_timestamp(inputImage._timeStamp);
-
- _decodeCompleteCallback->Decoded(_decodedImage);
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-const uint8_t* I420Decoder::ExtractHeader(const uint8_t* buffer,
- uint16_t* width, uint16_t* height) {
- *width = static_cast<uint16_t>(*buffer++) << 8;
- *width |= *buffer++;
- *height = static_cast<uint16_t>(*buffer++) << 8;
- *height |= *buffer++;
-
- return buffer;
-}
-
-int I420Decoder::RegisterDecodeCompleteCallback(
- DecodedImageCallback* callback) {
- _decodeCompleteCallback = callback;
- return WEBRTC_VIDEO_CODEC_OK;
-}
-
-int I420Decoder::Release() {
- _inited = false;
- return WEBRTC_VIDEO_CODEC_OK;
-}
-} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698