Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ Publication structure and data module requirements management.
### [Common Information Repository](modules/cir.md) (CIR)
Shared terminology, references, and configuration data.

### [Multimedia Embedding](modules/multimedia-embedding.md) (NEW)
Interactive multimedia content including video, audio, and interactive images in IETP.

## 4. GenCMS (Generative Content Management System)

The GenCMS provides AI-assisted content generation with S1000D compliance guardrails.
Expand All @@ -77,8 +80,11 @@ The IETP provides a web-based interface for browsing and managing S1000D content
- Full-text search across titles and DM keys
- Status indicators (authored vs pending)
- Direct access to GenCMS for content generation
- **Multimedia embedding** - Video, audio, and interactive images with responsive controls
- **Click-to-zoom images** - Full-screen viewing of technical diagrams
- **Responsive video playback** - Custom controls and aspect ratio preservation

**See**: [IETP Usage Guide](modules/ietp.md)
**See**: [IETP Usage Guide](modules/ietp.md) | [Multimedia Embedding Guide](modules/multimedia-embedding.md)

## 6. Validation & CI

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,303 @@
# IETP Multimedia Embedding Features

This document demonstrates the new multimedia embedding features added to the IETP (Interactive Electronic Technical Publication) system.

## Overview

The IETP now supports rich multimedia content embedding with:

- **Video embedding** with custom controls and autoplay options
- **Audio playback** with responsive controls
- **Interactive images** with zoom capabilities
- **Responsive design** that adapts to all screen sizes
- **S1000D multimedia object** reference support

## Features

### 1. MediaEmbed Component

A JavaScript component (`media-embed.js`) that automatically detects and enhances multimedia content:

- **Automatic initialization** - Scans content and applies enhancements
- **Responsive containers** - Maintains aspect ratios across devices
- **Custom controls** - Play buttons and overlays for better UX
- **Image zoom** - Click images to view full-screen
- **S1000D integration** - Processes multimedia object references

### 2. Video Embedding

Videos can be embedded with:

```html
<video controls>
<source src="../../multimedia/videos/example.mp4" type="video/mp4">
</video>
```

Or using S1000D multimedia references:

```html
<div data-s1000d-multimedia="video"
data-multimedia-path="../../multimedia/videos/example.mp4"
data-multimedia-code="ICN-BWQ1-A-571010-V-001-01">
</div>
```

**Features:**
- Responsive 16:9 aspect ratio by default
- Custom play button overlay
- Full browser controls support
- Autoplay control (disabled by default for accessibility)
- Loop support
- Mute options

### 3. Audio Embedding

Audio files can be embedded with:

```html
<audio controls>
<source src="../../multimedia/videos/example.mp3" type="audio/mpeg">
</audio>
```

Or using S1000D references:

```html
<div data-s1000d-multimedia="audio"
data-multimedia-path="../../multimedia/videos/example.mp3"
data-multimedia-code="ICN-BWQ1-A-571010-A-001-01">
</div>
```

**Features:**
- Clean audio player interface
- Volume controls
- Progress bar
- Playback speed control (browser-dependent)

### 4. Interactive Images

Images can be made interactive with zoom capabilities:

```html
<img src="../../multimedia/photos/example.png"
alt="Technical diagram"
data-interactive="zoom">
```

**Features:**
- Click to zoom full-screen
- Modal overlay with backdrop
- ESC key to close
- Close button in corner
- Maintains image aspect ratio

### 5. Multimedia Captions

Add captions to any multimedia element:

```html
<div class="media-embed-container">
<video controls>...</video>
<div class="media-caption">
<div class="caption-title">Wing Box Assembly Process</div>
<div class="caption-code">Multimedia Code: ICN-BWQ1-A-571010-V-001-01</div>
</div>
</div>
```

### 6. Multimedia Grid Layout

Display multiple media items in a responsive grid:

