tree d0b37eb8ed6f01c97e846b4b554cd4d4d14608ae
parent 4450606ac080442fc67f413941541ba9e0d7bbe8
author stuartmorgan <stuartmorgan@google.com> 1643820712 -0500
committer GitHub <noreply@github.com> 1643820712 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJh+raoCRBK7hj4Ov3rIwAArsIIAAapI4PjH7l9JNaVENAyhAni
 uqSg/MfcCtEKk2enFirUmmMOyye7zNmpRK+7T90Szr2GAsCYaa8Oi+zHu16ji9kB
 tVN57JOSswTHVxyGjDe9bBD1jE3GSrUl+yt0DCsWVsNoAb4zEyXY8Z4VR5+I6VFj
 PY7FTCSFD5IfeIvt5lSE8yQtgafophJ6mqKAkrnsZUl4L0ZWeDfBnvK8deM0C4mo
 yVT5AuJDIuWccODu2MG1+BabCml70VagU4Jqz4TxE5s1LfsVzdpY41lpQMGTcQcd
 2P6+rXT8ovlXiySEtUnq0BqO3UdxnOyQtiwtGnOuKeijbODk39pTlMDRvccKYJw=
 =3f9I
 -----END PGP SIGNATURE-----
 

[video_player] Federate mobile implementations (#4712)

Moves the iOS and Android implementations to their own federated packages. The iOS implementation package uses the name `avfoundation` rather than `ios` since it is likely that a macOS implementation could share a significant amount of code.

As part of the federation, migrates the mobile implementations to using in-package method channels rather than the shared method channel. Currently these are just duplicates of the existing method channels; updating them to new version of Pigeon will be done in a separate PR later.

Temporarily marks `video_player` as unpublishable to allow the implementations to be moved, rather than copied and deleted, in order to better preserve git history. A follow-up PR will restore it to publishable form.

No version change: The changes to `video_player_platform_interface` only affect development of the plugin, not use of the plugin.

Part of https://github.com/flutter/flutter/issues/68498
Part of https://github.com/flutter/flutter/issues/94224