Remove unused VideoDecoder methods.
Removing VideoDecoder::Copy() and VideoDecoder::SetCodecConfigParameters(). Also adding override to VP8DecoderImpl. BUG= R=mflodman@webrtc.org, stefan@webrtc.org Review URL: https://webrtc-codereview.appspot.com/55409004 Cr-Commit-Position: refs/heads/master@{#9244}
This commit is contained in:
@ -102,11 +102,6 @@ class I420Decoder : public VideoDecoder {
|
||||
int InitDecode(const VideoCodec* codecSettings,
|
||||
int /*numberOfCores*/) override;
|
||||
|
||||
int SetCodecConfigParameters(const uint8_t* /*buffer*/,
|
||||
int /*size*/) override {
|
||||
return WEBRTC_VIDEO_CODEC_OK;
|
||||
}
|
||||
|
||||
// Decode encoded image (as a part of a video stream). The decoded image
|
||||
// will be returned to the user through the decode complete callback.
|
||||
//
|
||||
|
@ -1390,86 +1390,6 @@ int VP8DecoderImpl::Release() {
|
||||
return WEBRTC_VIDEO_CODEC_OK;
|
||||
}
|
||||
|
||||
VideoDecoder* VP8DecoderImpl::Copy() {
|
||||
// Sanity checks.
|
||||
if (!inited_) {
|
||||
// Not initialized.
|
||||
assert(false);
|
||||
return NULL;
|
||||
}
|
||||
if (last_frame_width_ == 0 || last_frame_height_ == 0) {
|
||||
// Nothing has been decoded before; cannot clone.
|
||||
return NULL;
|
||||
}
|
||||
if (last_keyframe_._buffer == NULL) {
|
||||
// Cannot clone if we have no key frame to start with.
|
||||
return NULL;
|
||||
}
|
||||
// Create a new VideoDecoder object
|
||||
VP8DecoderImpl* copy = new VP8DecoderImpl;
|
||||
|
||||
// Initialize the new decoder
|
||||
if (copy->InitDecode(&codec_, 1) != WEBRTC_VIDEO_CODEC_OK) {
|
||||
delete copy;
|
||||
return NULL;
|
||||
}
|
||||
// Inject last key frame into new decoder.
|
||||
if (vpx_codec_decode(copy->decoder_, last_keyframe_._buffer,
|
||||
last_keyframe_._length, NULL, VPX_DL_REALTIME)) {
|
||||
delete copy;
|
||||
return NULL;
|
||||
}
|
||||
// Allocate memory for reference image copy
|
||||
assert(last_frame_width_ > 0);
|
||||
assert(last_frame_height_ > 0);
|
||||
assert(image_format_ > VPX_IMG_FMT_NONE);
|
||||
// Check if frame format has changed.
|
||||
if (ref_frame_ &&
|
||||
(last_frame_width_ != static_cast<int>(ref_frame_->img.d_w) ||
|
||||
last_frame_height_ != static_cast<int>(ref_frame_->img.d_h) ||
|
||||
image_format_ != ref_frame_->img.fmt)) {
|
||||
vpx_img_free(&ref_frame_->img);
|
||||
delete ref_frame_;
|
||||
ref_frame_ = NULL;
|
||||
}
|
||||
|
||||
|
||||
if (!ref_frame_) {
|
||||
ref_frame_ = new vpx_ref_frame_t;
|
||||
// Setting alignment to 32 - as that ensures at least 16 for all
|
||||
// planes (32 for Y, 16 for U,V) - libvpx sets the requested stride
|
||||
// for the y plane, but only half of it to the u and v planes.
|
||||
if (!vpx_img_alloc(&ref_frame_->img,
|
||||
static_cast<vpx_img_fmt_t>(image_format_),
|
||||
last_frame_width_, last_frame_height_,
|
||||
kVp832ByteAlign)) {
|
||||
assert(false);
|
||||
delete copy;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
const vpx_ref_frame_type_t type_vec[] = { VP8_LAST_FRAME, VP8_GOLD_FRAME,
|
||||
VP8_ALTR_FRAME };
|
||||
for (uint32_t ix = 0;
|
||||
ix < sizeof(type_vec) / sizeof(vpx_ref_frame_type_t); ++ix) {
|
||||
ref_frame_->frame_type = type_vec[ix];
|
||||
if (CopyReference(copy) < 0) {
|
||||
delete copy;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
// Copy all member variables (that are not set in initialization).
|
||||
copy->feedback_mode_ = feedback_mode_;
|
||||
copy->image_format_ = image_format_;
|
||||
copy->last_keyframe_ = last_keyframe_; // Shallow copy.
|
||||
// Allocate memory. (Discard copied _buffer pointer.)
|
||||
copy->last_keyframe_._buffer = new uint8_t[last_keyframe_._size];
|
||||
memcpy(copy->last_keyframe_._buffer, last_keyframe_._buffer,
|
||||
last_keyframe_._length);
|
||||
|
||||
return static_cast<VideoDecoder*>(copy);
|
||||
}
|
||||
|
||||
int VP8DecoderImpl::CopyReference(VP8DecoderImpl* copy) {
|
||||
// The type of frame to copy should be set in ref_frame_->frame_type
|
||||
// before the call to this function.
|
||||
|
@ -128,21 +128,17 @@ class VP8DecoderImpl : public VP8Decoder {
|
||||
|
||||
virtual ~VP8DecoderImpl();
|
||||
|
||||
virtual int InitDecode(const VideoCodec* inst, int number_of_cores);
|
||||
int InitDecode(const VideoCodec* inst, int number_of_cores) override;
|
||||
|
||||
virtual int Decode(const EncodedImage& input_image,
|
||||
int Decode(const EncodedImage& input_image,
|
||||
bool missing_frames,
|
||||
const RTPFragmentationHeader* fragmentation,
|
||||
const CodecSpecificInfo* codec_specific_info,
|
||||
int64_t /*render_time_ms*/);
|
||||
int64_t /*render_time_ms*/) override;
|
||||
|
||||
virtual int RegisterDecodeCompleteCallback(DecodedImageCallback* callback);
|
||||
|
||||
virtual int Release();
|
||||
|
||||
virtual int Reset();
|
||||
|
||||
virtual VideoDecoder* Copy();
|
||||
int RegisterDecodeCompleteCallback(DecodedImageCallback* callback) override;
|
||||
int Release() override;
|
||||
int Reset() override;
|
||||
|
||||
private:
|
||||
// Copy reference image from this _decoder to the _decoder in copyTo. Set
|
||||
|
@ -186,11 +186,6 @@ int32_t VCMGenericDecoder::Reset()
|
||||
return _decoder.Reset();
|
||||
}
|
||||
|
||||
int32_t VCMGenericDecoder::SetCodecConfigParameters(const uint8_t* buffer, int32_t size)
|
||||
{
|
||||
return _decoder.SetCodecConfigParameters(buffer, size);
|
||||
}
|
||||
|
||||
int32_t VCMGenericDecoder::RegisterDecodeCompleteCallback(VCMDecodedFrameCallback* callback)
|
||||
{
|
||||
_callback = callback;
|
||||
|
@ -90,15 +90,6 @@ public:
|
||||
*/
|
||||
int32_t Reset();
|
||||
|
||||
/**
|
||||
* Codec configuration data sent out-of-band, i.e. in SIP call setup
|
||||
*
|
||||
* buffer pointer to the configuration data
|
||||
* size the size of the configuration data in bytes
|
||||
*/
|
||||
int32_t SetCodecConfigParameters(const uint8_t* /*buffer*/,
|
||||
int32_t /*size*/);
|
||||
|
||||
/**
|
||||
* Set decode callback. Deregistering while decoding is illegal.
|
||||
*/
|
||||
|
@ -62,13 +62,6 @@ class VideoDecoder {
|
||||
|
||||
virtual int32_t Release() = 0;
|
||||
virtual int32_t Reset() = 0;
|
||||
|
||||
virtual int32_t SetCodecConfigParameters(const uint8_t* /*buffer*/,
|
||||
int32_t /*size*/) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
virtual VideoDecoder* Copy() { return NULL; }
|
||||
};
|
||||
|
||||
// Class used to wrap external VideoDecoders to provide a fallback option on
|
||||
|
Reference in New Issue
Block a user