Commit f128bbe0 authored by Emircan Uysaler's avatar Emircan Uysaler Committed by Commit Bot

Set ImplementationName() correctly in webrtc::Video*coder implementations

We should set this field to distinguish HW codec implementations of Chromium
from SW codecs of WebRTC. googCodecName field already sets VP8/VP9/H264
information, so setting this field to a generic name "HW*coder" should be
enough.

Bug: 838739
Change-Id: I9936daef9a53b6f004ede357e37fd976ca0d9c9e
Reviewed-on: https://chromium-review.googlesource.com/1039023
Commit-Queue: Emircan Uysaler <emircan@chromium.org>
Reviewed-by: default avatarDan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556167}
parent 0473955f
...@@ -536,6 +536,10 @@ void RTCVideoDecoder::NotifyError(media::VideoDecodeAccelerator::Error error) { ...@@ -536,6 +536,10 @@ void RTCVideoDecoder::NotifyError(media::VideoDecodeAccelerator::Error error) {
++vda_error_counter_; ++vda_error_counter_;
} }
const char* RTCVideoDecoder::ImplementationName() const {
return "ExternalDecoder";
}
void RTCVideoDecoder::RequestBufferDecode() { void RTCVideoDecoder::RequestBufferDecode() {
DCheckGpuVideoAcceleratorFactoriesTaskRunnerIsCurrent(); DCheckGpuVideoAcceleratorFactoriesTaskRunnerIsCurrent();
if (!vda_) if (!vda_)
......
...@@ -92,6 +92,7 @@ class CONTENT_EXPORT RTCVideoDecoder ...@@ -92,6 +92,7 @@ class CONTENT_EXPORT RTCVideoDecoder
void NotifyFlushDone() override; void NotifyFlushDone() override;
void NotifyResetDone() override; void NotifyResetDone() override;
void NotifyError(media::VideoDecodeAccelerator::Error error) override; void NotifyError(media::VideoDecodeAccelerator::Error error) override;
const char* ImplementationName() const override;
private: private:
// Metadata of a bitstream buffer. // Metadata of a bitstream buffer.
......
...@@ -154,6 +154,8 @@ class RTCVideoEncoder::Impl ...@@ -154,6 +154,8 @@ class RTCVideoEncoder::Impl
webrtc::VideoCodecType video_codec_type() const { return video_codec_type_; } webrtc::VideoCodecType video_codec_type() const { return video_codec_type_; }
static const char* ImplementationName() { return "ExternalEncoder"; }
// media::VideoEncodeAccelerator::Client implementation. // media::VideoEncodeAccelerator::Client implementation.
void RequireBitstreamBuffers(unsigned int input_count, void RequireBitstreamBuffers(unsigned int input_count,
const gfx::Size& input_coded_size, const gfx::Size& input_coded_size,
...@@ -767,6 +769,7 @@ void RTCVideoEncoder::Impl::ReturnEncodedImage( ...@@ -767,6 +769,7 @@ void RTCVideoEncoder::Impl::ReturnEncodedImage(
webrtc::CodecSpecificInfo info; webrtc::CodecSpecificInfo info;
memset(&info, 0, sizeof(info)); memset(&info, 0, sizeof(info));
info.codecType = video_codec_type_; info.codecType = video_codec_type_;
info.codec_name = ImplementationName();
if (video_codec_type_ == webrtc::kVideoCodecVP8) { if (video_codec_type_ == webrtc::kVideoCodecVP8) {
info.codecSpecific.VP8.pictureId = picture_id; info.codecSpecific.VP8.pictureId = picture_id;
info.codecSpecific.VP8.tl0PicIdx = -1; info.codecSpecific.VP8.tl0PicIdx = -1;
...@@ -938,4 +941,8 @@ bool RTCVideoEncoder::SupportsNativeHandle() const { ...@@ -938,4 +941,8 @@ bool RTCVideoEncoder::SupportsNativeHandle() const {
return true; return true;
} }
const char* RTCVideoEncoder::ImplementationName() const {
return RTCVideoEncoder::Impl::ImplementationName();
}
} // namespace content } // namespace content
...@@ -59,6 +59,7 @@ class CONTENT_EXPORT RTCVideoEncoder : public webrtc::VideoEncoder { ...@@ -59,6 +59,7 @@ class CONTENT_EXPORT RTCVideoEncoder : public webrtc::VideoEncoder {
int32_t SetChannelParameters(uint32_t packet_loss, int64_t rtt) override; int32_t SetChannelParameters(uint32_t packet_loss, int64_t rtt) override;
int32_t SetRates(uint32_t new_bit_rate, uint32_t frame_rate) override; int32_t SetRates(uint32_t new_bit_rate, uint32_t frame_rate) override;
bool SupportsNativeHandle() const override; bool SupportsNativeHandle() const override;
const char* ImplementationName() const override;
private: private:
class Impl; class Impl;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment