Commit 7e2e9943 authored by Wan-Teh Chang's avatar Wan-Teh Chang Committed by Commit Bot

Roll src/third_party/libgav1/src/ 8e8c13b9e..fa1c3c4e6 (10 commits)

https://chromium.googlesource.com/codecs/libgav1.git/+log/8e8c13b9e821..fa1c3c4e673c

$ git log 8e8c13b9e..fa1c3c4e6 --date=short --no-merges --format='%ad %ae %s'
2020-02-19 wtc Change libgav1's frame buffer callback API.
2020-02-18 vigneshv Move tile_scratch_buffer_pool_ to FrameScratchBuffer
2020-02-18 jzern film_grain.h: remove unused fn decls
2020-02-18 jzern libgav1_decoder.cmake: rm commented out header
2020-02-18 vigneshv trivial: Rename EncodedFrame to TemporalUnit
2020-02-18 johannkoenig blend: remove stride from average blend
2020-02-18 johannkoenig prediction: remove prediction_stride
2020-02-18 vigneshv trivial: Refactor ApplyFilmGrain parameters
2020-02-17 wtc Rename YuvBuffer::displayed_width+displayed_height
2020-02-17 vigneshv trivial: Fix ApplyFilmGrain return status on success

Created with:
  roll-dep src/third_party/libgav1/src

Update the libgav1 frame buffer callbacks in
media/filters/gav1_video_decoder.cc to the final prototypes. In
particular, omit the OnFrameBufferSizeChangedImpl callback.

Tested:
  $ gn args out/Default
  # In the editor, add the following build argument:
  # enable_libgav1_decoder = true
  $ autoninja -C out/Default media_unittests
  $ out/Default/media_unittests
  $ out/Default/media_unittests --enable-features=Gav1VideoDecoder

R=tomfinegan@chromium.org,johannkoenig@google.com,jzern@google.com

