This program plays QuickTime movies on GR-Peach

Dependencies:   AsciiFont GR-PEACH_video GraphicsFramework LCD_shield_config R_BSP TLV320_RBSP mbed-rtos mbed

Requirements

  • GR-Peach
  • GR-Peach Audio Camera Shield or I²S compatible audio DAC
  • GR-Peach LCD Shield
  • USB memory stick

How to play movie files

  • Encode movie files

encode movies with ffmpeg

$ ffmpeg -i <input -ar 44100 -acodec pcm_s16le -s 480x270 -vcodec mjpeg -q:v 3 -movflags faststart -threads 4 -vf fps=30 <output>.mov
  • Copy movies to the root directory of USB memory
  • Build and upload this program
  • Run it
Committer:
mtkrtk
Date:
Sun Mar 12 02:01:46 2017 +0000
Revision:
1:3e638b9e91cd
Parent:
0:d0f130e27d32
fixed lcd contrast pin

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mtkrtk 0:d0f130e27d32 1 /* mbed Microcontroller Library - MemFileSystem
mtkrtk 0:d0f130e27d32 2 * Copyright (c) 2008, sford
mtkrtk 0:d0f130e27d32 3 */
mtkrtk 0:d0f130e27d32 4
mtkrtk 0:d0f130e27d32 5
mtkrtk 0:d0f130e27d32 6 #ifndef MBED_MEMFILESYSTEM_H
mtkrtk 0:d0f130e27d32 7 #define MBED_MEMFILESYSTEM_H
mtkrtk 0:d0f130e27d32 8
mtkrtk 0:d0f130e27d32 9 #include "FATFileSystem.h"
mtkrtk 0:d0f130e27d32 10
mtkrtk 0:d0f130e27d32 11 namespace mbed
mtkrtk 0:d0f130e27d32 12 {
mtkrtk 0:d0f130e27d32 13
mtkrtk 0:d0f130e27d32 14 class MemFileSystem : public FATFileSystem
mtkrtk 0:d0f130e27d32 15 {
mtkrtk 0:d0f130e27d32 16 public:
mtkrtk 0:d0f130e27d32 17
mtkrtk 0:d0f130e27d32 18 // 2000 sectors, each 512 bytes (malloced as required)
mtkrtk 0:d0f130e27d32 19 char *sectors[2000];
mtkrtk 0:d0f130e27d32 20
mtkrtk 0:d0f130e27d32 21 MemFileSystem(const char* name) : FATFileSystem(name) {
mtkrtk 0:d0f130e27d32 22 memset(sectors, 0, sizeof(sectors));
mtkrtk 0:d0f130e27d32 23 }
mtkrtk 0:d0f130e27d32 24
mtkrtk 0:d0f130e27d32 25 virtual ~MemFileSystem() {
mtkrtk 0:d0f130e27d32 26 for(int i = 0; i < 2000; i++) {
mtkrtk 0:d0f130e27d32 27 if(sectors[i]) {
mtkrtk 0:d0f130e27d32 28 free(sectors[i]);
mtkrtk 0:d0f130e27d32 29 }
mtkrtk 0:d0f130e27d32 30 }
mtkrtk 0:d0f130e27d32 31 }
mtkrtk 0:d0f130e27d32 32
mtkrtk 0:d0f130e27d32 33 // read a sector in to the buffer, return 0 if ok
mtkrtk 0:d0f130e27d32 34 virtual int disk_read(char *buffer, int sector) {
mtkrtk 0:d0f130e27d32 35 if(sectors[sector] == 0) {
mtkrtk 0:d0f130e27d32 36 // nothing allocated means sector is empty
mtkrtk 0:d0f130e27d32 37 memset(buffer, 0, 512);
mtkrtk 0:d0f130e27d32 38 } else {
mtkrtk 0:d0f130e27d32 39 memcpy(buffer, sectors[sector], 512);
mtkrtk 0:d0f130e27d32 40 }
mtkrtk 0:d0f130e27d32 41 return 0;
mtkrtk 0:d0f130e27d32 42 }
mtkrtk 0:d0f130e27d32 43
mtkrtk 0:d0f130e27d32 44 // write a sector from the buffer, return 0 if ok
mtkrtk 0:d0f130e27d32 45 virtual int disk_write(const char *buffer, int sector) {
mtkrtk 0:d0f130e27d32 46 // if buffer is zero deallocate sector
mtkrtk 0:d0f130e27d32 47 char zero[512];
mtkrtk 0:d0f130e27d32 48 memset(zero, 0, 512);
mtkrtk 0:d0f130e27d32 49 if(memcmp(zero, buffer, 512)==0) {
mtkrtk 0:d0f130e27d32 50 if(sectors[sector] != 0) {
mtkrtk 0:d0f130e27d32 51 free(sectors[sector]);
mtkrtk 0:d0f130e27d32 52 sectors[sector] = 0;
mtkrtk 0:d0f130e27d32 53 }
mtkrtk 0:d0f130e27d32 54 return 0;
mtkrtk 0:d0f130e27d32 55 }
mtkrtk 0:d0f130e27d32 56 // else allocate a sector if needed, and write
mtkrtk 0:d0f130e27d32 57 if(sectors[sector] == 0) {
mtkrtk 0:d0f130e27d32 58 char *sec = (char*)malloc(512);
mtkrtk 0:d0f130e27d32 59 if(sec==0) {
mtkrtk 0:d0f130e27d32 60 return 1; // out of memory
mtkrtk 0:d0f130e27d32 61 }
mtkrtk 0:d0f130e27d32 62 sectors[sector] = sec;
mtkrtk 0:d0f130e27d32 63 }
mtkrtk 0:d0f130e27d32 64 memcpy(sectors[sector], buffer, 512);
mtkrtk 0:d0f130e27d32 65 return 0;
mtkrtk 0:d0f130e27d32 66 }
mtkrtk 0:d0f130e27d32 67
mtkrtk 0:d0f130e27d32 68 // return the number of sectors
mtkrtk 0:d0f130e27d32 69 virtual int disk_sectors() {
mtkrtk 0:d0f130e27d32 70 return sizeof(sectors)/sizeof(sectors[0]);
mtkrtk 0:d0f130e27d32 71 }
mtkrtk 0:d0f130e27d32 72
mtkrtk 0:d0f130e27d32 73 };
mtkrtk 0:d0f130e27d32 74
mtkrtk 0:d0f130e27d32 75 }
mtkrtk 0:d0f130e27d32 76
mtkrtk 0:d0f130e27d32 77 #endif