MediaPlane/IMPLEMENTATION_GUIDE.md

173 lines
4.9 KiB
Markdown

# Maya Image Plane Node - Implementation Guide
## Getting Started
This guide helps the development team begin work on the Maya Image Plane Node project.
## Team Assignments
### Developer 1 (FFmpeg & Maya Node)
- Implement FFmpeg video decoder class
- Create Maya MPxNode plugin
- Implement video frame caching
- Handle thread-safe frame delivery
### Developer 2 (Viewport & Post-effects)
- Implement MHWRender::MPxDrawOverride
- Add frame rate synchronization
- Implement user-adjustable playback rate
- Create post-effects (crop, resize, flip)
### QA Engineer
- Create test plan
- Create and execute test cases
- Verify functionality and report bugs
## Development Setup
### Prerequisites
- Maya 2023 installed
- Visual Studio 2017 (matching Maya 2023's compiler)
- CMake 3.14+
- FFmpeg development libraries (or use vcpkg)
### Build Instructions
1. Clone/download the repository
2. Ensure MAYA_LOCATION environment variable is set to Maya 2023 installation
3. Run CMake to generate project files:
```
mkdir build
cd build
cmake .. -G "Visual Studio 15 2017"
```
4. Build the solution in Visual Studio
5. The plugin will be output as MayaImagePlaneNode.mll
### Working with Specifications
All detailed technical specifications are available in the `docs/` directory:
- FFmpeg_Integration_Spec.md
- Maya_Node_Implementation_Spec.md
- Viewport_2_0_Integration_Spec.md
- Frame_Rate_Synchronization_Spec.md
- User_Adjustable_Playback_Rate_Spec.md
- Post_Effects_Spec.md
- Video_Frame_Caching_Spec.md
- Module_Packaging_Spec.md
## First Steps
### Developer 1
1. Review FFmpeg_Integration_Spec.md
2. Begin implementing the FFmpeg video decoder class
3. Set up basic Maya MPxNode structure
### Developer 2
1. Review Viewport_2_0_Integration_Spec.md
2. Begin implementing MHWRender::MPxDrawOverride base class
3. Set up OpenGL texture management system
### QA Engineer
1. Review all specifications to understand test requirements
2. Create test plan document
3. Begin creating test cases for plugin loading
## Communication
- Update your task status in the todo list regularly
- Report any blockers or questions immediately
- Share progress updates in team communications
- Consult specifications before implementing features
## Notes
- Follow Maya API best practices
- Ensure thread safety between decoding and main thread
- Handle errors gracefully with appropriate logging
- Maintain clean, readable code with comments
- Test frequently as you implement features
Good luck with the implementation!
## Getting Started
This guide helps the development team begin work on the Maya Image Plane Node project.
## Team Assignments
### Developer 1 (FFmpeg & Maya Node)
- Implement FFmpeg video decoder class
- Create Maya MPxNode plugin
- Implement video frame caching
- Handle thread-safe frame delivery
### Developer 2 (Viewport & Post-effects)
- Implement MHWRender::MPxDrawOverride
- Add frame rate synchronization
- Implement user-adjustable playback rate
- Create post-effects (crop, resize, flip)
### QA Engineer
- Create test plan
- Create and execute test cases
- Verify functionality and report bugs
## Development Setup
### Prerequisites
- Maya 2023 installed
- Visual Studio 2017 (matching Maya 2023's compiler)
- CMake 3.14+
- FFmpeg development libraries (or use vcpkg)
### Build Instructions
1. Clone/download the repository
2. Ensure MAYA_LOCATION environment variable is set to Maya 2023 installation
3. Run CMake to generate project files:
```
mkdir build
cd build
cmake .. -G "Visual Studio 15 2017"
```
4. Build the solution in Visual Studio
5. The plugin will be output as MayaImagePlaneNode.mll
### Working with Specifications
All detailed technical specifications are available in the `docs/` directory:
- FFmpeg_Integration_Spec.md
- Maya_Node_Implementation_Spec.md
- Viewport_2_0_Integration_Spec.md
- Frame_Rate_Synchronization_Spec.md
- User_Adjustable_Playback_Rate_Spec.md
- Post_Effects_Spec.md
- Video_Frame_Caching_Spec.md
- Module_Packaging_Spec.md
## First Steps
### Developer 1
1. Review FFmpeg_Integration_Spec.md
2. Begin implementing the FFmpeg video decoder class
3. Set up basic Maya MPxNode structure
### Developer 2
1. Review Viewport_2_0_Integration_Spec.md
2. Begin implementing MHWRender::MPxDrawOverride base class
3. Set up OpenGL texture management system
### QA Engineer
1. Review all specifications to understand test requirements
2. Create test plan document
3. Begin creating test cases for plugin loading
## Communication
- Update your task status in the todo list regularly
- Report any blockers or questions immediately
- Share progress updates in team communications
- Consult specifications before implementing features
## Notes
- Follow Maya API best practices
- Ensure thread safety between decoding and main thread
- Handle errors gracefully with appropriate logging
- Maintain clean, readable code with comments
- Test frequently as you implement features
Good luck with the implementation!