From 6e906fed4d19280d937c6bd6e2864559a3c611fa Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Sun, 30 Aug 2026 11:56:44 +1000 Subject: [PATCH] Normalize HEIF internal member visibility --- .../Formats/Heif/Av1/Av1BitStreamReader.cs | 2 +- .../Formats/Heif/Av1/Av1BitStreamWriter.cs | 6 +-- src/ImageSharp/Formats/Heif/Av1/Av1Math.cs | 32 ++++++++-------- .../Av1/Entropy/Av1SymbolContextHelper.cs | 38 +++++++++---------- .../Heif/Av1/ModeDecision/Av1BlockGeometry.cs | 20 +++++----- ...tDirectionalEnhancementFilterParameters.cs | 4 +- .../OpenBitstreamUnit/ObuDecoderModelInfo.cs | 8 ++-- .../OpenBitstreamUnit/ObuDeltaParameters.cs | 6 +-- .../ObuLoopFilterParameters.cs | 12 +++--- .../ObuLoopRestorationItem.cs | 4 +- .../ObuLoopRestorationParameters.cs | 12 +++--- .../OpenBitstreamUnit/ObuOperatingPoint.cs | 14 +++---- .../ObuQuantizationParameters.cs | 10 ++--- .../Heif/Av1/OpenBitstreamUnit/ObuReader.cs | 4 +- .../ObuSegmentationParameters.cs | 18 ++++----- .../OpenBitstreamUnit/ObuTileGroupHeader.cs | 30 +++++++-------- .../Inter/Av1InterPredictor.Arithmetic.cs | 38 +++++++++---------- .../Inter/Av1InterPredictor.Operator.cs | 2 +- .../Av1/Tiling/Av1EncoderBlockModeInfo.cs | 6 +-- .../Heif/Av1/Tiling/Av1EncoderBlockStruct.cs | 4 +- .../Heif/Av1/Tiling/Av1EncoderCommon.cs | 10 ++--- .../Av1/Tiling/Av1EncoderPredictionUnit.cs | 4 +- .../Av1/Tiling/Av1EntropyCodingContext.cs | 8 ++-- .../Formats/Heif/Av1/Tiling/Av1FrameInfo.cs | 2 +- .../Formats/Heif/Av1/Tiling/Av1LevelBuffer.cs | 2 +- .../Formats/Heif/Av1/Tiling/Av1MacroBlockD.cs | 26 ++++++------- .../Heif/Av1/Tiling/Av1MacroBlockModeInfo.cs | 6 +-- .../Formats/Heif/Av1/Tiling/Av1ModeInfo.cs | 2 +- .../Heif/Av1/Tiling/Av1NeighborArrayUnit.cs | 2 +- .../Heif/Av1/Tiling/Av1PartitionContext.cs | 4 +- .../Heif/Av1/Tiling/Av1PartitionInfo.cs | 2 +- .../Heif/Av1/Tiling/Av1PictureControlSet.cs | 28 +++++++------- .../Av1/Tiling/Av1PictureParentControlSet.cs | 14 +++---- .../Heif/Av1/Tiling/Av1SequenceControlSet.cs | 4 +- .../Formats/Heif/Av1/Tiling/Av1Superblock.cs | 4 +- .../Heif/Av1/Tiling/Av1SuperblockGeometry.cs | 2 +- .../Heif/Av1/Tiling/Av1SuperblockInfo.cs | 6 +-- .../Formats/Heif/Av1/Tiling/Av1TileReader.cs | 4 +- .../Formats/Heif/Av1/Tiling/Av1TileWriter.cs | 2 +- .../Heif/Av1/Tiling/Av1TransformInfo.cs | 10 ++--- .../Av1/Transform/Av1InverseTransformMath.cs | 2 +- .../Av1TransformFunctionParameters.cs | 12 +++--- .../Heif/Hevc/HevcSliceSegmentHeader.cs | 4 +- 43 files changed, 215 insertions(+), 215 deletions(-) diff --git a/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamReader.cs b/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamReader.cs index 5f1424c33..89aaa68b6 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamReader.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamReader.cs @@ -62,7 +62,7 @@ internal ref struct Av1BitStreamReader /// Reads the next encoded bit. /// /// Zero or one. - internal uint ReadBit() + public uint ReadBit() { int byteOffset = Av1Math.DivideBy8Floor(this.BitPosition); byte shift = (byte)(7 - Av1Math.Modulus8(this.BitPosition)); diff --git a/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamWriter.cs b/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamWriter.cs index e4612db83..81d64c25e 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamWriter.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamWriter.cs @@ -126,7 +126,7 @@ internal ref struct Av1BitStreamWriter /// Writes one Boolean bit. /// /// The Boolean value. - internal void WriteBoolean(bool value) + public void WriteBoolean(bool value) { byte boolByte = value ? (byte)1 : (byte)0; this.WriteBit(boolByte); @@ -172,7 +172,7 @@ internal ref struct Av1BitStreamWriter /// /// The symbol value. /// The number of symbols in the alphabet. - internal void WriteNonSymmetric(uint value, uint numberOfSymbols) + public void WriteNonSymmetric(uint value, uint numberOfSymbols) { if (numberOfSymbols <= 1) { @@ -231,7 +231,7 @@ internal ref struct Av1BitStreamWriter /// Writes a byte-aligned entropy-coded tile payload. /// /// The tile payload. - internal void WriteBlob(ReadOnlySpan tileData) + public void WriteBlob(ReadOnlySpan tileData) { DebugGuard.IsTrue(Av1Math.Modulus8(this.BitPosition) == 0, "Writing of Tile Data only allowed on byte alignment"); diff --git a/src/ImageSharp/Formats/Heif/Av1/Av1Math.cs b/src/ImageSharp/Formats/Heif/Av1/Av1Math.cs index 0e4c1bbf9..9a5702d86 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Av1Math.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Av1Math.cs @@ -55,7 +55,7 @@ internal static class Av1Math /// /// The value. /// The zero-based position of the most significant set bit. - internal static uint Log2_32(uint x) + public static uint Log2_32(uint x) { uint log = 0; int i; @@ -178,7 +178,7 @@ internal static class Av1Math /// The value to align. /// The base-two alignment exponent. /// The aligned value. - internal static int AlignPowerOf2(int value, int n) + public static int AlignPowerOf2(int value, int n) { int mask = (1 << n) - 1; return (value + mask) & ~mask; @@ -190,7 +190,7 @@ internal static class Av1Math /// The value. /// The base-two divisor exponent. /// The rounded quotient. - internal static int RoundPowerOf2(int value, int n) => (value + ((1 << n) >> 1)) >> n; + public static int RoundPowerOf2(int value, int n) => (value + ((1 << n) >> 1)) >> n; /// /// Clamps a signed integer to an inclusive range. @@ -199,7 +199,7 @@ internal static class Av1Math /// The inclusive lower bound. /// The inclusive upper bound. /// The clamped value. - internal static int Clamp(int value, int low, int high) + public static int Clamp(int value, int low, int high) => Math.Max(low, Math.Min(high, value)); /// @@ -209,7 +209,7 @@ internal static class Av1Math /// The inclusive lower bound. /// The inclusive upper bound. /// The clamped value. - internal static long Clamp(long value, long low, long high) + public static long Clamp(long value, long low, long high) => Math.Max(low, Math.Min(high, value)); /// @@ -218,7 +218,7 @@ internal static class Av1Math /// The value. /// The base-two divisor exponent. /// The floor-rounded quotient. - internal static int DivideLog2Floor(int value, int n) + public static int DivideLog2Floor(int value, int n) => value >> n; /// @@ -227,7 +227,7 @@ internal static class Av1Math /// The value. /// The base-two divisor exponent. /// The ceiling-rounded quotient. - internal static int DivideLog2Ceiling(int value, int n) + public static int DivideLog2Ceiling(int value, int n) => (value + (1 << n) - 1) >> n; /// @@ -236,7 +236,7 @@ internal static class Av1Math /// The value. /// The base-two divisor exponent. /// The rounded quotient. - internal static int DivideRound(int value, int bitCount) + public static int DivideRound(int value, int bitCount) => (value + (1 << (bitCount - 1))) >> bitCount; /// @@ -244,14 +244,14 @@ internal static class Av1Math /// /// The value. /// The low three bits of the value. - internal static int Modulus8(int value) => value & 0x07; + public static int Modulus8(int value) => value & 0x07; /// /// Divides a value by eight with floor rounding. /// /// The value. /// The floor-rounded quotient. - internal static int DivideBy8Floor(int value) => value >> 3; + public static int DivideBy8Floor(int value) => value >> 3; /// /// Divides a signed value by a power of two with symmetric nearest-integer rounding. @@ -259,7 +259,7 @@ internal static class Av1Math /// The signed value. /// The base-two divisor exponent. /// The signed rounded quotient. - internal static int RoundPowerOf2Signed(int value, int n) + public static int RoundPowerOf2Signed(int value, int n) => (value < 0) ? -RoundPowerOf2(-value, n) : RoundPowerOf2(value, n); /// @@ -268,7 +268,7 @@ internal static class Av1Math /// The value. /// The positive shift count. /// The rounded signed result. - internal static int RoundShift(long value, int bit) + public static int RoundShift(long value, int bit) { DebugGuard.MustBeGreaterThanOrEqualTo(bit, 1, nameof(bit)); return (int)((value + (1L << (bit - 1))) >> bit); @@ -280,7 +280,7 @@ internal static class Av1Math /// The antecedent. /// The consequent. /// only when is true and is false. - internal static bool Implies(bool a, bool b) => !a || b; + public static bool Implies(bool a, bool b) => !a || b; /// /// Gets one bit from an integer value. @@ -288,7 +288,7 @@ internal static class Av1Math /// The value. /// The zero-based bit position. /// Zero or one. - internal static int GetBit(int value, int n) + public static int GetBit(int value, int n) => (value & (1 << n)) >> n; /// @@ -296,7 +296,7 @@ internal static class Av1Math /// /// The value to update. /// The zero-based bit position. - internal static void SetBit(ref int endOfBlockExtra, int n) + public static void SetBit(ref int endOfBlockExtra, int n) => endOfBlockExtra |= 1 << n; /// @@ -305,5 +305,5 @@ internal static class Av1Math /// The first value. /// The second value. /// The nonnegative absolute difference. - internal static int AbsoluteDifference(int a, int b) => (a > b) ? a - b : b - a; + public static int AbsoluteDifference(int a, int b) => (a > b) ? a - b : b - a; } diff --git a/src/ImageSharp/Formats/Heif/Av1/Entropy/Av1SymbolContextHelper.cs b/src/ImageSharp/Formats/Heif/Av1/Entropy/Av1SymbolContextHelper.cs index 3dd862b35..10a7df009 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Entropy/Av1SymbolContextHelper.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Entropy/Av1SymbolContextHelper.cs @@ -265,7 +265,7 @@ internal static class Av1SymbolContextHelper /// /// The coded transform size. /// The square transform-size context. - internal static Av1TransformSize GetTransformSizeContext(Av1TransformSize originalSize) + public static Av1TransformSize GetTransformSizeContext(Av1TransformSize originalSize) => (Av1TransformSize)(((int)originalSize.GetSquareSize() + (int)originalSize.GetSquareUpSize() + 1) >> 1); /// @@ -290,7 +290,7 @@ internal static class Av1SymbolContextHelper /// The decoded end-of-block token. /// The decoded offset within the token group. /// The one-based end-of-block coefficient position. - internal static int RecordEndOfBlockPosition(int endOfBlockPoint, int endOfBlockExtra) + public static int RecordEndOfBlockPosition(int endOfBlockPoint, int endOfBlockExtra) { int endOfBlock = EndOfBlockGroupStart[endOfBlockPoint]; if (endOfBlock > 2) @@ -307,7 +307,7 @@ internal static class Av1SymbolContextHelper /// The padded coefficient-level buffer. /// The coordinate whose row-major index identifies the coefficient's scan position. /// The end-of-block lower-level context. - internal static int GetLowerLevelContextEndOfBlock(Av1LevelBuffer levels, Point position) + public static int GetLowerLevelContextEndOfBlock(Av1LevelBuffer levels, Point position) => GetLowerLevelContextEndOfBlock(levels, position.X + (position.Y * levels.Size.Width)); /// @@ -316,7 +316,7 @@ internal static class Av1SymbolContextHelper /// The padded coefficient-level buffer. /// The zero-based coefficient index in scan order. /// The end-of-block lower-level context. - internal static int GetLowerLevelContextEndOfBlock(Av1LevelBuffer levels, int scanIndex) + public static int GetLowerLevelContextEndOfBlock(Av1LevelBuffer levels, int scanIndex) { if (scanIndex == 0) { @@ -344,7 +344,7 @@ internal static class Av1SymbolContextHelper /// The coefficient position in raster order. /// The transform size selecting the positional context offset. /// The lower-level context. - internal static int GetLowerLevelsContext2d(Av1LevelBuffer levelBuffer, Point position, Av1TransformSize transformSize) + public static int GetLowerLevelsContext2d(Av1LevelBuffer levelBuffer, Point position, Av1TransformSize transformSize) { DebugGuard.MustBeGreaterThan(position.X + position.Y, 0, nameof(position)); int mag; @@ -369,7 +369,7 @@ internal static class Av1SymbolContextHelper /// The final nonzero coefficient position. /// The transform direction class. /// The base-range context. - internal static int GetBaseRangeContextEndOfBlock(Point pos, Av1TransformClass transformClass) + public static int GetBaseRangeContextEndOfBlock(Point pos, Av1TransformClass transformClass) { if (pos.X == 0 && pos.Y == 0) { @@ -394,7 +394,7 @@ internal static class Av1SymbolContextHelper /// The coefficient position in raster order. /// The transform direction class. /// The base-range context. - internal static int GetBaseRangeContext(Av1LevelBuffer levels, Point position, Av1TransformClass transformClass) + public static int GetBaseRangeContext(Av1LevelBuffer levels, Point position, Av1TransformClass transformClass) { Span row0 = levels.GetRow(position.Y); Span row1 = levels.GetRow(position.Y + 1); @@ -457,7 +457,7 @@ internal static class Av1SymbolContextHelper /// The padded coefficient-level buffer. /// The coefficient position in raster order. /// The two-dimensional base-range context. - internal static int GetBaseRangeContext2d(Av1LevelBuffer levels, Point position) + public static int GetBaseRangeContext2d(Av1LevelBuffer levels, Point position) { DebugGuard.MustBeGreaterThan(position.X + position.Y, 0, nameof(position)); Span row0 = levels.GetRow(position.Y); @@ -486,7 +486,7 @@ internal static class Av1SymbolContextHelper /// The coded transform size. /// The transform direction class. /// The lower-level coefficient context. - internal static int GetLowerLevelsContext(Av1LevelBuffer levels, Point position, Av1TransformSize transformSize, Av1TransformClass transformClass) + public static int GetLowerLevelsContext(Av1LevelBuffer levels, Point position, Av1TransformSize transformSize, Av1TransformClass transformClass) { int stats = Av1NzMap.GetNzMagnitude(levels, position, transformClass); return Av1NzMap.GetNzMapContextFromStats(stats, position, transformSize, transformClass); @@ -498,7 +498,7 @@ internal static class Av1SymbolContextHelper /// The coded transform size. /// Indicates whether the frame restricts transform choices. /// The permitted transform set. - internal static Av1TransformSetType GetExtendedTransformSetType(Av1TransformSize transformSize, bool useReducedSet) + public static Av1TransformSetType GetExtendedTransformSetType(Av1TransformSize transformSize, bool useReducedSet) => GetExtendedTransformSetType(transformSize, false, useReducedSet); /// @@ -508,7 +508,7 @@ internal static class Av1SymbolContextHelper /// Indicates whether the block uses inter prediction. /// Indicates whether the frame restricts transform choices. /// The permitted transform set. - internal static Av1TransformSetType GetExtendedTransformSetType(Av1TransformSize transformSize, bool isInter, bool useReducedSet) + public static Av1TransformSetType GetExtendedTransformSetType(Av1TransformSize transformSize, bool isInter, bool useReducedSet) { Av1TransformSize squareUpSize = transformSize.GetSquareUpSize(); @@ -544,7 +544,7 @@ internal static class Av1SymbolContextHelper /// The block prediction modes. /// The luma or chroma plane category. /// The transform type associated with the selected prediction mode. - internal static Av1TransformType ConvertIntraModeToTransformType(Av1BlockModeInfo modeInfo, Av1PlaneType planeType) + public static Av1TransformType ConvertIntraModeToTransformType(Av1BlockModeInfo modeInfo, Av1PlaneType planeType) { // libaom's get_uv_mode() is the explicit boundary between the distinct UV and luma prediction domains. CfL maps // to DC because the chroma AC contribution is applied to a DC predictor before coefficient reconstruction. @@ -561,7 +561,7 @@ internal static class Av1SymbolContextHelper /// The coded transform size. /// The transform direction class. /// The nonzero-map context. - internal static sbyte GetNzMapContext( + public static sbyte GetNzMapContext( Av1LevelBuffer levels, Point position, Av1TransformSize transformSize, @@ -580,7 +580,7 @@ internal static class Av1SymbolContextHelper /// The coded transform size. /// The transform direction class. /// The raster-indexed destination contexts. - internal static void GetNzMapContexts( + public static void GetNzMapContexts( Av1LevelBuffer levels, ReadOnlySpan scan, ushort eob, @@ -624,14 +624,14 @@ internal static class Av1SymbolContextHelper /// /// The transform set. /// The number of permitted transform types. - internal static int GetExtendedTransformTypeCount(Av1TransformSetType setType) => ExtendedTransformTypeCounts[(int)setType]; + public static int GetExtendedTransformTypeCount(Av1TransformSetType setType) => ExtendedTransformTypeCounts[(int)setType]; /// /// Gets the entropy-distribution index for an intra transform set. /// /// The transform set. /// The distribution index, or -1 for an inter-only set. - internal static int GetExtendedTransformSet(Av1TransformSetType setType) + public static int GetExtendedTransformSet(Av1TransformSetType setType) => GetExtendedTransformSet(setType, false); /// @@ -640,7 +640,7 @@ internal static class Av1SymbolContextHelper /// The transform set. /// Indicates whether the block uses inter prediction. /// The distribution index, or -1 when the set is unavailable for the prediction class. - internal static int GetExtendedTransformSet(Av1TransformSetType setType, bool isInter) + public static int GetExtendedTransformSet(Av1TransformSetType setType, bool isInter) => ExtendedTransformSetToIndex[((isInter ? 1 : 0) * TransformSetCount) + (int)setType]; /// @@ -648,7 +648,7 @@ internal static class Av1SymbolContextHelper /// /// The cumulative-level context to update. /// The signed DC coefficient. - internal static void SetDcSign(ref int culLevel, int dcValue) + public static void SetDcSign(ref int culLevel, int dcValue) { if (dcValue < 0) { @@ -666,7 +666,7 @@ internal static class Av1SymbolContextHelper /// The one-based end-of-block position. /// Receives the offset within the selected token group. /// The end-of-block token. - internal static short GetEndOfBlockPosition(ushort endOfBlock, out int extra) + public static short GetEndOfBlockPosition(ushort endOfBlock, out int extra) { short t; if (endOfBlock < 33) diff --git a/src/ImageSharp/Formats/Heif/Av1/ModeDecision/Av1BlockGeometry.cs b/src/ImageSharp/Formats/Heif/Av1/ModeDecision/Av1BlockGeometry.cs index d0e8ca69f..89ffd922b 100644 --- a/src/ImageSharp/Formats/Heif/Av1/ModeDecision/Av1BlockGeometry.cs +++ b/src/ImageSharp/Formats/Heif/Av1/ModeDecision/Av1BlockGeometry.cs @@ -39,7 +39,7 @@ internal class Av1BlockGeometry public Av1BlockSize BlockSize { get => this.blockSize; - internal set + set { this.blockSize = value; this.BlockWidth = value.GetWidth(); @@ -53,7 +53,7 @@ internal class Av1BlockGeometry public Av1BlockSize BlockSizeUv { get => this.blockSizeUv; - internal set + set { this.blockSizeUv = value; this.BlockWidthUv = value.GetWidth(); @@ -64,12 +64,12 @@ internal class Av1BlockGeometry /// /// Gets or sets the block origin in pixels relative to the top-left corner of its superblock. /// - public Point Origin { get; internal set; } + public Point Origin { get; set; } /// /// Gets or sets a value indicating whether this luma block owns chroma samples in the mode-decision layout. /// - public bool HasUv { get; internal set; } + public bool HasUv { get; set; } /// /// Gets the luma block width in pixels. @@ -124,17 +124,17 @@ internal class Av1BlockGeometry /// /// Gets or sets the mode-decision indices of blocks with the same size and origin as this block. /// - public List RedunancyList { get; internal set; } + public List RedunancyList { get; set; } /// /// Gets or sets the zero-based component index of this block within a non-square partition. /// - public int NonSquareIndex { get; internal set; } + public int NonSquareIndex { get; set; } /// /// Gets or sets the number of component blocks produced by this partition shape. /// - public int TotalNonSuareCount { get; internal set; } + public int TotalNonSuareCount { get; set; } /// /// Gets the chroma block width in pixels. @@ -149,15 +149,15 @@ internal class Av1BlockGeometry /// /// Gets or sets the quadtree depth of this block within its superblock. /// - public int Depth { get; internal set; } + public int Depth { get; set; } /// /// Gets or sets the width and height, in pixels, of the square sequence region that produced this block. /// - public int SequenceSize { get; internal set; } + public int SequenceSize { get; set; } /// /// Gets or sets a value indicating whether this block belongs to the last quadrant of its parent. /// - public bool IsLastQuadrant { get; internal set; } + public bool IsLastQuadrant { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuConstraintDirectionalEnhancementFilterParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuConstraintDirectionalEnhancementFilterParameters.cs index 4440307c9..e4d6502d9 100644 --- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuConstraintDirectionalEnhancementFilterParameters.cs +++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuConstraintDirectionalEnhancementFilterParameters.cs @@ -11,12 +11,12 @@ internal class ObuConstraintDirectionalEnhancementFilterParameters /// /// Gets or sets the number of bits used to select a filter-strength entry. /// - public int BitCount { get; internal set; } + public int BitCount { get; set; } /// /// Gets or sets the filter damping value. /// - public int Damping { get; internal set; } = 3; + public int Damping { get; set; } = 3; /// /// Gets or sets the primary and secondary luma strengths for each filter entry. diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDecoderModelInfo.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDecoderModelInfo.cs index d0dee6282..15c2b48c1 100644 --- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDecoderModelInfo.cs +++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDecoderModelInfo.cs @@ -12,21 +12,21 @@ internal class ObuDecoderModelInfo /// Gets or sets BufferDelayLength. Specifies the length of the decoder_buffer_delay and the encoder_buffer_delay /// syntax elements, in bits. /// - internal uint BufferDelayLength { get; set; } + public uint BufferDelayLength { get; set; } /// /// Gets or sets NumUnitsInDecodingTick. This is the number of time units of a decoding clock operating at the frequency time_scale Hz /// that corresponds to one increment of a clock tick counter. /// - internal uint NumUnitsInDecodingTick { get; set; } + public uint NumUnitsInDecodingTick { get; set; } /// /// Gets or sets BufferRemovalTimeLength. Specifies the length of the buffer_removal_time syntax element, in bits. /// - internal uint BufferRemovalTimeLength { get; set; } + public uint BufferRemovalTimeLength { get; set; } /// /// Gets or sets the FramePresentationTimeLength. Specifies the length of the frame_presentation_time syntax element, in bits. /// - internal uint FramePresentationTimeLength { get; set; } + public uint FramePresentationTimeLength { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDeltaParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDeltaParameters.cs index fe781baa1..a3e709c69 100644 --- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDeltaParameters.cs +++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDeltaParameters.cs @@ -11,15 +11,15 @@ internal class ObuDeltaParameters /// /// Gets or sets a value indicating whether per-block delta values are present. /// - public bool IsPresent { get; internal set; } + public bool IsPresent { get; set; } /// /// Gets or sets the delta-value multiplier, which is one, two, four, or eight. /// - public int Resolution { get; internal set; } + public int Resolution { get; set; } /// /// Gets or sets a value indicating whether separate loop-filter deltas are signaled for multiple filter targets. /// - public bool IsMulti { get; internal set; } + public bool IsMulti { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopFilterParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopFilterParameters.cs index e50527d89..f03d2cf4e 100644 --- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopFilterParameters.cs +++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopFilterParameters.cs @@ -21,32 +21,32 @@ internal class ObuLoopFilterParameters /// /// Gets or sets the horizontal and vertical luma filter levels. /// - public int[] FilterLevel { get; internal set; } = new int[2]; + public int[] FilterLevel { get; set; } = new int[2]; /// /// Gets or sets the U-plane filter level. /// - public int FilterLevelU { get; internal set; } + public int FilterLevelU { get; set; } /// /// Gets or sets the V-plane filter level. /// - public int FilterLevelV { get; internal set; } + public int FilterLevelV { get; set; } /// /// Gets or sets the filter sharpness level. /// - public int SharpnessLevel { get; internal set; } + public int SharpnessLevel { get; set; } /// /// Gets or sets a value indicating whether reference-frame and mode deltas are enabled. /// - public bool ReferenceDeltaModeEnabled { get; internal set; } + public bool ReferenceDeltaModeEnabled { get; set; } /// /// Gets or sets a value indicating whether reference-frame and mode deltas are updated by this frame. /// - public bool ReferenceDeltaModeUpdate { get; internal set; } + public bool ReferenceDeltaModeUpdate { get; set; } /// /// Gets the filter-level deltas for the AV1 reference-frame categories. diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationItem.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationItem.cs index 02ea3734a..b8d9a8f05 100644 --- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationItem.cs +++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationItem.cs @@ -11,10 +11,10 @@ internal class ObuLoopRestorationItem /// /// Gets or sets the restoration-unit size, in samples. /// - internal int Size { get; set; } + public int Size { get; set; } /// /// Gets or sets the restoration filter type. /// - internal ObuRestorationType Type { get; set; } = ObuRestorationType.None; + public ObuRestorationType Type { get; set; } = ObuRestorationType.None; } diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationParameters.cs index e28537a05..ad0cade7f 100644 --- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationParameters.cs +++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationParameters.cs @@ -11,7 +11,7 @@ internal class ObuLoopRestorationParameters /// /// Initializes a new instance of the class. /// - internal ObuLoopRestorationParameters() + public ObuLoopRestorationParameters() { // AV1 addresses restoration state by plane, so all three plane entries must exist even // when the active color configuration uses fewer planes. @@ -24,25 +24,25 @@ internal class ObuLoopRestorationParameters /// /// Gets or sets a value indicating whether any plane uses loop restoration. /// - internal bool UsesLoopRestoration { get; set; } + public bool UsesLoopRestoration { get; set; } /// /// Gets or sets a value indicating whether either chroma plane uses loop restoration. /// - internal bool UsesChromaLoopRestoration { get; set; } + public bool UsesChromaLoopRestoration { get; set; } /// /// Gets the loop-restoration configuration for each plane. /// - internal ObuLoopRestorationItem[] Items { get; } + public ObuLoopRestorationItem[] Items { get; } /// /// Gets or sets the luma restoration-unit size shift. /// - internal int UnitShift { get; set; } + public int UnitShift { get; set; } /// /// Gets or sets the chroma restoration-unit size shift relative to luma. /// - internal int UVShift { get; set; } + public int UVShift { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuOperatingPoint.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuOperatingPoint.cs index eb6091731..a6b63f96a 100644 --- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuOperatingPoint.cs +++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuOperatingPoint.cs @@ -11,36 +11,36 @@ internal class ObuOperatingPoint /// /// Gets or sets the operating-point index. /// - internal int OperatorIndex { get; set; } + public int OperatorIndex { get; set; } /// /// Gets or sets the AV1 sequence-level index. /// - internal int SequenceLevelIndex { get; set; } + public int SequenceLevelIndex { get; set; } /// /// Gets or sets the sequence tier. /// - internal int SequenceTier { get; set; } + public int SequenceTier { get; set; } /// /// Gets or sets a value indicating whether decoder-model timing is present for this operating point. /// - internal bool IsDecoderModelInfoPresent { get; set; } + public bool IsDecoderModelInfoPresent { get; set; } /// /// Gets or sets a value indicating whether an initial display delay is present for this operating point. /// - internal bool IsInitialDisplayDelayPresent { get; set; } + public bool IsInitialDisplayDelayPresent { get; set; } /// /// Gets or sets the initial display delay minus one, in decoded frames. /// - internal uint InitialDisplayDelay { get; set; } + public uint InitialDisplayDelay { get; set; } /// /// Gets or sets the bitmask selecting temporal and spatial layers for the operating point. /// A value of zero selects the complete coded sequence. /// - internal uint Idc { get; set; } + public uint Idc { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuQuantizationParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuQuantizationParameters.cs index 0ef92bee8..412ea7ca1 100644 --- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuQuantizationParameters.cs +++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuQuantizationParameters.cs @@ -21,25 +21,25 @@ internal class ObuQuantizationParameters /// /// Gets or sets a value indicating whether quantization matrices are enabled. /// - public bool IsUsingQMatrix { get; internal set; } + public bool IsUsingQMatrix { get; set; } /// /// Gets or sets the DC quantizer-index deltas for the Y, U, and V planes. /// - public int[] DeltaQDc { get; internal set; } = new int[3]; + public int[] DeltaQDc { get; set; } = new int[3]; /// /// Gets or sets the AC quantizer-index deltas for the Y, U, and V planes. /// - public int[] DeltaQAc { get; internal set; } = new int[3]; + public int[] DeltaQAc { get; set; } = new int[3]; /// /// Gets or sets the quantization-matrix level for the Y, U, and V planes. /// - public int[] QMatrix { get; internal set; } = new int[3]; + public int[] QMatrix { get; set; } = new int[3]; /// /// Gets or sets a value indicating whether the U and V planes use separate quantizer deltas. /// - public bool HasSeparateUvDelta { get; internal set; } + public bool HasSeparateUvDelta { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuReader.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuReader.cs index a7c21e052..d5d7412b6 100644 --- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuReader.cs +++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuReader.cs @@ -589,7 +589,7 @@ internal class ObuReader /// /// The reader positioned at the sequence-header payload. /// The sequence header to populate. - internal static void ReadSequenceHeader(ref Av1BitStreamReader reader, ObuSequenceHeader sequenceHeader) + public static void ReadSequenceHeader(ref Av1BitStreamReader reader, ObuSequenceHeader sequenceHeader) { sequenceHeader.SequenceProfile = (ObuSequenceProfile)reader.ReadLiteral(3); if (sequenceHeader.SequenceProfile > Av1Constants.MaxSequenceProfile) @@ -1808,7 +1808,7 @@ internal class ObuReader /// The reader positioned at the frame-header payload. /// The OBU header whose remaining payload size is updated. /// A value indicating whether trailing-bit syntax follows the frame header. - internal void ReadFrameHeader(ref Av1BitStreamReader reader, ObuHeader header, bool trailingBit) + public void ReadFrameHeader(ref Av1BitStreamReader reader, ObuHeader header, bool trailingBit) { int startBitPosition = reader.BitPosition; this.ReadUncompressedFrameHeader(ref reader, header); diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuSegmentationParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuSegmentationParameters.cs index 6e74a6185..55fbf43fa 100644 --- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuSegmentationParameters.cs +++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuSegmentationParameters.cs @@ -11,47 +11,47 @@ internal class ObuSegmentationParameters /// /// Gets or sets the effective quantization-matrix level for each plane and segment. /// - public int[][] QMLevel { get; internal set; } = new int[3][]; + public int[][] QMLevel { get; set; } = new int[3][]; /// /// Gets or sets the enabled state of every feature for every segment. /// - public bool[,] FeatureEnabled { get; internal set; } = new bool[Av1Constants.MaxSegmentCount, Av1Constants.SegmentationLevelMax]; + public bool[,] FeatureEnabled { get; set; } = new bool[Av1Constants.MaxSegmentCount, Av1Constants.SegmentationLevelMax]; /// /// Gets or sets a value indicating whether segmentation is enabled for the frame. /// - public bool Enabled { get; internal set; } + public bool Enabled { get; set; } /// /// Gets or sets the value of every feature for every segment. /// - public int[,] FeatureData { get; internal set; } = new int[Av1Constants.MaxSegmentCount, Av1Constants.SegmentationLevelMax]; + public int[,] FeatureData { get; set; } = new int[Av1Constants.MaxSegmentCount, Av1Constants.SegmentationLevelMax]; /// /// Gets or sets a value indicating whether segment identifiers are decoded before skip-mode decisions. /// - public bool SegmentIdPrecedesSkip { get; internal set; } + public bool SegmentIdPrecedesSkip { get; set; } /// /// Gets or sets the greatest segment identifier that has at least one active feature. /// - public int LastActiveSegmentId { get; internal set; } + public int LastActiveSegmentId { get; set; } /// /// Gets or sets a value indicating whether the segmentation map is updated while decoding the frame. /// - public int SegmentationUpdateMap { get; internal set; } + public int SegmentationUpdateMap { get; set; } /// /// Gets or sets a value indicating whether segmentation-map updates are coded relative to the existing map. /// - public int SegmentationTemporalUpdate { get; internal set; } + public int SegmentationTemporalUpdate { get; set; } /// /// Gets or sets a value indicating whether the frame supplies new per-segment feature data. /// - public int SegmentationUpdateData { get; internal set; } + public int SegmentationUpdateData { get; set; } /// /// Determines whether a feature is active for a segment. diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuTileGroupHeader.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuTileGroupHeader.cs index 69c155429..5f04768e0 100644 --- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuTileGroupHeader.cs +++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuTileGroupHeader.cs @@ -11,32 +11,32 @@ internal class ObuTileGroupHeader /// /// Gets or sets the maximum tile width, in superblocks. /// - internal int MaxTileWidthSuperblock { get; set; } + public int MaxTileWidthSuperblock { get; set; } /// /// Gets or sets the maximum tile height, in superblocks. /// - internal int MaxTileHeightSuperblock { get; set; } + public int MaxTileHeightSuperblock { get; set; } /// /// Gets or sets the minimum base-2 logarithm of the tile-column count. /// - internal int MinLog2TileColumnCount { get; set; } + public int MinLog2TileColumnCount { get; set; } /// /// Gets or sets the maximum base-2 logarithm of the tile-column count. /// - internal int MaxLog2TileColumnCount { get; set; } + public int MaxLog2TileColumnCount { get; set; } /// /// Gets or sets the maximum base-2 logarithm of the tile-row count. /// - internal int MaxLog2TileRowCount { get; set; } + public int MaxLog2TileRowCount { get; set; } /// /// Gets or sets the minimum base-2 logarithm of the total tile count. /// - internal int MinLog2TileCount { get; set; } + public int MinLog2TileCount { get; set; } /// /// Gets or sets a value indicating whether tile columns and rows use uniform spacing. @@ -46,45 +46,45 @@ internal class ObuTileGroupHeader /// /// Gets or sets the base-2 logarithm of the tile-column count. /// - internal int TileColumnCountLog2 { get; set; } + public int TileColumnCountLog2 { get; set; } /// /// Gets or sets the number of tile columns. /// - internal int TileColumnCount { get; set; } + public int TileColumnCount { get; set; } /// /// Gets or sets the starting superblock column for each tile column. /// - internal int[] TileColumnStartModeInfo { get; set; } = new int[Av1Constants.MaxTileRowCount + 1]; + public int[] TileColumnStartModeInfo { get; set; } = new int[Av1Constants.MaxTileRowCount + 1]; /// /// Gets or sets the minimum base-2 logarithm of the tile-row count. /// - internal int MinLog2TileRowCount { get; set; } + public int MinLog2TileRowCount { get; set; } /// /// Gets or sets the base-2 logarithm of the tile-row count. /// - internal int TileRowCountLog2 { get; set; } + public int TileRowCountLog2 { get; set; } /// /// Gets or sets the starting superblock row for each tile row. /// - internal int[] TileRowStartModeInfo { get; set; } = new int[Av1Constants.MaxTileColumnCount + 1]; + public int[] TileRowStartModeInfo { get; set; } = new int[Av1Constants.MaxTileColumnCount + 1]; /// /// Gets or sets the number of tile rows. /// - internal int TileRowCount { get; set; } + public int TileRowCount { get; set; } /// /// Gets or sets the tile whose entropy context is retained after frame decoding. /// - internal uint ContextUpdateTileId { get; set; } + public uint ContextUpdateTileId { get; set; } /// /// Gets or sets the number of bytes used to signal each tile size. /// - internal int TileSizeBytes { get; set; } + public int TileSizeBytes { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Arithmetic.cs b/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Arithmetic.cs index 7f355d14a..212cd91ef 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Arithmetic.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Arithmetic.cs @@ -15,7 +15,7 @@ internal static partial class Av1InterPredictor /// Convolves sixteen adjacent 8-bit samples into four signed 32-bit accumulator vectors. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static void Convolve( + public static void Convolve( ref byte source, int tapStride, nuint column, @@ -51,7 +51,7 @@ internal static partial class Av1InterPredictor /// Convolves thirty-two adjacent 8-bit samples into four signed 32-bit accumulator vectors. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static void Convolve( + public static void Convolve( ref byte source, int tapStride, nuint column, @@ -85,7 +85,7 @@ internal static partial class Av1InterPredictor /// Convolves sixty-four adjacent 8-bit samples into four signed 32-bit accumulator vectors. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static void Convolve( + public static void Convolve( ref byte source, int tapStride, nuint column, @@ -119,7 +119,7 @@ internal static partial class Av1InterPredictor /// Convolves eight adjacent nonnegative 16-bit samples into two signed 32-bit accumulator vectors. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static void Convolve( + public static void Convolve( ref short source, int tapStride, nuint column, @@ -149,7 +149,7 @@ internal static partial class Av1InterPredictor /// Convolves sixteen adjacent nonnegative 16-bit samples into two signed 32-bit accumulator vectors. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static void Convolve( + public static void Convolve( ref short source, int tapStride, nuint column, @@ -176,7 +176,7 @@ internal static partial class Av1InterPredictor /// Convolves thirty-two adjacent nonnegative 16-bit samples into two signed 32-bit accumulator vectors. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static void Convolve( + public static void Convolve( ref short source, int tapStride, nuint column, @@ -203,28 +203,28 @@ internal static partial class Av1InterPredictor /// Applies AV1 power-of-two rounding to four-lane signed accumulators. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static Vector128 RoundPowerOfTwo(Vector128 value, int bits) + public static Vector128 RoundPowerOfTwo(Vector128 value, int bits) => bits == 0 ? value : (value + Vector128.Create(1 << (bits - 1))) >> bits; /// /// Applies AV1 power-of-two rounding to eight-lane signed accumulators. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static Vector256 RoundPowerOfTwo(Vector256 value, int bits) + public static Vector256 RoundPowerOfTwo(Vector256 value, int bits) => bits == 0 ? value : (value + Vector256.Create(1 << (bits - 1))) >> bits; /// /// Applies AV1 power-of-two rounding to sixteen-lane signed accumulators. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static Vector512 RoundPowerOfTwo(Vector512 value, int bits) + public static Vector512 RoundPowerOfTwo(Vector512 value, int bits) => bits == 0 ? value : (value + Vector512.Create(1 << (bits - 1))) >> bits; /// /// Clips and packs sixteen signed accumulators into 8-bit samples. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static Vector128 PackBytes(Vector128 result0, Vector128 result1, Vector128 result2, Vector128 result3) + public static Vector128 PackBytes(Vector128 result0, Vector128 result1, Vector128 result2, Vector128 result3) { Vector128 maximum = Vector128.Create((int)byte.MaxValue); result0 = Vector128.Clamp(result0, Vector128.Zero, maximum); @@ -238,7 +238,7 @@ internal static partial class Av1InterPredictor /// Clips and packs thirty-two signed accumulators into 8-bit samples. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static Vector256 PackBytes(Vector256 result0, Vector256 result1, Vector256 result2, Vector256 result3) + public static Vector256 PackBytes(Vector256 result0, Vector256 result1, Vector256 result2, Vector256 result3) { Vector256 maximum = Vector256.Create((int)byte.MaxValue); result0 = Vector256.Clamp(result0, Vector256.Zero, maximum); @@ -252,7 +252,7 @@ internal static partial class Av1InterPredictor /// Clips and packs sixty-four signed accumulators into 8-bit samples. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static Vector512 PackBytes(Vector512 result0, Vector512 result1, Vector512 result2, Vector512 result3) + public static Vector512 PackBytes(Vector512 result0, Vector512 result1, Vector512 result2, Vector512 result3) { Vector512 maximum = Vector512.Create((int)byte.MaxValue); result0 = Vector512.Clamp(result0, Vector512.Zero, maximum); @@ -266,7 +266,7 @@ internal static partial class Av1InterPredictor /// Clips and packs eight signed accumulators into high-bit-depth samples. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static Vector128 PackHighBitDepth(Vector128 result0, Vector128 result1, int maximumValue) + public static Vector128 PackHighBitDepth(Vector128 result0, Vector128 result1, int maximumValue) { Vector128 maximum = Vector128.Create(maximumValue); result0 = Vector128.Clamp(result0, Vector128.Zero, maximum); @@ -278,7 +278,7 @@ internal static partial class Av1InterPredictor /// Clips and packs sixteen signed accumulators into high-bit-depth samples. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static Vector256 PackHighBitDepth(Vector256 result0, Vector256 result1, int maximumValue) + public static Vector256 PackHighBitDepth(Vector256 result0, Vector256 result1, int maximumValue) { Vector256 maximum = Vector256.Create(maximumValue); result0 = Vector256.Clamp(result0, Vector256.Zero, maximum); @@ -290,7 +290,7 @@ internal static partial class Av1InterPredictor /// Clips and packs thirty-two signed accumulators into high-bit-depth samples. /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static Vector512 PackHighBitDepth(Vector512 result0, Vector512 result1, int maximumValue) + public static Vector512 PackHighBitDepth(Vector512 result0, Vector512 result1, int maximumValue) { Vector512 maximum = Vector512.Create(maximumValue); result0 = Vector512.Clamp(result0, Vector512.Zero, maximum); @@ -301,7 +301,7 @@ internal static partial class Av1InterPredictor /// /// Computes one signed Q7 convolution sum from 8-bit samples. /// - internal static int ConvolveScalar(ref byte source, int sourceStride, ref short coefficients, int tapCount) + public static int ConvolveScalar(ref byte source, int sourceStride, ref short coefficients, int tapCount) { int sum = 0; for (int tap = 0; tap < tapCount; tap++) @@ -315,7 +315,7 @@ internal static partial class Av1InterPredictor /// /// Computes one signed Q7 convolution sum from high-bit-depth samples. /// - internal static int ConvolveScalar(ref ushort source, int sourceStride, ref short coefficients, int tapCount) + public static int ConvolveScalar(ref ushort source, int sourceStride, ref short coefficients, int tapCount) { int sum = 0; for (int tap = 0; tap < tapCount; tap++) @@ -329,7 +329,7 @@ internal static partial class Av1InterPredictor /// /// Computes one signed Q7 convolution sum from biased intermediate samples. /// - internal static int ConvolveScalar(ref short source, int sourceStride, ref short coefficients, int tapCount) + public static int ConvolveScalar(ref short source, int sourceStride, ref short coefficients, int tapCount) { int sum = 0; for (int tap = 0; tap < tapCount; tap++) @@ -343,5 +343,5 @@ internal static partial class Av1InterPredictor /// /// Rounds an integer after division by a power of two using AV1's unsigned-bias rule. /// - internal static int RoundPowerOfTwo(int value, int bits) => bits == 0 ? value : (value + (1 << (bits - 1))) >> bits; + public static int RoundPowerOfTwo(int value, int bits) => bits == 0 ? value : (value + (1 << (bits - 1))) >> bits; } diff --git a/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Operator.cs b/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Operator.cs index c298b3b5e..3f947a2f9 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Operator.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Operator.cs @@ -755,7 +755,7 @@ internal static partial class Av1InterPredictor /// The selected Q7 phase kernel. /// Receives the first coefficient used by the effective kernel. /// Receives the effective two-, four-, six-, or eight-tap length. - internal static void GetEffectiveKernel(ReadOnlySpan coefficients, out int firstCoefficient, out int tapCount) + public static void GetEffectiveKernel(ReadOnlySpan coefficients, out int firstCoefficient, out int tapCount) { // This matches libaom's get_filter_tap decision. Reducing symmetric zero endpoints avoids source loads and // multiply-adds while retaining the original tap-to-source alignment through firstCoefficient. diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockModeInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockModeInfo.cs index c97e4a582..5c9702f01 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockModeInfo.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockModeInfo.cs @@ -53,15 +53,15 @@ internal class Av1EncoderBlockModeInfo /// /// Gets or sets the transform-tree depth selected for the block. /// - public int TransformDepth { get; internal set; } + public int TransformDepth { get; set; } /// /// Gets or sets the luma prediction mode written for the block. /// - public Av1PredictionMode Mode { get; internal set; } + public Av1PredictionMode Mode { get; set; } /// /// Gets or sets the chroma prediction mode written for the block. /// - public Av1ChromaPredictionMode UvMode { get; internal set; } + public Av1ChromaPredictionMode UvMode { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockStruct.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockStruct.cs index a0e730c75..21da0fca6 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockStruct.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockStruct.cs @@ -41,10 +41,10 @@ internal class Av1EncoderBlockStruct /// /// Gets or sets the palette size for luma and for the shared chroma mode. /// - public required int[] PaletteSize { get; internal set; } + public required int[] PaletteSize { get; set; } /// /// Gets or sets the encoder prediction-unit state for the block. /// - public required Av1EncoderPredictionUnit[] PredictionUnits { get; internal set; } + public required Av1EncoderPredictionUnit[] PredictionUnits { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderCommon.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderCommon.cs index 90eb8b152..d548ce822 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderCommon.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderCommon.cs @@ -13,25 +13,25 @@ internal class Av1EncoderCommon /// /// Gets or sets the frame height in 4x4 mode-information units. /// - public int ModeInfoRowCount { get; internal set; } + public int ModeInfoRowCount { get; set; } /// /// Gets or sets the frame width in 4x4 mode-information units. /// - public int ModeInfoColumnCount { get; internal set; } + public int ModeInfoColumnCount { get; set; } /// /// Gets or sets the row stride of frame mode information in 4x4 units. /// - public int ModeInfoStride { get; internal set; } + public int ModeInfoStride { get; set; } /// /// Gets or sets the coded frame dimensions. /// - public required ObuFrameSize FrameSize { get; internal set; } + public required ObuFrameSize FrameSize { get; set; } /// /// Gets or sets the tile layout for the current frame. /// - public required ObuTileGroupHeader TilesInfo { get; internal set; } + public required ObuTileGroupHeader TilesInfo { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderPredictionUnit.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderPredictionUnit.cs index a57247f2c..aa8f078e2 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderPredictionUnit.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderPredictionUnit.cs @@ -16,10 +16,10 @@ internal class Av1EncoderPredictionUnit /// /// Gets or sets the chroma-from-luma alpha magnitude index. /// - public int ChromaFromLumaIndex { get; internal set; } + public int ChromaFromLumaIndex { get; set; } /// /// Gets or sets the packed chroma-from-luma alpha signs for the U and V planes. /// - public int ChromaFromLumaSigns { get; internal set; } + public int ChromaFromLumaSigns { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EntropyCodingContext.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EntropyCodingContext.cs index a0873b1db..ae5dd0a74 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EntropyCodingContext.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EntropyCodingContext.cs @@ -16,21 +16,21 @@ internal partial class Av1TileWriter /// /// Gets or sets the macroblock mode information currently being encoded. /// - public required Av1MacroBlockModeInfo MacroBlockModeInfo { get; internal set; } + public required Av1MacroBlockModeInfo MacroBlockModeInfo { get; set; } /// /// Gets or sets the pixel origin of the current superblock. /// - public Point SuperblockOrigin { get; internal set; } + public Point SuperblockOrigin { get; set; } /// /// Gets or sets the number of luma coefficient positions consumed in the current superblock. /// - public int CodedAreaSuperblock { get; internal set; } + public int CodedAreaSuperblock { get; set; } /// /// Gets or sets the number of chroma coefficient positions consumed in the current superblock. /// - public int CodedAreaSuperblockUv { get; internal set; } + public int CodedAreaSuperblockUv { get; set; } } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1FrameInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1FrameInfo.cs index 6f944cf56..2484d1b15 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1FrameInfo.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1FrameInfo.cs @@ -503,7 +503,7 @@ internal partial class Av1FrameInfo : IDisposable /// Resets every constrained directional enhancement filter strength for a superblock to its unassigned value. /// /// The position in the frame superblock grid. - internal void ClearCdef(Point index) + public void ClearCdef(Point index) { Span cdefs = this.GetCdefStrength(index); for (int i = 0; i < cdefs.Length; i++) diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1LevelBuffer.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1LevelBuffer.cs index 84bbe9cfb..66e891e6c 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1LevelBuffer.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1LevelBuffer.cs @@ -124,7 +124,7 @@ internal sealed class Av1LevelBuffer : IDisposable /// /// Clears all coefficient levels and context padding. /// - internal void Clear() + public void Clear() { ObjectDisposedException.ThrowIf(this.memory == null, this); this.memory.Memory.Span.Clear(); diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockD.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockD.cs index 8d6b8c5f0..861857a2f 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockD.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockD.cs @@ -19,7 +19,7 @@ internal class Av1MacroBlockD public required ReadOnlySpan ModeInfo { get => this.modeInfo; - internal set + set { // A span cannot be retained by the class, so preserve the selected map entries in owned storage. this.modeInfo = new Av1ModeInfo[value.Length]; @@ -30,60 +30,60 @@ internal class Av1MacroBlockD /// /// Gets or sets the tile containing the current block. /// - public required Av1TileInfo Tile { get; internal set; } + public required Av1TileInfo Tile { get; set; } /// /// Gets or sets a value indicating whether an above block is available within the tile. /// - public bool IsUpAvailable { get; internal set; } + public bool IsUpAvailable { get; set; } /// /// Gets or sets a value indicating whether a left block is available within the tile. /// - public bool IsLeftAvailable { get; internal set; } + public bool IsLeftAvailable { get; set; } /// /// Gets or sets the above macroblock mode information, when available. /// - public Av1MacroBlockModeInfo? AboveMacroBlock { get; internal set; } + public Av1MacroBlockModeInfo? AboveMacroBlock { get; set; } /// /// Gets or sets the left macroblock mode information, when available. /// - public Av1MacroBlockModeInfo? LeftMacroBlock { get; internal set; } + public Av1MacroBlockModeInfo? LeftMacroBlock { get; set; } /// /// Gets or sets the row stride of the frame mode-information map. /// - public int ModeInfoStride { get; internal set; } + public int ModeInfoStride { get; set; } /// /// Gets or sets the signed distance from the block to the top frame edge in one-eighth-sample units. /// - public int ToTopEdge { get; internal set; } + public int ToTopEdge { get; set; } /// /// Gets or sets the signed distance from the block to the bottom frame edge in one-eighth-sample units. /// - public int ToBottomEdge { get; internal set; } + public int ToBottomEdge { get; set; } /// /// Gets or sets the signed distance from the block to the left frame edge in one-eighth-sample units. /// - public int ToLeftEdge { get; internal set; } + public int ToLeftEdge { get; set; } /// /// Gets or sets the signed distance from the block to the right frame edge in one-eighth-sample units. /// - public int ToRightEdge { get; internal set; } + public int ToRightEdge { get; set; } /// /// Gets or sets the block dimensions in samples for rectangular-partition context selection. /// - public Size N8Size { get; internal set; } + public Size N8Size { get; set; } /// /// Gets or sets a value indicating whether this block is the second half of a rectangular partition. /// - public bool IsSecondRectangle { get; internal set; } + public bool IsSecondRectangle { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockModeInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockModeInfo.cs index ba1f72fbe..99a566b2c 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockModeInfo.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockModeInfo.cs @@ -11,15 +11,15 @@ internal class Av1MacroBlockModeInfo /// /// Gets or sets the prediction, transform, and segmentation decisions for the block. /// - public required Av1EncoderBlockModeInfo Block { get; internal set; } + public required Av1EncoderBlockModeInfo Block { get; set; } /// /// Gets or sets the luma palette decisions for the block. /// - public required Av1PaletteLumaModeInfo Palette { get; internal set; } + public required Av1PaletteLumaModeInfo Palette { get; set; } /// /// Gets or sets the constrained directional enhancement filter strength for the block. /// - public int CdefStrength { get; internal set; } + public int CdefStrength { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1ModeInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1ModeInfo.cs index cdd6732c4..3e6c325c0 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1ModeInfo.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1ModeInfo.cs @@ -11,5 +11,5 @@ internal class Av1ModeInfo /// /// Gets or sets the macroblock mode information associated with this map entry. /// - public required Av1MacroBlockModeInfo MacroBlockModeInfo { get; internal set; } + public required Av1MacroBlockModeInfo MacroBlockModeInfo { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1NeighborArrayUnit.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1NeighborArrayUnit.cs index e3a010134..70e6187fa 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1NeighborArrayUnit.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1NeighborArrayUnit.cs @@ -295,5 +295,5 @@ internal sealed class Av1NeighborArrayUnit : IDisposable /// The block dimensions in samples. /// The neighbor arrays to update. /// The byte-specific write path is not implemented. - internal void UnitModeWrite(Span dcSignSpan, Point blockOrigin, Size blockSize, Av1NeighborArrayUnit.UnitMask unitMask) => throw new NotImplementedException(); + public void UnitModeWrite(Span dcSignSpan, Point blockOrigin, Size blockSize, Av1NeighborArrayUnit.UnitMask unitMask) => throw new NotImplementedException(); } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionContext.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionContext.cs index e2fff6914..b00b6a563 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionContext.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionContext.cs @@ -55,12 +55,12 @@ internal struct Av1PartitionContext : IMinMaxValue /// /// Gets or sets the five-bit context derived from the left neighbor. /// - public byte Left { get; internal set; } + public byte Left { get; set; } /// /// Gets or sets the five-bit context derived from the above neighbor. /// - public byte Above { get; internal set; } + public byte Above { get; set; } /// /// Gets the above-neighbor partition context for the specified block size. diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionInfo.cs index 5d45cb100..b71d6aa2f 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionInfo.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionInfo.cs @@ -145,7 +145,7 @@ internal ref struct Av1PartitionInfo /// /// Gets or sets the neighboring luma samples used by chroma-from-luma prediction. /// - public Av1ChromaFromLumaContext? ChromaFromLumaContext { get; internal set; } + public Av1ChromaFromLumaContext? ChromaFromLumaContext { get; set; } /// /// Gets the block width in samples for a color plane. diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureControlSet.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureControlSet.cs index c0a158d78..f37cdbc75 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureControlSet.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureControlSet.cs @@ -13,42 +13,42 @@ internal class Av1PictureControlSet /// /// Gets or sets the partition neighbor contexts for each tile. /// - public required Av1NeighborArrayUnit[] PartitionContexts { get; internal set; } + public required Av1NeighborArrayUnit[] PartitionContexts { get; set; } /// /// Gets or sets the luma DC-sign and coefficient-level neighbor contexts for each tile. /// - public required Av1NeighborArrayUnit[] LuminanceDcSignLevelCoefficientNeighbors { get; internal set; } + public required Av1NeighborArrayUnit[] LuminanceDcSignLevelCoefficientNeighbors { get; set; } /// /// Gets or sets the red-difference chroma DC-sign and coefficient-level neighbor contexts for each tile. /// - public required Av1NeighborArrayUnit[] CrDcSignLevelCoefficientNeighbors { get; internal set; } + public required Av1NeighborArrayUnit[] CrDcSignLevelCoefficientNeighbors { get; set; } /// /// Gets or sets the blue-difference chroma DC-sign and coefficient-level neighbor contexts for each tile. /// - public required Av1NeighborArrayUnit[] CbDcSignLevelCoefficientNeighbors { get; internal set; } + public required Av1NeighborArrayUnit[] CbDcSignLevelCoefficientNeighbors { get; set; } /// /// Gets or sets the transform-function neighbor contexts for each tile. /// - public required Av1NeighborArrayUnit[] TransformFunctionContexts { get; internal set; } + public required Av1NeighborArrayUnit[] TransformFunctionContexts { get; set; } /// /// Gets or sets the sequence-wide encoder state. /// - public required Av1SequenceControlSet Sequence { get; internal set; } + public required Av1SequenceControlSet Sequence { get; set; } /// /// Gets or sets the parent picture state shared across coding passes. /// - public required Av1PictureParentControlSet Parent { get; internal set; } + public required Av1PictureParentControlSet Parent { get; set; } /// /// Gets or sets the frame segmentation identifiers used for spatial prediction. /// - public required byte[] SegmentationNeighborMap { get; internal set; } + public required byte[] SegmentationNeighborMap { get; set; } /// /// Gets the frame grid that maps each 4x4 position to its mode-information span. @@ -58,22 +58,22 @@ internal class Av1PictureControlSet /// /// Gets or sets the contiguous mode-information storage addressed by . /// - public required Av1ModeInfo[] Mip { get; internal set; } + public required Av1ModeInfo[] Mip { get; set; } /// /// Gets or sets the row stride of in 4x4 mode-information units. /// - public int ModeInfoStride { get; internal set; } + public int ModeInfoStride { get; set; } /// /// Gets or sets a value indicating whether the mode-information backing store uses 8x8 rather than 4x4 granularity. /// - public bool Disallow4x4AllFrames { get; internal set; } + public bool Disallow4x4AllFrames { get; set; } /// /// Gets or sets the constrained directional enhancement filter presets for each filter block. /// - public required int[][] CdefPreset { get; internal set; } + public required int[][] CdefPreset { get; set; } /// /// Gets the mode-information span mapped to a frame position. @@ -108,7 +108,7 @@ internal class Av1PictureControlSet /// /// The block origin in 4x4 mode-information units. /// The macroblock mode information at the origin. - internal Av1MacroBlockModeInfo GetMacroBlockModeInfo(Point blockOrigin) + public Av1MacroBlockModeInfo GetMacroBlockModeInfo(Point blockOrigin) { int modeInfoStride = this.ModeInfoStride; int offset = (blockOrigin.Y * modeInfoStride) + blockOrigin.X; @@ -130,7 +130,7 @@ internal class Av1PictureControlSet /// The block size. /// The block origin in samples. /// The segment identifier. - internal void UpdateSegmentation(Av1BlockSize blockSize, Point origin, int segmentId) + public void UpdateSegmentation(Av1BlockSize blockSize, Point origin, int segmentId) { Av1EncoderCommon cm = this.Parent.Common; Span segment_ids = this.SegmentationNeighborMap; diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureParentControlSet.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureParentControlSet.cs index d3922de77..a262e15e5 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureParentControlSet.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureParentControlSet.cs @@ -13,35 +13,35 @@ internal class Av1PictureParentControlSet /// /// Gets or sets frame dimensions and tile state shared by encoder stages. /// - public required Av1EncoderCommon Common { get; internal set; } + public required Av1EncoderCommon Common { get; set; } /// /// Gets or sets the frame header being encoded. /// - public required ObuFrameHeader FrameHeader { get; internal set; } + public required ObuFrameHeader FrameHeader { get; set; } /// /// Gets or sets the preceding quantizer index for each tile context. /// - public required int[] PreviousQIndex { get; internal set; } + public required int[] PreviousQIndex { get; set; } /// /// Gets or sets the encoder palette-search level. /// - public int PaletteLevel { get; internal set; } + public int PaletteLevel { get; set; } /// /// Gets or sets the frame width aligned for superblock traversal. /// - public int AlignedWidth { get; internal set; } + public int AlignedWidth { get; set; } /// /// Gets or sets the frame height aligned for superblock traversal. /// - public int AlignedHeight { get; internal set; } + public int AlignedHeight { get; set; } /// /// Gets or sets the geometry state for each superblock in the picture. /// - public required Av1SuperblockGeometry[] SuperblockGeometry { get; internal set; } + public required Av1SuperblockGeometry[] SuperblockGeometry { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SequenceControlSet.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SequenceControlSet.cs index 156badf07..907205ae7 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SequenceControlSet.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SequenceControlSet.cs @@ -13,10 +13,10 @@ internal class Av1SequenceControlSet /// /// Gets or sets the sequence header that governs encoded pictures. /// - public required ObuSequenceHeader SequenceHeader { get; internal set; } + public required ObuSequenceHeader SequenceHeader { get; set; } /// /// Gets or sets the maximum number of encoded blocks allocated for a picture. /// - public int MaxBlockCount { get; internal set; } + public int MaxBlockCount { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1Superblock.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1Superblock.cs index 780de9dd0..2d33bb296 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1Superblock.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1Superblock.cs @@ -23,10 +23,10 @@ internal class Av1Superblock /// /// Gets or sets the selected partition type for each partition-tree node. /// - public required Av1PartitionType[] CodingUnitPartitionTypes { get; internal set; } + public required Av1PartitionType[] CodingUnitPartitionTypes { get; set; } /// /// Gets or sets the superblock index within the picture. /// - public int Index { get; internal set; } + public int Index { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockGeometry.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockGeometry.cs index 13e7f7df4..e6475e50a 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockGeometry.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockGeometry.cs @@ -11,5 +11,5 @@ internal class Av1SuperblockGeometry /// /// Gets or sets a value indicating whether the superblock lies completely within the coded frame. /// - public bool IsComplete { get; internal set; } + public bool IsComplete { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockInfo.cs index 9d79ba007..8ec50cf35 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockInfo.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockInfo.cs @@ -72,17 +72,17 @@ internal class Av1SuperblockInfo /// /// Gets or sets the next luma transform-information index while parsing this superblock. /// - public int TransformInfoIndexY { get; internal set; } + public int TransformInfoIndexY { get; set; } /// /// Gets or sets the next shared chroma transform-information index while parsing this superblock. /// - public int TransformInfoIndexUv { get; internal set; } + public int TransformInfoIndexUv { get; set; } /// /// Gets or sets the number of mode-information records parsed for this superblock. /// - public int BlockCount { get; internal set; } + public int BlockCount { get; set; } /// /// Gets the luma transform-information storage reserved for this superblock. diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileReader.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileReader.cs index f5f34c639..ae78c7936 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileReader.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileReader.cs @@ -1812,7 +1812,7 @@ internal sealed class Av1TileReader : IAv1TileReader, IDisposable /// The current coding block and its neighbors. /// The active tile boundaries used by reference-motion-vector searches. /// Implements the prefix, intra, and translational inter branches of AV1 section 5.11.7. - internal void ReadInterFrameModeInfo(ref Av1SymbolDecoder reader, ref Av1PartitionInfo partitionInfo, Av1TileInfo tileInfo) + public void ReadInterFrameModeInfo(ref Av1SymbolDecoder reader, ref Av1PartitionInfo partitionInfo, Av1TileInfo tileInfo) { Av1BlockModeInfo modeInfo = partitionInfo.ModeInfo; modeInfo.MotionVectors.Clear(); @@ -2929,7 +2929,7 @@ internal sealed class Av1TileReader : IAv1TileReader, IDisposable /// /// Implements read_inter_segment_id from AV1 section 5.11.8. /// - internal void ReadInterSegmentId(ref Av1SymbolDecoder reader, ref Av1PartitionInfo partitionInfo, bool beforeSkip) + public void ReadInterSegmentId(ref Av1SymbolDecoder reader, ref Av1PartitionInfo partitionInfo, bool beforeSkip) { ObuSegmentationParameters segmentationParameters = this.FrameHeader.SegmentationParameters; Av1BlockModeInfo modeInfo = partitionInfo.ModeInfo; diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileWriter.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileWriter.cs index 4cbaeccae..8d422eb60 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileWriter.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileWriter.cs @@ -1587,7 +1587,7 @@ internal partial class Av1TileWriter /// The tile symbol encoder. /// The encoder block state. /// The skip value to write. - internal static void EncodeSkipCoefficients(ref Av1SymbolEncoder writer, Av1EncoderBlockStruct block, bool skip) + public static void EncodeSkipCoefficients(ref Av1SymbolEncoder writer, Av1EncoderBlockStruct block, bool skip) { Av1MacroBlockModeInfo? above_mi = block.MacroBlock.AboveMacroBlock; Av1MacroBlockModeInfo? left_mi = block.MacroBlock.LeftMacroBlock; diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TransformInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TransformInfo.cs index d24611d6b..7e6722cd9 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TransformInfo.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TransformInfo.cs @@ -45,22 +45,22 @@ internal struct Av1TransformInfo /// /// Gets or sets the transform size used for this transform block. /// - public Av1TransformSize Size { get; internal set; } + public Av1TransformSize Size { get; set; } /// /// Gets or sets the transform type used for this transform block. /// - public Av1TransformType Type { get; internal set; } + public Av1TransformType Type { get; set; } /// /// Gets or sets the horizontal offset of this block in mode-information units. /// - public int OffsetX { get; internal set; } + public int OffsetX { get; set; } /// /// Gets or sets the vertical offset of this block in mode-information units. /// - public int OffsetY { get; internal set; } + public int OffsetY { get; set; } /// /// Gets or sets a value indicating whether the transform block contains a coded residual. @@ -75,5 +75,5 @@ internal struct Av1TransformInfo /// /// /// - public bool CodeBlockFlag { get; internal set; } + public bool CodeBlockFlag { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Av1/Transform/Av1InverseTransformMath.cs b/src/ImageSharp/Formats/Heif/Av1/Transform/Av1InverseTransformMath.cs index 40a9f9265..c575b244a 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Transform/Av1InverseTransformMath.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Transform/Av1InverseTransformMath.cs @@ -284,7 +284,7 @@ internal static class Av1InverseTransformMath /// /// The signaled transform size. /// The maximum coefficient end position represented by AV1 syntax. - internal static int GetMaxEndOfBuffer(Av1TransformSize transformSize) + public static int GetMaxEndOfBuffer(Av1TransformSize transformSize) { if (transformSize is Av1TransformSize.Size64x64 or Av1TransformSize.Size64x32 or Av1TransformSize.Size32x64) { diff --git a/src/ImageSharp/Formats/Heif/Av1/Transform/Av1TransformFunctionParameters.cs b/src/ImageSharp/Formats/Heif/Av1/Transform/Av1TransformFunctionParameters.cs index 234e420dc..080e6aa8b 100644 --- a/src/ImageSharp/Formats/Heif/Av1/Transform/Av1TransformFunctionParameters.cs +++ b/src/ImageSharp/Formats/Heif/Av1/Transform/Av1TransformFunctionParameters.cs @@ -11,30 +11,30 @@ internal struct Av1TransformFunctionParameters /// /// Gets or sets the compound transform type. /// - public Av1TransformType TransformType { get; internal set; } + public Av1TransformType TransformType { get; set; } /// /// Gets or sets the transform-block dimensions. /// - public Av1TransformSize TransformSize { get; internal set; } + public Av1TransformSize TransformSize { get; set; } /// /// Gets or sets the number of coefficient positions represented by the decoded coefficient buffer. /// - public int EndOfBuffer { get; internal set; } + public int EndOfBuffer { get; set; } /// /// Gets or sets a value indicating whether the coded segment uses the AV1 lossless transform rules. /// - public bool IsLossless { get; internal set; } + public bool IsLossless { get; set; } /// /// Gets or sets the decoded sample bit depth. /// - public int BitDepth { get; internal set; } + public int BitDepth { get; set; } /// /// Gets or sets a value indicating whether reconstructed samples use the 16-bit storage pipeline. /// - public bool Is16BitPipeline { get; internal set; } + public bool Is16BitPipeline { get; set; } } diff --git a/src/ImageSharp/Formats/Heif/Hevc/HevcSliceSegmentHeader.cs b/src/ImageSharp/Formats/Heif/Hevc/HevcSliceSegmentHeader.cs index d8c0032ba..de4956705 100644 --- a/src/ImageSharp/Formats/Heif/Hevc/HevcSliceSegmentHeader.cs +++ b/src/ImageSharp/Formats/Heif/Hevc/HevcSliceSegmentHeader.cs @@ -450,7 +450,7 @@ internal sealed class HevcSliceSegmentHeader /// The decoded raw-byte-sequence payload offset. /// The removed encoded-payload byte positions. /// The encoded byte-sequence payload offset at the same syntax boundary. - internal static int GetEncodedPayloadOffset( + public static int GetEncodedPayloadOffset( int rbspOffset, ReadOnlySpan emulationPreventionBytePositions) { @@ -474,7 +474,7 @@ internal sealed class HevcSliceSegmentHeader /// The encoded byte-sequence payload offset. /// The removed encoded-payload byte positions. /// The decoded raw-byte-sequence payload offset at the same syntax boundary. - internal static int GetDecodedPayloadOffset( + public static int GetDecodedPayloadOffset( int encodedOffset, ReadOnlySpan emulationPreventionBytePositions) {