```html
<div class="media-grid">
<div class="media-grid-item">
<img src="photo1.png" alt="Photo 1">
</div>
<div class="media-grid-item">
<img src="photo2.png" alt="Photo 2">
</div>
<div class="media-grid-item">
<img src="photo3.png" alt="Photo 3">
</div>
</div>
```

## Configuration Options

The MediaEmbed component can be configured when manually initialized:

```javascript
new MediaEmbed(document.querySelector('.content'), {
autoplay: false, // Auto-start videos (default: false)
controls: true, // Show media controls (default: true)
loop: false, // Loop playback (default: false)
muted: false, // Mute audio/video (default: false)
responsive: true, // Enable responsive behavior (default: true)
aspectRatio: '16:9', // Video aspect ratio (default: '16:9')
maxWidth: '100%' // Maximum width for media (default: '100%')
});
```

## S1000D Integration

The system automatically processes S1000D multimedia object references in data modules:

### XML Structure

```xml
<multimedia>
<multimediaObject multimediaCode="ICN-BWQ1-A-571010-V-001-01"
multimediaType="video"/>
<multimediaCaption>Wing box assembly demonstration video</multimediaCaption>
</multimedia>
```

### Generated HTML

The build system (`build_ietp.py`) automatically converts these to:

```html
<div class="media-embed-container">
<div data-s1000d-multimedia="video"
data-multimedia-path="../../multimedia/videos/ICN-BWQ1-A-571010-V-001-01.mp4"
data-multimedia-code="ICN-BWQ1-A-571010-V-001-01">
<video controls>
<source src="../../multimedia/videos/ICN-BWQ1-A-571010-V-001-01.mp4" type="video/mp4">
</video>
</div>
<div class="media-caption">
<div class="caption-title">Wing box assembly demonstration video</div>
<div class="caption-code">Multimedia Code: ICN-BWQ1-A-571010-V-001-01</div>
</div>
</div>
```

## Responsive Design

All multimedia elements automatically adapt to screen size:

- **Desktop (>1024px)**: Maximum 900px width, full features
- **Tablet (769-1024px)**: Flexible width, optimized controls
- **Mobile (<768px)**: Full width, compact controls, touch-friendly

## Accessibility

The multimedia system includes accessibility features:

- **Keyboard navigation** - All controls accessible via keyboard
- **Focus indicators** - Clear focus states for keyboard users
- **ARIA labels** - Proper labels for screen readers
- **Reduced motion** - Respects `prefers-reduced-motion` setting
- **High contrast** - Supports high contrast mode
- **No autoplay** - Videos don't auto-start (default) for better UX

## Browser Support

The MediaEmbed component works with:

- Modern browsers supporting HTML5 video/audio
- Chrome, Firefox, Safari, Edge (latest versions)
- Mobile browsers (iOS Safari, Chrome Mobile)
- Progressive enhancement for older browsers

## File Format Support

### Video Formats
- MP4 (H.264) - Primary format, best compatibility
- WebM (VP8/VP9) - Alternative format
- MOV - Supported on many browsers

### Audio Formats
- MP3 - Primary format, universal support
- AAC - High quality alternative
- WAV - Lossless audio
- OGG Vorbis - Open format

### Image Formats
- PNG - Technical diagrams, screenshots
- JPEG - Photographs
- SVG - Vector graphics, scalable diagrams
- GIF - Simple animations

## Usage in Data Modules

To include multimedia in your S1000D data modules:

1. **Place multimedia files** in appropriate directories:
- Videos: `multimedia/videos/`
- Audio: `multimedia/videos/` (or separate audio directory)
- Images: `multimedia/photos/` or `multimedia/graphics/`

2. **Reference in XML** using standard S1000D multimedia object elements

3. **Build IETP** - Run `python3 build_ietp.py` to generate HTML

4. **View in browser** - Open generated HTML to see embedded multimedia

## Example: Complete Data Module with Multimedia

