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

[mob][preview] add support for video streaming #4253

Open
wants to merge 58 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
b2d2f0d
feat(mobile): init preview video branch
prateekmedia Jul 26, 2024
9130e86
feat(mobile): add preview video store
prateekmedia Aug 4, 2024
6918987
Merge remote-tracking branch 'origin/main' into mobile-preview-video
prateekmedia Aug 5, 2024
0e59424
Merge remote-tracking branch 'origin/clip_face_v2' into mobile-previe…
prateekmedia Aug 12, 2024
4456797
chore: update to full gpl ffmpeg kit
prateekmedia Aug 12, 2024
b7e6029
fix: support for 3.24 as well as add button to cache preview
prateekmedia Aug 12, 2024
f1b7deb
Merge branch 'mobile-preview-video' of https://github.com/ente-io/ent…
prateekmedia Aug 12, 2024
5c760f8
fix: chunk and upload video code
prateekmedia Aug 14, 2024
f15c9ec
Merge branch 'main' into mobile-preview-video
ua741 Aug 28, 2024
672c209
Merge branch 'main' into mobile-preview-video
ua741 Sep 4, 2024
ba04e20
erge branch 'main' into mobile-preview-video
ua741 Sep 30, 2024
520d4e4
[mob] Fix file getter
ua741 Oct 1, 2024
9898bad
[mob] Update preview code to use latest api
ua741 Oct 1, 2024
3a09d50
Merge branch 'main' into mobile-preview-video
ua741 Nov 7, 2024
982b4a4
[mob] Sync fd early
ua741 Nov 8, 2024
223b22e
[mob] Add method to get preview video url
ua741 Nov 8, 2024
c83bd41
Merge remote-tracking branch 'origin/main' into mobile-preview-video
prateekmedia Nov 11, 2024
bbfa447
fix: source preview file as videoplayer's input
prateekmedia Nov 11, 2024
01b7a01
Merge remote-tracking branch 'origin/main' into mobile-preview-video
prateekmedia Nov 14, 2024
68ac9cb
fix: remove unwanted code
prateekmedia Nov 19, 2024
8152159
Merge remote-tracking branch 'origin/main' into mobile-preview-video
prateekmedia Nov 24, 2024
1fa3d87
fix: show toast about video is playing
prateekmedia Nov 24, 2024
426cd70
refactor: simplify error handling and remove unused imports in previe…
prateekmedia Nov 24, 2024
7bc688d
Merge branch 'main' into mobile-preview-video
ua741 Nov 25, 2024
fe91f3e
Merge branch 'mobile-preview-video' of https://github.com/ente-io/aut…
ua741 Nov 28, 2024
f7fc50f
fix: don't show error
prateekmedia Nov 28, 2024
13da082
fix: check files db if preview exist
prateekmedia Nov 28, 2024
d849032
fix: update for iOS
prateekmedia Nov 28, 2024
03bfd85
chore: bump packages
prateekmedia Nov 28, 2024
7193a61
Merge remote-tracking branch 'origin/main' into mobile-preview-video
prateekmedia Nov 28, 2024
d84edcf
fix: only use media_kit for iOS
prateekmedia Nov 28, 2024
3a50c45
fix: init media kit video_player only when fg
prateekmedia Nov 29, 2024
a299dbc
chore: bump lock
prateekmedia Nov 29, 2024
9aa49a7
fix: remove submodules
prateekmedia Nov 29, 2024
bf19aa6
Merge remote-tracking branch 'origin/main' into mobile-preview-video
prateekmedia Nov 29, 2024
3d96e4b
fix: revert source of chewie and video_player
prateekmedia Nov 29, 2024
ffeb9da
fix(preview): cache previewed list, use native player by default
prateekmedia Dec 2, 2024
1a3716f
Merge branch 'main' into mobile-preview-video
ua741 Dec 5, 2024
f19f1b0
[mob] Log video compression progress
ua741 Dec 5, 2024
f7b89b7
Use cached playlist in debugMode
ua741 Dec 8, 2024
da38726
fix: cache preview file
prateekmedia Dec 9, 2024
f9df922
feat: cache playlist and video
prateekmedia Dec 11, 2024
5dba461
fix: use object id for cache video and playlist keys
prateekmedia Dec 14, 2024
1115bf7
Merge remote-tracking branch 'origin/main' into mobile-preview-video
ua741 Dec 18, 2024
d359d75
[mob] Show progress toast
ua741 Dec 18, 2024
a197851
generated strings
ua741 Dec 18, 2024
eba6429
[mob] use unique prefix for each preview generation
ua741 Dec 18, 2024
6c4c0a4
Merge branch 'main' into mobile-preview-video
ua741 Dec 19, 2024
ff01477
Show size in toast
ua741 Dec 19, 2024
50f4cb8
Bump version
ua741 Dec 19, 2024
7a99377
[mob] Fix null pointer in playlist cache
ua741 Dec 20, 2024
1f122c7
[mob] Switch to medium quality
ua741 Dec 20, 2024
1de19e7
[mob] Bump version
ua741 Dec 20, 2024
acc367d
Lint fix
ua741 Dec 20, 2024
6c7a409
Merge remote-tracking branch 'origin/main' into mobile-preview-video
prateekmedia Jan 7, 2025
05ee252
chore: bump versions
prateekmedia Jan 7, 2025
ca08f39
fix: add custom bitrate, framerate for preview compress
prateekmedia Jan 7, 2025
021cde5
Merge remote-tracking branch 'origin/main' into mobile-preview-video
prateekmedia Jan 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 71 additions & 65 deletions mobile/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ PODS:
- Flutter
- device_info_plus (0.0.1):
- Flutter
- ffmpeg-kit-ios-min (6.0)
- ffmpeg_kit_flutter_min (6.0.3):
- ffmpeg_kit_flutter_min/min (= 6.0.3)
- ffmpeg-kit-ios-full-gpl (6.0)
- ffmpeg_kit_flutter_full_gpl (6.0.3):
- ffmpeg_kit_flutter_full_gpl/full-gpl (= 6.0.3)
- Flutter
- ffmpeg_kit_flutter_min/min (6.0.3):
- ffmpeg-kit-ios-min (= 6.0)
- ffmpeg_kit_flutter_full_gpl/full-gpl (6.0.3):
- ffmpeg-kit-ios-full-gpl (= 6.0)
- Flutter
- file_saver (0.0.1):
- Flutter
Expand Down Expand Up @@ -232,6 +232,8 @@ PODS:
- Flutter
- url_launcher_ios (0.0.1):
- Flutter
- video_compress (0.3.0):
- Flutter
- video_player_avfoundation (0.0.1):
- Flutter
- FlutterMacOS
Expand All @@ -249,7 +251,7 @@ DEPENDENCIES:
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/darwin`)
- dart_ui_isolate (from `.symlinks/plugins/dart_ui_isolate/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- ffmpeg_kit_flutter_min (from `.symlinks/plugins/ffmpeg_kit_flutter_min/ios`)
- ffmpeg_kit_flutter_full_gpl (from `.symlinks/plugins/ffmpeg_kit_flutter_full_gpl/ios`)
- file_saver (from `.symlinks/plugins/file_saver/ios`)
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
Expand Down Expand Up @@ -296,14 +298,15 @@ DEPENDENCIES:
- ua_client_hints (from `.symlinks/plugins/ua_client_hints/ios`)
- uni_links (from `.symlinks/plugins/uni_links/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- video_compress (from `.symlinks/plugins/video_compress/ios`)
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`)
- video_thumbnail (from `.symlinks/plugins/video_thumbnail/ios`)
- volume_controller (from `.symlinks/plugins/volume_controller/ios`)
- wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`)

SPEC REPOS:
trunk:
- ffmpeg-kit-ios-min
- ffmpeg-kit-ios-full-gpl
- Firebase
- FirebaseCore
- FirebaseCoreInternal
Expand Down Expand Up @@ -335,8 +338,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/dart_ui_isolate/ios"
device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios"
ffmpeg_kit_flutter_min:
:path: ".symlinks/plugins/ffmpeg_kit_flutter_min/ios"
ffmpeg_kit_flutter_full_gpl:
:path: ".symlinks/plugins/ffmpeg_kit_flutter_full_gpl/ios"
file_saver:
:path: ".symlinks/plugins/file_saver/ios"
firebase_core:
Expand Down Expand Up @@ -429,6 +432,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/uni_links/ios"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
video_compress:
:path: ".symlinks/plugins/video_compress/ios"
video_player_avfoundation:
:path: ".symlinks/plugins/video_player_avfoundation/darwin"
video_thumbnail:
Expand All @@ -439,82 +444,83 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/wakelock_plus/ios"

SPEC CHECKSUMS:
background_fetch: 39f11371c0dce04b001c4bfd5e782bcccb0a85e2
battery_info: 09f5c9ee65394f2291c8c6227bedff345b8a730c
connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db
dart_ui_isolate: d5bcda83ca4b04f129d70eb90110b7a567aece14
device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
ffmpeg-kit-ios-min: 4e9a088f4ee9629435960b9d68e54848975f1931
ffmpeg_kit_flutter_min: 5eff47f4965bf9d1150e98961eb6129f5ae3f28c
file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808
background_fetch: 94b36ee293e82972852dba8ede1fbcd3bd3d9d57
battery_info: a06b00c06a39bc94c92beebf600f1810cb6c8c87
connectivity_plus: 3f6c9057f4cd64198dc826edfb0542892f825343
dart_ui_isolate: 46f6714abe6891313267153ef6f9748d8ecfcab1
device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89
ffmpeg-kit-ios-full-gpl: 80adc341962e55ef709e36baa8ed9a70cf4ea62b
ffmpeg_kit_flutter_full_gpl: ce18b888487c05c46ed252cd2e7956812f2e3bd1
file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6
Firebase: 98e6bf5278170668a7983e12971a66b2cd57fc8c
firebase_core: 2bedc3136ec7c7b8561c6123ed0239387b53f2af
firebase_messaging: 15d114e1a41fc31e4fbabcd48d765a19eec94a38
firebase_core: 085320ddfaacb80d1a96eac3a87857afcc150db1
firebase_messaging: d398edc15fe825f832836e74f6ac61e8cd2f3ad3
FirebaseCore: a282032ae9295c795714ded2ec9c522fc237f8da
FirebaseCoreInternal: ac26d09a70c730e497936430af4e60fb0c68ec4e
FirebaseInstallations: 58cf94dabf1e2bb2fa87725a9be5c2249171cda0
FirebaseMessaging: c9ec7b90c399c7a6100297e9d16f8a27fc7f7152
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_email_sender: 02d7443217d8c41483223627972bfdc09f74276b
flutter_image_compress: 5a5e9aee05b6553048b8df1c3bc456d0afaac433
flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
flutter_native_splash: edf599c81f74d093a4daf8e17bd7a018854bc778
flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be
flutter_sodium: c84426b4de738514b5b66cfdeb8a06634e72fe0b
fluttertoast: e9a18c7be5413da53898f660530c56f35edfba9c
flutter_email_sender: cd533cdc7ea5eda6fabb2c7f78521c71207778a4
flutter_image_compress: 4b058288a81f76e5e80340af37c709abafff34c4
flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99
flutter_local_notifications: ad39620c743ea4c15127860f4b5641649a988100
flutter_native_splash: 35ddbc7228eafcb3969dcc5f1fbbe27c1145a4f0
flutter_secure_storage: 2c2ff13db9e0a5647389bff88b0ecac56e3f3418
flutter_sodium: 152647449ba89a157fd48d7e293dcd6d29c6ab0e
fluttertoast: 76fea30fcf04176325f6864c87306927bd7d2038
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57
image_editor_common: d6f6644ae4a6de80481e89fe6d0a8c49e30b4b43
image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1
in_app_purchase_storekit: 8c3b0b3eb1b0f04efbff401c3de6266d4258d433
integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573
home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f
image_editor_common: 3de87e7c4804f4ae24c8f8a998362b98c105cac1
image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
in_app_purchase_storekit: e126ef1b89e4a9fdf07e28f005f82632b4609437
integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e
libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009
local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3
local_auth_ios: 5046a18c018dd973247a0564496c8898dbb5adf9
local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391
local_auth_ios: f7a1841beef3151d140a967c2e46f30637cdf451
Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d
maps_launcher: 2e5b6a2d664ec6c27f82ffa81b74228d770ab203
media_extension: 6d30dc1431ebaa63f43c397c37917b1a0a597a4c
media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1
media_kit_native_event_loop: e6b2ab20cf0746eb1c33be961fcf79667304fa2a
media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e
motion_sensors: 03f55b7c637a7e365a0b5f9697a449f9059d5d91
motionphoto: d4a432b8c8f22fb3ad966258597c0103c9c5ff16
move_to_background: 39a5b79b26d577b0372cbe8a8c55e7aa9fcd3a2d
maps_launcher: edf829809ba9e894d70e569bab11c16352dedb45
media_extension: a1fec16ee9c8241a6aef9613578ebf097d6c5e64
media_kit_libs_ios_video: 5a18affdb97d1f5d466dc79988b13eff6c5e2854
media_kit_native_event_loop: 5fba1a849a6c87a34985f1e178a0de5bd444a0cf
media_kit_video: 1746e198cb697d1ffb734b1d05ec429d1fcd1474
motion_sensors: 741e702c17467b9569a92165dda8d4d88c6167f1
motionphoto: 584b43031ead3060225cdff08fa49818879801d2
move_to_background: 155f7bfbd34d43ad847cb630d2d2d87c17199710
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
native_video_player: d12af78a1a4a8cf09775a5177d5b392def6fd23c
onnxruntime: e7c2ae44385191eaad5ae64c935a72debaddc997
native_video_player: b65c58951ede2f93d103a25366bdebca95081265
onnxruntime: f9b296392c96c42882be020a59dbeac6310d81b2
onnxruntime-c: a909204639a1f035f575127ac406f781ac797c9c
onnxruntime-objc: b6fab0f1787aa6f7190c2013f03037df4718bd8b
open_mail_app: 794172f6a22cd16319d3ddaf45e945b2f74952b0
open_mail_app: 06d5a4162866388a92b1df3deb96e56be20cf45c
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
photo_manager: ff695c7a1dd5bc379974953a2b5c0a293f7c4c8a
privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e
package_info_plus: 566e1b7a2f3900e4b0020914ad3fc051dcc95596
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
photo_manager: d2fbcc0f2d82458700ee6256a15018210a81d413
privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
receive_sharing_intent: df9c334dc9feadcbd3266e5cb49c8443405e1c9f
screen_brightness_ios: 715ca807df953bf676d339f11464e438143ee625
receive_sharing_intent: f6a12b7e8f7ed745f61c982de8a65de88db44a44
screen_brightness_ios: 5ed898fa50fa82a26171c086ca5e28228f932576
SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3
SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380
Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57
sentry_flutter: 0eb93e5279eb41e2392212afe1ccd2fecb4f8cbe
share_plus: 8875f4f2500512ea181eef553c3e27dba5135aad
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
sqflite_darwin: a553b1fd6fe66f53bbb0fe5b4f5bab93f08d7a13
sentry_flutter: 0a211008f52553ba5dd81ceb71f48d78f0f1f6ab
share_plus: 011d6fb4f9d2576b83179a3a5c5e323202cdabcf
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
sqflite_darwin: 44bb54cc302bff1fbe5752293aba1820b157cf1c
sqlite3: 0bb0e6389d824e40296f531b858a2a0b71c0d2fb
sqlite3_flutter_libs: c00457ebd31e59fa6bb830380ddba24d44fbcd3b
system_info_plus: 5393c8da281d899950d751713575fbf91c7709aa
sqlite3_flutter_libs: 9379996d65aa23dcda7585a5b58766cebe0aa042
system_info_plus: 555ce7047fbbf29154726db942ae785c29211740
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
ua_client_hints: 46bb5817a868f9e397c0ba7e3f2f5c5d90c35156
uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3
video_thumbnail: c4e2a3c539e247d4de13cd545344fd2d26ffafd1
volume_controller: 531ddf792994285c9b17f9d8a7e4dcdd29b3eae9
wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47
ua_client_hints: 0b48eae1134283f5b131ee0871fa878377f07a01
uni_links: ed8c961e47ed9ce42b6d91e1de8049e38a4b3152
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
video_compress: f2133a07762889d67f0711ac831faa26f956980e
video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b
video_thumbnail: b637e0ad5f588ca9945f6e2c927f73a69a661140
volume_controller: ca1cde542ee70fad77d388f82e9616488110942b
wakelock_plus: 8c239121a007daa1d6759c6acdc507860273dd2f

PODFILE CHECKSUM: 20e086e6008977d43a3d40260f3f9bffcac748dd

Expand Down
18 changes: 10 additions & 8 deletions mobile/ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -338,18 +338,19 @@
"${BUILT_PRODUCTS_DIR}/ua_client_hints/ua_client_hints.framework",
"${BUILT_PRODUCTS_DIR}/uni_links/uni_links.framework",
"${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework",
"${BUILT_PRODUCTS_DIR}/video_compress/video_compress.framework",
"${BUILT_PRODUCTS_DIR}/video_player_avfoundation/video_player_avfoundation.framework",
"${BUILT_PRODUCTS_DIR}/video_thumbnail/video_thumbnail.framework",
"${BUILT_PRODUCTS_DIR}/volume_controller/volume_controller.framework",
"${BUILT_PRODUCTS_DIR}/wakelock_plus/wakelock_plus.framework",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-min/ffmpegkit.framework/ffmpegkit",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-min/libavcodec.framework/libavcodec",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-min/libavdevice.framework/libavdevice",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-min/libavfilter.framework/libavfilter",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-min/libavformat.framework/libavformat",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-min/libavutil.framework/libavutil",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-min/libswresample.framework/libswresample",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-min/libswscale.framework/libswscale",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-full-gpl/ffmpegkit.framework/ffmpegkit",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-full-gpl/libavcodec.framework/libavcodec",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-full-gpl/libavdevice.framework/libavdevice",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-full-gpl/libavfilter.framework/libavfilter",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-full-gpl/libavformat.framework/libavformat",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-full-gpl/libavutil.framework/libavutil",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-full-gpl/libswresample.framework/libswresample",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/ffmpeg-kit-ios-full-gpl/libswscale.framework/libswscale",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/media_kit_libs_ios_video/Ass.framework/Ass",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/media_kit_libs_ios_video/Avcodec.framework/Avcodec",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/media_kit_libs_ios_video/Avfilter.framework/Avfilter",
Expand Down Expand Up @@ -433,6 +434,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ua_client_hints.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/uni_links.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_compress.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_player_avfoundation.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_thumbnail.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/volume_controller.framework",
Expand Down
3 changes: 2 additions & 1 deletion mobile/lib/db/ml/db_fields.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:photos/services/machine_learning/face_ml/face_filtering/face_fil

const facesTable = 'faces';
const fileIDColumn = 'file_id';
const objectIdColumn = 'obj_id';
const faceIDColumn = 'face_id';
const faceDetectionColumn = 'detection';
const embeddingColumn = 'embedding';
Expand Down Expand Up @@ -114,7 +115,7 @@ CREATE TABLE IF NOT EXISTS $fileDataTable (
user_id INTEGER NOT NULL,
type TEXT NOT NULL,
size INTEGER NOT NULL,
obj_id TEXT,
$objectIdColumn TEXT,
obj_nonce TEXT,
updated_at INTEGER NOT NULL,
PRIMARY KEY ($fileIDColumn, type)
Expand Down
16 changes: 16 additions & 0 deletions mobile/lib/db/ml/filedata.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,22 @@ extension FileDataTable on MLDataDB {
);
}

Future<Map<int, PreviewInfo>> getFileIDsVidPreview() async {
final db = await MLDataDB.instance.asyncDB;
final res = await db.execute(
"SELECT $fileIDColumn, $objectIdColumn, size FROM $fileDataTable WHERE type='vid_preview'",
);
return res.asMap().map(
(i, e) => MapEntry(
e[fileIDColumn] as int,
PreviewInfo(
objectId: e[objectIdColumn] as String,
objectSize: e['size'] as int,
),
),
);
}

Future<Set<int>> getFileIDsWithFDData() async {
final db = await MLDataDB.instance.asyncDB;
final res = await db.execute('SELECT $fileIDColumn FROM $fileDataTable');
Expand Down
4 changes: 2 additions & 2 deletions mobile/lib/l10n/intl_de.arb
Original file line number Diff line number Diff line change
Expand Up @@ -1397,7 +1397,7 @@
},
"description": "Number of viewers that were successfully added to an album."
},
"collaboratorsSuccessfullyAdded": "{count, plural, one {}=0 {0 Mitarbeiter hinzugefügt} =1 {1 Mitarbeiter hinzugefügt} other {{count} Mitarbeiter hinzugefügt}}",
"collaboratorsSuccessfullyAdded": "{count, plural, =0 {0 Mitarbeiter hinzugefügt} =1 {1 Mitarbeiter hinzugefügt} other {{count} Mitarbeiter hinzugefügt}}",
"@collaboratorsSuccessfullyAdded": {
"placeholders": {
"count": {
Expand Down Expand Up @@ -1472,7 +1472,7 @@
},
"currentlyRunning": "läuft gerade",
"ignored": "ignoriert",
"photosCount": "{count, plural, one {}=0 {0 Fotos} =1 {1 Foto} other {{count} Fotos}}",
"photosCount": "{count, plural, one {1 Foto} =0 {0 Fotos} =1 {1 Foto} other {{count} Fotos}}",
"@photosCount": {
"placeholders": {
"count": {
Expand Down
15 changes: 11 additions & 4 deletions mobile/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import 'package:photos/services/machine_learning/ml_service.dart';
import 'package:photos/services/machine_learning/semantic_search/semantic_search_service.dart';
import 'package:photos/services/memories_service.dart';
import "package:photos/services/notification_service.dart";
import "package:photos/services/preview_video_store.dart";
import 'package:photos/services/push_service.dart';
import 'package:photos/services/remote_sync_service.dart';
import 'package:photos/services/search_service.dart';
Expand All @@ -51,6 +52,7 @@ import "package:photos/utils/email_util.dart";
import 'package:photos/utils/file_uploader.dart';
import "package:photos/utils/lock_screen_settings.dart";
import 'package:shared_preferences/shared_preferences.dart';
import "package:video_player_media_kit/video_player_media_kit.dart";

final _logger = Logger("main");

Expand Down Expand Up @@ -236,6 +238,10 @@ Future<void> _init(bool isBackground, {String via = ''}) async {
ServiceLocator.instance
.init(preferences, NetworkClient.instance.enteDio, packageInfo);

if (!isBackground && flagService.internalUser) {
VideoPlayerMediaKit.ensureInitialized(iOS: true);
}

_logger.info("UserService init $tlog");
await UserService.instance.init();
_logger.info("UserService init done $tlog");
Expand All @@ -245,6 +251,10 @@ Future<void> _init(bool isBackground, {String via = ''}) async {
_logger.info("CollectionsService init done $tlog");

FavoritesService.instance.initFav().ignore();
MemoriesService.instance.init(preferences);
LocalFileUpdateService.instance.init(preferences);
SearchService.instance.init();
FileDataService.instance.init(preferences);

_logger.info("FileUploader init $tlog");
await FileUploader.instance.init(preferences, isBackground);
Expand All @@ -260,10 +270,6 @@ Future<void> _init(bool isBackground, {String via = ''}) async {
await SyncService.instance.init(preferences);
_logger.info("SyncService init done $tlog");

MemoriesService.instance.init(preferences);
LocalFileUpdateService.instance.init(preferences);
SearchService.instance.init();
FileDataService.instance.init(preferences);
_logger.info("RemoteFileMLService done $tlog");
if (!isBackground &&
Platform.isAndroid &&
Expand All @@ -280,6 +286,7 @@ Future<void> _init(bool isBackground, {String via = ''}) async {
});
}
_logger.info("PushService/HomeWidget done $tlog");
PreviewVideoStore.instance.init();
unawaited(SemanticSearchService.instance.init());
unawaited(MLService.instance.init());
PersonService.init(
Expand Down
4 changes: 4 additions & 0 deletions mobile/lib/models/base/id.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ String newClusterID() {
return "cluster_${customAlphabet(enteWhiteListedAlphabet, clusterIDLength)}";
}

String newID(String prefix) {
return "${prefix}_${customAlphabet(enteWhiteListedAlphabet, clusterIDLength)}";
}

String newIsolateTaskID(String task) {
return "${task}_${customAlphabet(enteWhiteListedAlphabet, clusterIDLength)}";
}
1 change: 1 addition & 0 deletions mobile/lib/models/metadata/file_magic.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const latKey = "lat";
const longKey = "long";
const motionVideoIndexKey = "mvi";
const noThumbKey = "noThumb";
const previewVersionKey = "previewVersion";

class MagicMetadata {
// 0 -> visible
Expand Down
2 changes: 2 additions & 0 deletions mobile/lib/services/filedata/filedata_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class FileDataService {
final _logger = Logger("FileDataService");
final _dio = NetworkClient.instance.enteDio;
late final SharedPreferences _prefs;
Map<int, PreviewInfo>? previewIds = {};

void init(SharedPreferences prefs) {
_prefs = prefs;
Expand Down Expand Up @@ -136,6 +137,7 @@ class FileDataService {
await _prefs.setInt("fd.lastSyncTime", maxUpdatedAt);
_logger.info('found ${result.length} fd entries');
hasMoreData = result.isNotEmpty;
previewIds = await MLDataDB.instance.getFileIDsVidPreview();
} while (hasMoreData);
} catch (e) {
_logger.severe("Failed to syncDiff", e);
Expand Down
Loading
Loading