aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRene Ladan <rene@FreeBSD.org>2021-05-15 18:56:06 +0000
committerRene Ladan <rene@FreeBSD.org>2021-05-16 11:31:05 +0000
commitc82dfb1970514b7f33883c7651b4cfc676e8c7fc (patch)
tree2875bd88862ba6e63a1d2bf7bd8180048c251cb8
parent69325410895eab97c421d04a414acb14b7771ad6 (diff)
downloadports-2021Q2.tar.gz
ports-2021Q2.zip
www/chromium: attempt to make it work with Microsoft Teams2021Q2
- add dependency virtual_oss so the microphone works [1] - skip assertion in h264_decoder, we will force it to initialize later [2] PR: 246214 [1] PR: 255484 [2] MFH: 2021Q2 (cherry picked from commit 74647995deae7050b6f9a3bf3b3a3ef8ff25ad63)
-rw-r--r--www/chromium/Makefile4
-rw-r--r--www/chromium/files/patch-third__party_webrtc_modules_video__coding_codecs_h264_h264__decoder__impl.cc22
2 files changed, 19 insertions, 7 deletions
diff --git a/www/chromium/Makefile b/www/chromium/Makefile
index 5a5b33075650..d623cdc57569 100644
--- a/www/chromium/Makefile
+++ b/www/chromium/Makefile
@@ -2,6 +2,7 @@
PORTNAME= chromium
PORTVERSION= 90.0.4430.212
+PORTREVISION= 1
CATEGORIES= www java
MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/ \
LOCAL/rene/chromium/:fonts
@@ -63,7 +64,8 @@ LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-atk \
libxshmfence.so:x11/libxshmfence
RUN_DEPENDS= xdg-open:devel/xdg-utils \
- noto-basic>0:x11-fonts/noto-basic
+ noto-basic>0:x11-fonts/noto-basic \
+ virtual_oss>0:audio/virtual_oss
USES= bison compiler:c++17-lang cpe desktop-file-utils dos2unix gl gnome jpeg localbase:ldflags \
ninja perl5 pkgconfig python:2.7,build shebangfix tar:xz xorg
diff --git a/www/chromium/files/patch-third__party_webrtc_modules_video__coding_codecs_h264_h264__decoder__impl.cc b/www/chromium/files/patch-third__party_webrtc_modules_video__coding_codecs_h264_h264__decoder__impl.cc
index 83f4afc9a103..4d6ee5c9c3ca 100644
--- a/www/chromium/files/patch-third__party_webrtc_modules_video__coding_codecs_h264_h264__decoder__impl.cc
+++ b/www/chromium/files/patch-third__party_webrtc_modules_video__coding_codecs_h264_h264__decoder__impl.cc
@@ -1,12 +1,22 @@
---- third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc.orig 2021-04-30 09:00:21.722978000 +0000
-+++ third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc 2021-04-30 09:00:54.473978000 +0000
-@@ -202,6 +202,9 @@
+--- third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc.orig 2021-05-10 18:48:00 UTC
++++ third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
+@@ -77,7 +77,8 @@ int H264DecoderImpl::AVGetBuffer2(AVCodecContext* cont
+ int height = av_frame->height;
+ // See |lowres|, if used the decoder scales the image by 1/2^(lowres). This
+ // has implications on which resolutions are valid, but we don't use it.
+- RTC_CHECK_EQ(context->lowres, 0);
++ // PR255687: disabled to prevent crash with Microsoft Teams
++ // RTC_CHECK_EQ(context->lowres, 0);
+ // Adjust the |width| and |height| to values acceptable by the decoder.
+ // Without this, FFmpeg may overflow the buffer. If modified, |width| and/or
+ // |height| are larger than the actual image and the image has to be cropped
+@@ -201,6 +202,9 @@ int32_t H264DecoderImpl::InitDecode(const VideoCodec*
+ // |get_buffer2| is called with the context, there |opaque| can be used to get
// a pointer |this|.
av_context_->opaque = this;
-
++
+ // Initializing |lowres|
+ av_context_->lowres = 0;
-+
+
AVCodec* codec = avcodec_find_decoder(av_context_->codec_id);
if (!codec) {
- // This is an indication that FFmpeg has not been initialized or it has not