```xml
<dmodule>
<identAndStatusSection>
<!-- ... metadata ... -->
</identAndStatusSection>
<content>
<description>
<levelledPara>
<title>Wing Box Assembly Procedure</title>
<para>Follow the steps shown in the video below:</para>
<multimedia>
<multimediaObject multimediaCode="ICN-BWQ1-A-571010-V-001-01"
multimediaType="video"/>
<multimediaCaption>Complete wing box assembly demonstration</multimediaCaption>
</multimedia>
<para>Key structural components are shown in this diagram:</para>
<multimedia>
<multimediaObject multimediaCode="ICN-BWQ1-A-571010-G-001-01"
multimediaType="graphic"/>
<multimediaCaption>Wing box structural components exploded view</multimediaCaption>
</multimedia>
</levelledPara>
</description>
</content>
</dmodule>
```

## Performance Considerations

- **Lazy loading** - Videos only load when in viewport (browser default)
- **Responsive images** - Serve appropriately sized images
- **Video compression** - Use H.264 with appropriate bitrate
- **CDN hosting** - Consider CDN for multimedia assets in production

## Future Enhancements

Potential future improvements:

- Multiple video quality options (480p, 720p, 1080p)
- Video chapters and markers
- Interactive hotspots on images
- 360° image viewers
- WebVR/AR content integration
- Real-time video streaming support
- Transcript overlay for videos

## Testing the Features

To test the multimedia embedding:

1. Build the IETP site: `cd ietp && python3 build_ietp.py`
2. Serve locally: `cd site && python3 -m http.server 8080`
3. Open browser: `http://localhost:8080`
4. Navigate to any data module page
5. Add test multimedia files to the multimedia directories
6. Rebuild and refresh to see embedded content

---

**Classification**: INTERNAL–EVIDENCE-REQUIRED
**Last Updated**: 2026-01-14
**Version**: 1.0
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,15 @@ This directory contains the IETP static site generator for ATA-57 Wings (BWB-H
The IETP system generates a modern, interactive web interface for browsing S1000D data modules organized by:
- **Subsystems**: 57-10 through 57-50 (Wing Structure, Fuel Interfaces, Control Surfaces, High-Lift, Equipment Integration)
- **Information Code Categories**: Description, Tests, Procedures, Fault Isolation, IPD/Parts
- **Multimedia Content**: Embedded video, audio, images, and interactive diagrams

## Files

- `build_ietp.py` - Static site generator (Python 3.9+, stdlib only)
- `assets/css/ietp.css` - Dark theme styling
- `assets/css/media-embed.css` - Multimedia component styling
- `assets/js/ietp.js` - Client-side filtering and search
- `assets/js/media-embed.js` - Multimedia embedding component
- `site/` - Generated static HTML (created after build)

## Building the IETP
Expand All @@ -29,6 +32,7 @@ Output will be generated in `ietp/site/`:
- `subsystem/57-{nn}.html` - Pages for each subsystem
- `dm/DMC-*.html` - Individual data module pages
- `site_index.json` - Search index for client-side search
- `multimedia-demo.html` - Interactive demo of multimedia features

## Features

Expand All @@ -42,6 +46,17 @@ Output will be generated in `ietp/site/`:
- **Quick search**: Search titles and DM keys
- **Responsive design**: Works on desktop and mobile
- **Status indicators**: Shows authored vs pending modules
- **Multimedia embedding**: Video, audio, images with interactive controls
- **Image zoom**: Click to view full-screen images
- **Video controls**: Custom play overlays and responsive playback

### Multimedia Features (NEW)
- **Video embedding**: Responsive video playback with custom controls
- **Audio playback**: Clean audio player with full controls
- **Interactive images**: Click-to-zoom functionality for technical diagrams
- **S1000D integration**: Automatic processing of multimedia object references
- **Responsive containers**: Maintains aspect ratios across all devices
- **Accessibility**: Keyboard navigation, ARIA labels, reduced motion support

### Information Code Mapping

Expand Down
Loading
Loading