Bug: 1026522
Change-Id: I8f316131b74bdd1242ab7394346c043c355736e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2085593
Commit-Queue: Wan-Teh Chang <wtc@google.com>
Reviewed-by: default avatarDale Curtis <dalecurtis@chromium.org>
Reviewed-by: default avatarJames Zern <jzern@google.com>
Cr-Commit-Position: refs/heads/master@{#746614}
parent 913247c3
...@@ -941,7 +941,7 @@ deps = { ...@@ -941,7 +941,7 @@ deps = {
Var('chromium_git') + '/external/github.com/google/emoji-segmenter.git' + '@' + Var('emoji_segmenter_revision'), Var('chromium_git') + '/external/github.com/google/emoji-segmenter.git' + '@' + Var('emoji_segmenter_revision'),
'src/third_party/libgav1/src': 'src/third_party/libgav1/src':
Var('chromium_git') + '/codecs/libgav1.git' + '@' + '8e8c13b9e821f4590761487c4e0b96f432eaf051', Var('chromium_git') + '/codecs/libgav1.git' + '@' + 'fa1c3c4e673cf12ffa22b8fbe4a7c79314571f1b',
'src/third_party/glslang/src': 'src/third_party/glslang/src':
Var('chromium_git') + '/external/github.com/KhronosGroup/glslang.git' + '@' + '8985fc91089f3117d338f0ebd683596a197b2d92', Var('chromium_git') + '/external/github.com/KhronosGroup/glslang.git' + '@' + '8985fc91089f3117d338f0ebd683596a197b2d92',
......
...@@ -90,34 +90,17 @@ int GetDecoderThreadCounts(int coded_height) { ...@@ -90,34 +90,17 @@ int GetDecoderThreadCounts(int coded_height) {
return std::min(threads_by_height(coded_height), num_cores); return std::min(threads_by_height(coded_height), num_cores);
} }
// Libgav1 frame buffer callbacks return 0 on success, -1 on failure. libgav1::StatusCode GetFrameBufferImpl(void* callback_private_data,
int bitdepth,
int OnFrameBufferSizeChangedImpl(void* /*callback_private_data*/, libgav1::ImageFormat image_format,
int /*bitdepth*/, int width,
libgav1::ImageFormat /*image_format*/, int height,
int /*width*/, int left_border,
int /*height*/, int right_border,
int /*left_border*/, int top_border,
int /*right_border*/, int bottom_border,
int /*top_border*/, int stride_alignment,
int /*bottom_border*/, Libgav1FrameBuffer* frame_buffer) {
int /*stride_alignment*/) {
// The libgav1 decoder calls this callback to provide information on the
// subsequent frames in the video. VideoFramePool ignores this information.
return 0;
}
int GetFrameBufferImpl(void* callback_private_data,
int bitdepth,
libgav1::ImageFormat image_format,
int width,
int height,
int left_border,
int right_border,
int top_border,
int bottom_border,
int stride_alignment,
Libgav1FrameBuffer2* frame_buffer) {
DCHECK(callback_private_data); DCHECK(callback_private_data);
DCHECK(frame_buffer); DCHECK(frame_buffer);
DCHECK((stride_alignment & (stride_alignment - 1)) == 0); DCHECK((stride_alignment & (stride_alignment - 1)) == 0);
...@@ -129,7 +112,7 @@ int GetFrameBufferImpl(void* callback_private_data, ...@@ -129,7 +112,7 @@ int GetFrameBufferImpl(void* callback_private_data,
const VideoPixelFormat format = const VideoPixelFormat format =
Libgav1ImageFormatToVideoPixelFormat(image_format, bitdepth); Libgav1ImageFormatToVideoPixelFormat(image_format, bitdepth);
if (format == PIXEL_FORMAT_UNKNOWN) if (format == PIXEL_FORMAT_UNKNOWN)
return -1; return libgav1::kStatusUnimplemented;
// VideoFramePool aligns video_frame->data(i), but libgav1 needs // VideoFramePool aligns video_frame->data(i), but libgav1 needs
// video_frame->visible_data(i) to be aligned. To accomplish that, pad // video_frame->visible_data(i) to be aligned. To accomplish that, pad
...@@ -166,7 +149,7 @@ int GetFrameBufferImpl(void* callback_private_data, ...@@ -166,7 +149,7 @@ int GetFrameBufferImpl(void* callback_private_data,
auto video_frame = auto video_frame =
decoder->CreateVideoFrame(format, coded_size, visible_rect); decoder->CreateVideoFrame(format, coded_size, visible_rect);
if (!video_frame) if (!video_frame)
return -1; return libgav1::kStatusInvalidArgument;
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
// frame_buffer->plane[i] points to the first byte of the frame proper, // frame_buffer->plane[i] points to the first byte of the frame proper,
...@@ -177,7 +160,7 @@ int GetFrameBufferImpl(void* callback_private_data, ...@@ -177,7 +160,7 @@ int GetFrameBufferImpl(void* callback_private_data,
frame_buffer->private_data = video_frame.get(); frame_buffer->private_data = video_frame.get();
video_frame->AddRef(); video_frame->AddRef();
return 0; return libgav1::kStatusOk;
} }
void ReleaseFrameBufferImpl(void* callback_private_data, void ReleaseFrameBufferImpl(void* callback_private_data,
...@@ -272,7 +255,6 @@ void Gav1VideoDecoder::Initialize(const VideoDecoderConfig& config, ...@@ -272,7 +255,6 @@ void Gav1VideoDecoder::Initialize(const VideoDecoderConfig& config,
libgav1::DecoderSettings settings; libgav1::DecoderSettings settings;
settings.threads = VideoDecoder::GetRecommendedThreadCount( settings.threads = VideoDecoder::GetRecommendedThreadCount(
GetDecoderThreadCounts(config.coded_size().height())); GetDecoderThreadCounts(config.coded_size().height()));
settings.on_frame_buffer_size_changed = OnFrameBufferSizeChangedImpl;
settings.get_frame_buffer = GetFrameBufferImpl; settings.get_frame_buffer = GetFrameBufferImpl;
settings.release_frame_buffer = ReleaseFrameBufferImpl; settings.release_frame_buffer = ReleaseFrameBufferImpl;
settings.callback_private_data = this; settings.callback_private_data = this;
......
...@@ -2,9 +2,9 @@ Name: libgav1 ...@@ -2,9 +2,9 @@ Name: libgav1
Short Name: libgav1 Short Name: libgav1
URL: https://chromium.googlesource.com/codecs/libgav1/ URL: https://chromium.googlesource.com/codecs/libgav1/
Version: 0 Version: 0
Date: Tuesday February 18 2020 Date: Thursday February 20 2020
Branch: master Branch: master
Commit: 8e8c13b9e821f4590761487c4e0b96f432eaf051 Commit: fa1c3c4e673cf12ffa22b8fbe4a7c79314571f1b
License: Apache 2.0 License: Apache 2.0
License File: libgav1/LICENSE License File: libgav1/LICENSE
Security Critical: yes Security Critical: yes
......
...@@ -10,8 +10,6 @@ gav1_common_sources = [ ...@@ -10,8 +10,6 @@ gav1_common_sources = [
"//third_party/libgav1/src/src/film_grain.cc", "//third_party/libgav1/src/src/film_grain.cc",
"//third_party/libgav1/src/src/film_grain.h", "//third_party/libgav1/src/src/film_grain.h",
"//third_party/libgav1/src/src/frame_buffer.cc", "//third_party/libgav1/src/src/frame_buffer.cc",
"//third_party/libgav1/src/src/frame_buffer_callback_adaptor.cc",
"//third_party/libgav1/src/src/frame_buffer_callback_adaptor.h",
"//third_party/libgav1/src/src/frame_buffer_utils.h", "//third_party/libgav1/src/src/frame_buffer_utils.h",
"//third_party/libgav1/src/src/frame_scratch_buffer.h", "//third_party/libgav1/src/src/frame_scratch_buffer.h",
"//third_party/libgav1/src/src/internal_frame_buffer_list.cc", "//third_party/libgav1/src/src/internal_frame_buffer_list.cc",
...@@ -157,7 +155,6 @@ gav1_gav1_sources = [ ...@@ -157,7 +155,6 @@ gav1_gav1_sources = [
"//third_party/libgav1/src/src/gav1/decoder_buffer.h", "//third_party/libgav1/src/src/gav1/decoder_buffer.h",
"//third_party/libgav1/src/src/gav1/decoder_settings.h", "//third_party/libgav1/src/src/gav1/decoder_settings.h",
"//third_party/libgav1/src/src/gav1/frame_buffer.h", "//third_party/libgav1/src/src/gav1/frame_buffer.h",
"//third_party/libgav1/src/src/gav1/frame_buffer2.h",
"//third_party/libgav1/src/src/gav1/status_code.h", "//third_party/libgav1/src/src/gav1/status_code.h",
"//third_party/libgav1/src/src/gav1/symbol_visibility.h", "//third_party/libgav1/src/src/gav1/symbol_visibility.h",
"//third_party/libgav1/src/src/gav1/version.h", "//third_party/libgav1/src/src/gav1/version.h",
......
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