diff --git a/media/libdav1d/moz.yaml b/media/libdav1d/moz.yaml index 454c3ec4ce76..881eec52bc6e 100644 --- a/media/libdav1d/moz.yaml +++ b/media/libdav1d/moz.yaml @@ -20,11 +20,11 @@ origin: # Human-readable identifier for this version/release # Generally "version NNN", "tag SSS", "bookmark SSS" - release: 42b2b24fb8819f1ed3643aa9cf2a62f03868e3aa (2025-01-19T22:33:54.000+01:00). + release: caef968117eb2d6d7224e8d29ec67ff79b0025f8 (2025-02-28T09:28:46.000-05:00). # Revision to pull in # Must be a long or short commit SHA (long preferred) - revision: 42b2b24fb8819f1ed3643aa9cf2a62f03868e3aa + revision: caef968117eb2d6d7224e8d29ec67ff79b0025f8 # The package's license, where possible using the mnemonic from # https://spdx.org/licenses/ diff --git a/media/libdav1d/vcs_version.h b/media/libdav1d/vcs_version.h index 2e0b10e7d26d..b3b197702e32 100644 --- a/media/libdav1d/vcs_version.h +++ b/media/libdav1d/vcs_version.h @@ -1,2 +1,2 @@ /* auto-generated, do not edit */ -#define DAV1D_VERSION "42b2b24fb8819f1ed3643aa9cf2a62f03868e3aa" +#define DAV1D_VERSION "caef968117eb2d6d7224e8d29ec67ff79b0025f8" diff --git a/third_party/dav1d/include/common/attributes.h b/third_party/dav1d/include/common/attributes.h index c8758c19aef7..c6cecc7acabe 100644 --- a/third_party/dav1d/include/common/attributes.h +++ b/third_party/dav1d/include/common/attributes.h @@ -123,6 +123,12 @@ #define EXTERN extern #endif +#if ARCH_X86_64 && __has_attribute(model) +#define ATTR_MCMODEL_SMALL __attribute__((model("small"))) +#else +#define ATTR_MCMODEL_SMALL +#endif + #ifdef __clang__ #define NO_SANITIZE(x) __attribute__((no_sanitize(x))) #else diff --git a/third_party/dav1d/src/decode.c b/third_party/dav1d/src/decode.c index a3b1b9c2102c..3ee306a2971d 100644 --- a/third_party/dav1d/src/decode.c +++ b/third_party/dav1d/src/decode.c @@ -958,9 +958,7 @@ static int decode_b(Dav1dTaskContext *const t, } // delta-q/lf - if (!(t->bx & (31 >> !f->seq_hdr->sb128)) && - !(t->by & (31 >> !f->seq_hdr->sb128))) - { + if (!((t->bx | t->by) & (31 >> !f->seq_hdr->sb128))) { const int prev_qidx = ts->last_qidx; const int have_delta_q = f->frame_hdr->delta.q.present && (bs != (f->seq_hdr->sb128 ? BS_128x128 : BS_64x64) || !b->skip); diff --git a/third_party/dav1d/src/tables.c b/third_party/dav1d/src/tables.c index 9752f15c40df..524864c4fadd 100644 --- a/third_party/dav1d/src/tables.c +++ b/third_party/dav1d/src/tables.c @@ -419,6 +419,7 @@ const uint16_t ALIGN(dav1d_sgr_params[16][2], 4) = { { 0, 1177 }, { 0, 925 }, { 56, 0 }, { 22, 0 }, }; +ATTR_MCMODEL_SMALL const uint8_t ALIGN(dav1d_sgr_x_by_x[256], 64) = { 255, 128, 85, 64, 51, 43, 37, 32, 28, 26, 23, 21, 20, 18, 17, 16, 15, 14, 13, 13, 12, 12, 11, 11, 10, 10, 9, 9, 9, 9, @@ -440,6 +441,7 @@ const uint8_t ALIGN(dav1d_sgr_x_by_x[256], 64) = { 0 }; +ATTR_MCMODEL_SMALL const int8_t ALIGN(dav1d_mc_subpel_filters[6][15][8], 8) = { [DAV1D_FILTER_8TAP_REGULAR] = { { 0, 1, -3, 63, 4, -1, 0, 0 }, @@ -544,6 +546,7 @@ const int8_t ALIGN(dav1d_mc_subpel_filters[6][15][8], 8) = { } }; +ATTR_MCMODEL_SMALL const int8_t ALIGN(dav1d_mc_warp_filter[193][8], 8) = { // [-1, 0) { 0, 0, 127, 1, 0, 0, 0, 0 }, { 0, -1, 127, 2, 0, 0, 0, 0 }, @@ -648,6 +651,7 @@ const int8_t ALIGN(dav1d_mc_warp_filter[193][8], 8) = { { 0, 0, 0, 0, 2, 127, -1, 0 }, }; +ATTR_MCMODEL_SMALL const int8_t ALIGN(dav1d_resize_filter[64][8], 8) = { { 0, 0, 0, -128, 0, 0, 0, 0 }, { 0, 0, 1, -128, -2, 1, 0, 0 }, { 0, -1, 3, -127, -4, 2, -1, 0 }, { 0, -1, 4, -127, -6, 3, -1, 0 }, @@ -711,6 +715,7 @@ const uint8_t ALIGN(dav1d_sm_weights[128], 16) = { 7, 6, 6, 5, 5, 4, 4, 4 }; +ATTR_MCMODEL_SMALL const uint16_t dav1d_dr_intra_derivative[44] = { // Values that are 0 will never be used 0, // Angles: @@ -756,6 +761,7 @@ const uint16_t dav1d_dr_intra_derivative[44] = { [1*idx+32] = f4, [1*idx+40] = f5, \ [1*idx+48] = f6 #endif +ATTR_MCMODEL_SMALL const int8_t ALIGN(dav1d_filter_intra_taps[5][64], 64) = { { F( 0, -6, 10, 0, 0, 0, 12, 0 ), @@ -822,6 +828,7 @@ const uint8_t ALIGN(dav1d_obmc_masks[64], 16) = { }; // Taken from the spec. Range is [-2048, 2047], mean is 0 and stddev is 512 +ATTR_MCMODEL_SMALL const int16_t dav1d_gaussian_sequence[2048] = { 56, 568, -180, 172, 124, -84, 172, -64, -900, 24, 820, 224, 1248, 996, 272, -8, -916, -388, -732, -104, -188, 800,