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

Multi-File Processing Support and added support for linux #303

Open
wants to merge 16 commits into
base: master
Choose a base branch
from

Conversation

devanshusanghani
Copy link

Recent Updates: Multi-File Processing Support

The GUI application has been enhanced with batch processing capabilities. Here are the key improvements:

New Features

  1. Multiple File Selection

    • Users can now select multiple files simultaneously
    • First selected file is displayed in the UI for reference
  2. Simplified Output Handling

    • Single output directory selection for all files
    • Automatic file naming with "_injected" suffix
  3. Batch Processing

    • Sequential processing of all selected files
    • Robust error handling: individual failures don't stop the batch
    • Progress tracking with status messages
  4. Added Linux support in Spec file

  5. **Build Script **

    • Identify standardized platform name
    • Build the executable for the current platform
    • Supports Windows, Mac and Linux
    • build_executables.py

Technical Implementation

The changes were implemented in spatialmedia/gui.py:

# Enable multiple file selection
self.open_options["multiple"] = True

# Process multiple files
for input_file in self.all_files:
    output_file = os.path.join(
        os.path.dirname(self.save_file),
        f"{split_filename[0]}_injected{split_filename[1]}"
    )
    metadata_utils.inject_metadata(input_file, output_file, metadata, console.append)

These updates significantly improve workflow efficiency when processing multiple videos.

devanshusanghani and others added 10 commits October 29, 2024 13:16
1. **Multiple File Selection**: Users can now select multiple files at once using the file dialog
2. **Batch Processing**: The application processes all selected files sequentially
3. **Directory-based Output**: Instead of selecting individual output files, users select an output directory
4. **Automatic File Naming**: Output files are automatically named with "_injected" suffix
5. **Progress Tracking**: Added status messages to show processing progress and results
6. **Error Handling**: Individual file failures don't stop the entire batch process

These changes transform the application from processing single files to handling multiple files in batch, making it more efficient for users working with multiple videos.
…y directly from self.save_file, improving file handling for batch processing.
- Introduced a new script `build_executables.py` for building platform-specific executables using PyInstaller.
- Implemented functions for cleaning build directories, handling retries on directory removal, and determining executable names based on the operating system.
- Added `requirements.txt` to specify dependencies: PyInstaller, tk, pillow, and packaging.
- Updated README.md to reflect recent changes and improvements in the application.

new featues:
## Recent Updates: Multi-File Processing Support

The GUI application has been enhanced with batch processing capabilities. Here are the key improvements:

### New Features

1. **Multiple File Selection**
   - Users can now select multiple files simultaneously
   - First selected file is displayed in the UI for reference

2. **Simplified Output Handling**
   - Single output directory selection for all files
   - Automatic file naming with "_injected" suffix

3. **Batch Processing**
   - Sequential processing of all selected files
   - Robust error handling: individual failures don't stop the batch
   - Progress tracking with status messages

### Technical Implementation

The changes were implemented in `spatialmedia/gui.py`:

```python
# Enable multiple file selection
self.open_options["multiple"] = True

# Process multiple files
for input_file in self.all_files:
    output_file = os.path.join(
        os.path.dirname(self.save_file),
        f"{split_filename[0]}_injected{split_filename[1]}"
    )
    metadata_utils.inject_metadata(input_file, output_file, metadata, console.append)
```

These updates significantly improve workflow efficiency when processing multiple videos.
Copy link

google-cla bot commented Jan 14, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

- Created .gitignore to exclude database files.
- Added summary.md for project overview, detailing technologies, purpose, and file structure for the Spatial Media project.
- Implemented GitHub Actions workflow (build.yml) for automated testing and building across multiple OS and Python versions.
- Updated Dockerfile to streamline dependency installation and improve the setup process.
- Enhanced spatial_media_metadata_injector.spec for better executable handling on Linux and macOS.
…directory directly from self.save_file, improving file handling for batch processing."

This reverts commit a534aa3.
…tly, resolving directory path issues for batch processing.
@devanshusanghani
Copy link
Author

Fixed Google CLA issue. Now it is ready to be reviewed and merged (potentially)

…spec

- Added support for building executables on Linux platforms.
- Updated the EXE configuration to include necessary parameters for the Spatial Media Metadata Injector application.
- Ensured compatibility with existing macOS configurations.

This change improves cross-platform functionality and prepares the application for broader deployment.
@devanshusanghani
Copy link
Author

@jamiesonpepper if you're still working on this project and can review this it would be great.

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.

1 participant