Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AVFoundation] Numerous improvements to the AVSampleCursor type + some other structs. #20685

Merged
merged 7 commits into from
Jun 6, 2024

Conversation

rolfbjarne
Copy link
Member

  • The AVSampleCursor type was made available on all platforms two years ago (as
    opposed to only macOS before that), so update availability attributes accordingly.

  • Also make a few structs used by AVSampleCursor blittable (AVSampleCursorSyncInfo,
    AVSampleCursorDependencyInfo, AVSampleCursorChunkInfo, AVSampleCursorAudioDependencyInfo)

    This got a bit complicated, because some of the non-blittable members of these structs
    are public. This meant a workaround had to be implemented:

    • Rename the properties that use these structures - appending "_Blittable" - and
      make them internal.
    • Create internal "*_Blittable" versions of the structures, and a make the "_Blittable"
      properties return these structures.
    • Bind the properties again, wrapping the internal versions and manually converting
      from the blittable structures to the non-blittable structures.

    Note that since some of the properties are new on iOS and tvOS, we don't need the
    compatibility workaround for these platforms.

Contributes towards #15684.

…e other structs.

* The AVSampleCursor type was made available on all platforms two years ago (as
  opposed to only macOS before that), so update availability attributes accordingly.

* Also make a few structs used by AVSampleCursor blittable (AVSampleCursorSyncInfo,
  AVSampleCursorDependencyInfo, AVSampleCursorChunkInfo, AVSampleCursorAudioDependencyInfo)

  This got a bit complicated, because some of the non-blittable members of these structs
  are public. This meant a workaround had to be implemented:

  * Rename the properties that use these structures - appending "_Blittable" - and
    make them internal.
  * Create internal "*_Blittable" versions of the structures, and a make the "_Blittable"
    properties return these structures.
  * Bind the properties again, wrapping the internal versions and manually converting
    from the blittable structures to the non-blittable structures.

  Note that since some of the properties are new on iOS and tvOS, we don't need the
  compatibility workaround for these platforms.

Contributes towards xamarin#15684.
Comment on lines +500 to +510
public AVSampleCursorDependencyInfo ToAVSampleCursorDependencyInfo ()
{
var rv = new AVSampleCursorDependencyInfo ();
rv.IndicatesWhetherItHasDependentSamples = IndicatesWhetherItHasDependentSamples;
rv.HasDependentSamples = HasDependentSamples;
rv.IndicatesWhetherItDependsOnOthers = IndicatesWhetherItDependsOnOthers;
rv.DependsOnOthers = DependsOnOthers;
rv.IndicatesWhetherItHasRedundantCoding = IndicatesWhetherItHasRedundantCoding;
rv.HasRedundantCoding = HasRedundantCoding;
return rv;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reminder we can do something like this in the new c#

Suggested change
public AVSampleCursorDependencyInfo ToAVSampleCursorDependencyInfo ()
{
var rv = new AVSampleCursorDependencyInfo ();
rv.IndicatesWhetherItHasDependentSamples = IndicatesWhetherItHasDependentSamples;
rv.HasDependentSamples = HasDependentSamples;
rv.IndicatesWhetherItDependsOnOthers = IndicatesWhetherItDependsOnOthers;
rv.DependsOnOthers = DependsOnOthers;
rv.IndicatesWhetherItHasRedundantCoding = IndicatesWhetherItHasRedundantCoding;
rv.HasRedundantCoding = HasRedundantCoding;
return rv;
}
public AVSampleCursorDependencyInfo ToAVSampleCursorDependencyInfo ()
{
var rv = new AVSampleCursorDependencyInfo () {
IndicatesWhetherItHasDependentSamples = IndicatesWhetherItHasDependentSamples,
HasDependentSamples = HasDependentSamples,
IndicatesWhetherItDependsOnOthers = IndicatesWhetherItDependsOnOthers,
DependsOnOthers = DependsOnOthers,
IndicatesWhetherItHasRedundantCoding = IndicatesWhetherItHasRedundantCoding,
HasRedundantCoding = HasRedundantCoding,
}
return rv;
}

Do I care we did not use it, no :)

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

Copy link
Member

@dalexsoto dalexsoto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After checking tests

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [PR Build] Tests on macOS M1 - Mac Big Sur (11) passed 💻

All tests on macOS M1 - Mac Big Sur (11) passed.

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [PR Build] Tests on macOS M1 - Mac Monterey (12) passed 💻

All tests on macOS M1 - Mac Monterey (12) passed.

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [PR Build] Tests on macOS M1 - Mac Ventura (13) passed 💻

All tests on macOS M1 - Mac Ventura (13) passed.

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

📚 [PR Build] Artifacts 📚

Packages generated

View packages

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

❌ [CI Build] Windows Integration Tests failed ❌

❌ Failed ❌

Pipeline on Agent
Hash: 4a1ebac4962372fc3e662609f29440d8e75f4189 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [PR Build] Tests on macOS X64 - Mac Sonoma (14) passed 💻

All tests on macOS X64 - Mac Sonoma (14) passed.

Pipeline on Agent
Hash: [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

✅ API diff for current PR / commit

Legacy Xamarin (No breaking changes)
.NET (No breaking changes)

✅ API diff vs stable

Legacy Xamarin (No breaking changes)
.NET (No breaking changes)
Legacy Xamarin (stable) vs .NET

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 4a1ebac4962372fc3e662609f29440d8e75f4189 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Windows Integration Tests passed 💻

All Windows Integration Tests passed.

Pipeline on Agent
Hash: 4a1ebac4962372fc3e662609f29440d8e75f4189 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@rolfbjarne rolfbjarne merged commit ae155a9 into xamarin:main Jun 6, 2024
64 checks passed
@rolfbjarne rolfbjarne deleted the avfoundation-blittable-structs branch June 6, 2024 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants