proxy-media for previewing a small copy of a library, peer-2-peer-sync using proxy media and sidecars.... .a mobile app that lets me share and browse my darktable library from the phone#21336
Conversation
- Introduced a new P2P sync daemon in `src/p2p/main.go` for darktable. - The daemon supports XMP sync, proxy media fetch, and mDNS peer discovery. - Added command-line flags for socket path, passphrase, and proxy directory. - Implemented graceful shutdown on receiving termination signals. - Added a new file `src/p2p/p2p` for additional P2P functionality (file too large to diff).
…port - Implement event subscription for push notifications on image import and XMP updates. - Add static peer configuration via command-line flag for improved connectivity in restricted networks. - Update proxy handling to auto-fetch missing proxies from static peers. - Refactor daemon initialization to accommodate new static peers feature.
…s for linear and log-encoded proxies to ensure correct color management.
…tory for remote images and enhance local file indexing.
…e writes and push XMP data to P2P
…normalization - Added a new peer database (`peerdb.go`) to manage peer information persistently. - Implemented functions to touch, mark success, and mark failure for peers in the database. - Introduced a method to retrieve all known peer URLs ordered by last seen time. - Enhanced the main application to read peers from a configuration file and normalize peer URLs. - Added utility functions for determining the database path and normalizing peer URLs.
…ocket buffer flooding during batch job execution
…sn't exist locally and add delay for XMP file writing in P2P
…onnection settings for peer database
…revent deadlocks and improve performance
… HTTP client usage
…dating cached thumbnails
…for path computation and updating proxy creation logic
…efining local destination fallback strategy
…d down to even for YUV420 encoders
…oading on the main thread
…ting announcement logic into proxy creation
|
I'll be breaking this into smaller pr's with seperate documentation per per... 1* proxy-media suppport that mimics almost full raw editing with highly compressed files 2* p2p-daemon integration and sync algorithm 3* mobile app from there we can try to break it into more baby-sized pieces individually documented |
|
I confess, for me this is complete fog. Absolutely no idea what you want to achieve or what target you have. |
…improved performance
…peer URL retrieval in daemon
…ed preview synchronization
…services and architecture
check this for architecture overview... |
check this document for architecture overview. |
- Added proxy subscription and download functionality in `proxy.go` to manage proxy announcements and fetch proxies from peers. - Implemented XMP handling in `xmp.go`, including inbound XMP processing, pushing updates to peers, and serving XMP files over HTTP. - Introduced methods for merging XMP metadata to preserve existing edits while applying new updates. - Enhanced logging for better traceability of proxy and XMP operations.
- Add outbound HTTP helpers for GET and POST requests with authentication. - Implement an HTTPS server to handle proxy, manifest, XMP, and preview requests. - Create a local file index to manage and resolve paths for raw and proxy files. - Introduce socket communication for event broadcasting and handling various commands. - Define message types and structures for XMP synchronization and proxy announcements. - Ensure persistence of local-to-remote path mappings across daemon restarts.
|
Just a side note here, we are currently in release mode. Do not expect much feedback in the coming weeks. Also this is a HUGE PR and we have not even discussed if this is something we want or not in darktable. We really need to come with a view on the workflow for this new stuff and see if it can integrated into darktable without breaking other things. So let's first open an issue and discussed the ultimate goal and the use of such feature. |


darktable p2p sync of xmp sidecars
p2p network daemon
mobile app that fetches previews from darktable desktop, and has rating and color tag buttons and can share to other phone applications