V0.9.0 Release Announcement

Added by Hammel over 9 years ago

PiBox Media Server / PiBox Media Player v0.9.0 Release Notes

Additional Information

General Status
This is the first fully functional media-based release, with both the Media Server and Media Player functionality implemented and working. The Media Server auto mounts media sticks and exports them to the Media Player. Both server and player have an integrated custom front end to the omxplayer allowing for media file selection using a database generated via using the new VideoLib application. The default configuration is designed to work optimally with the Favi keyboard including arrow keys and audio. Audio is automatically pushed out the Raspberry Pi's audio port to avoid possible loss of audio on HDMI connections.

Previous functionality has been regression tested and continues to work correctly. The webcam interface can be played at the same time that video is played on the server and the player.

Extensive investigation has been done to identify the most stable hardware for both the server and player. This includes definition of a specific USB network dongle and integration considerations with displays ranging from HDMI monitors and TVs to LCD touchscreens and projectors.

Where this is headed
It's become obvious that there are some easy to add extended functionality that can be added to the media components, such as remote control via Android, a more Netflix or Android styled icon desktop (managed through the application manager instead of matchbox's panel) and digital TV support. This will be the focus for the 0.10.0 release.

The long term plans include integration with BLE devices to provide a wider-scale Internet of Things infrastructure, taking PiBox from the trailer into the home. Additional work is planned for WiFi Direct improving boot times and overall performance.

0.9 Development Summary:
  • Major platform stabilization and road-tested release.
  • Integrated a front end (videofe) to omxplayer to browse and selected videos.
  • Created a desktop application (videolib) for creating a database on media sticks for use with PiBox.
  • Stabilized the network configuration when the Media Server is configured as a access point.
  • Updated the UI to a much more user friendly environment, integrating FAVI keyboard support and use-case from across a room.
  • Migrated to current repository for omxplayer.
  • Fixed SMB mounting issues, making video sharing on private network more transparent.
  • Implemented an application manager to launch applications and manage performance.
  • Fixed bug in Pibox web server to allow proper use from mobile devices.
  • UI/firmware cleanup that allows clean use on multiple HDMI monitors as well as with AAXA LED projectors.
0.10 Plans
  • Migrate to Netflix/Android style desktop from the use of a panel in the UI
  • Investigate integration of Android control of appmgr
  • Integrate use of WinTV HVR 950Q for digital TV
  • Investigate creation of custom 3D printed case for both server and player
Development Status:
  • Total issues: 230
  • Closed/Resolved: 173
  • In Progress: 20
  • New since last release: 81
  • Closed/Resolved since last release: 58

Repository: appmgr
RM #325: Add REUSE socket option so X11 restarts will be able to properly restart the appmgr.
RM #315: Shutdown and cleanup appmgr when the package is removed.
RM #316: Add interface script that handles Matchbox->appmgr messaging. Fix packaging so its appropriate for the appmgr package.
RM #316: Remove extraneous init script.
RM #316: Updated unit tests to validate appmgr is operating as intended.
RM #316: Change default port so it doesn't conflit with piboxd.
RM #316: cleanup of logging output.
RM #316: Stop current process on shutdown. Provide more thorough handling of app killing.
RM #316: Don't output to console if writing to log file.
RM #316: Move lock handling to a separate function so it can be called whether daemonized or not. Move logging init earlier. Clean up lock file on exit.
RM #316: Updated to reflect tests being able to run from top level or tests directory.
RM #316: Add cleanup of test generated files.
RM #316: Initial import.

Repository: bui
RM #376: Fix default protocol type to be WPA2.
RM #376: Change from TKIP to CCMP for pairwise settings when in hostap mode.
Revert "General: clean up build so it is used the same way the piboxd and related builds are run (starting with autoreconf -i)."
General: clean up build so it is used the same way the piboxd and related builds are run (starting with autoreconf -i).
RM #347: Added wpa_pairwise=TKIP, macaddr_acl=0, ignore_broadcast_ssid=0, hw_mode=g to hostap configuration output.
RM #313: Fix ip address in status bar. Add more spacing on some hbox cells.

Repository: mjpg
RM #348: Bump version to 0.9.0.

Repository: monkey
RM #275: Update bashsetup script to match move of repository under the PiBox project.
RM #348: Bump version to 0.9.0.

Repository: omx
RM #348: Pull from last known working build.
RM #355: Added file for omxplayer to packaging.
RM #352, RM #355: Migrated to master branch of popcornmix repo. Verified missing library and font files are in the opkg.
General: Change project name from omx to omxplayer.
Initial import of omxplayer metabuild

Repository: piboxd
RM #382: Added isThisMyIP() to utils that is called from getNMBList() to make sure not to mount the local host's own SMB exports.
RM #348: Bump version number for 0.9 release.
RM #376: If SMBMOUNT is specified in config file, use that. Otherwise use the default mount command.
RM #376: Add support for loading the configuration file at boot time.
RM #376: Add support for SMBMOUNT in configuration file.
Merge branch 'master' of ssh://
RM #353: The two calls to popen() did not have associated calls to pclose(). That has been fixed and the runaway processes problem appear to be fixed.
General: Fix incorrect prog name on help message.
RM #323: Add smb automounting support through timer function.
RM #323: Add support for testing if running as root.
RM #323: Added support for automounting smb shares.
General: Removed extraneous comments.
General: fix case of PiBox Media Server.
General: Added missing cross compile instructions.
General: Add missing cdtools function.

Repository: piboxwww
RM #276: Updated to reflect move of repository under the PiBox project.
RM #348: Bump version to 0.9.0.
RM #354: Add missing [IPADDR] tag to webcam.tmpl.

Repository: pmsui
RM #375, RM #361: If a FAVI keyboard is found, reconfig mouse acceleration and keymappings.
RM #364: Add new icons for single panel configuration.
RM #358: Add larger mouse icon set to packaging.
RM #363, RM #364: Switch to one panel at the top and one replace the icons with nicer ones.
RM #322: Add videofe to icon callbacks.
RM #350: Call startup from xinitrc so appmgr can get proper access to X environment.
RM #318: Added call to feh to display PiBox background in xinitrc.
General: remove margins from panel.
General: Remove backgrounds from icons.
RM #313: Reduce font size - the "Enable" line on the IPV4 tab wasn't showing and the status bar couldn't display the ip address.
RM #316: Remove bui-network-config from xinitrc. Let user drive navigation.
RM #315: Switch to appmgr usage for panel buttons.
RM #315: Allow script to run run with start/stop options.
General: Remove stamp files which should not be checked in.
RM #281: Add desktop setup script, called by S90UI.
RM #281: Remove chown, which is not needed since the build sets the owner of files, and add mkfontdir for pibox fonts.
RM #281: Fix location of png icons.
RM #281: Switch to Nunito as the desired font for gtk apps.
RM #281: Fix preinst packaging.
RM #281: Fix cdtools script to properly match upstream repo for PMSUI package.
Initial import of the PiBox Media Server UI package

Repository: rpi
RM #348: Add changelog generator script and supporting data file.
RM #348: Bump version number of 0.9.0.
RM #376: Add a 2 second delay after wpa_supplicant is started to give it a chance to bring up the hardware before bringing up the interface with ifup.
Revert "RM #375, RM #371: Test for FAVI keyboard and adjust mouse movement and key mappings for". This change belongs in the UI repo only, since it applies to the Media Server/Media Player add on packages.
RM #375, RM #371: Test for FAVI keyboard and adjust mouse movement and key mappings for
RM #375, RM #371: Save lsusb output to speed other scripts that need that same output.
RM #375: Add xev to find keycodes for FAVI keyboard.
General: Put wpa-supplicant in the background or else ifup doesn't get run.
RM #357: Force audio out of the Pi port instead of the HDMI port (if supported) as the default for PiBox.
RM #370: Updated the overscan settings. Added comments related to addressing audio output (RM #357).
RM #326: switch to using /media/usb as the mount point parent for usb flash sticks.
RM #326: Switch to /media/usb as the share point so only the usb flash sticks are shared.
RM #325: Only run shutdown, and let app-specific xinitrc's handle startup so apps get proper access to X environment.
RM #321: Removed references to nfs from S00dev.
RM #303: Added WinTV HR 950Q firmware.
General: minor mods to help with automated smb config.
RM #303: Add dvd_apps, w_scan, for tv dongle and xrefresh to help recover from omxplayer.
RM #296: Removed commented out call to rc.modules in S00dev. Added calls to init scripts that do initialization in firstboot. Makes for a clean 2nd boot.
RM #316: Add sed, netcat and vim for use with appmgr.
RM #312: Run on stop only if HDMI is connected.
RM #316: Add vimtools patch to get xxd for appmgr.
General: Move debian-binary into CONTROL directory so it gets installed in the proper location.
RM #281: Add mkfontdir to available font directories.
RM #281: Call if it exists.
RM #281: Revert back to Blackbox as the default UI. The Pibox Media Server has its own opkg to set up its UI.
RM #281: Add reference to gtkrc file, if one exists.
RM #281: Add font paths to xorg.conf.
RM #281: Added mkfontdir, mkfontscale and xwd.
RM #306: Enabled matchbox and made it the default environment for the HDMI display.
RM #240: Removed multiple xorg.conf and xinitrc now that we won't be running X on the fbtft device.
RM #240: Removed directfb examples, Removed gqview, Added fbset, Added fbturbo back in (again), Added evtest/evtest capture.
RM #309: Remove extra xorg.conf and xinitrc since X will not be used on the fbtft device.
RM #299: Enable ads7846 in modules.conf.
RM #240: Add a special init script for loading modules with rc.modules. If necessary, switch the console to the fbtft device.
RM #240: uncomment fbtft so it gets loaded with the other drivers now.
RM #240: Remove fbtft integration (it's handled separately now) except for a test for the fbtft stamp file - if its there then don't start the X server.
RM #240: Don't load /etc/modules.conf here so we can properly load fbtft later.
General: Fix cscope target, which was broken.
General: Fixed broken target name expansion for buildroot-verify.
RM #299: Add ads7846 touchscreen input device.
RM #299: Add xinput and tslib.
RM #296: Added fbtft_tools to kernel build.
RM #240: Switch to fbdev from fbturbo because the latter doesn't seem to work well with the fbtft drivers.
RM #240: Disable fbturbo because it doesn't work well with the fbtft device.
RM #240: Changed to checking for stamp file for setting up fbtft configuration.
RM #240: Fix patch by adding missing closing double quote.
RM #240: Fix directory reference (replaced undefined var FBTFT_ARC with FBTFT).
RM #240: Switch to /dev/fb1.
RM #240: Remove incorrect command line option (-display).
RM #240: Load spi-bcm2708 with rc.modules, before we try to load the fbtft drivers.
RM #300: Bump to "master" for the firmware blobs.
RM #300: Bump to "master" for the GLES libraries and tools.
RM #240: Created multiple xorg.conf and xinitrc files based on which displays are connected at boot time. Modified S90UI to test for displays and configure appropriate files, plus handles loading of appropriate drivers since they don't see to work if loaded from rc.modules during early init. Commented out fbtft_device from modules.conf.
RM #240: Updated modules.conf to rotrate display on HY28A. Added a dual-monitor config for (HDMI + HY28A).
RM #240: Add driver config for 3.10.y kernel RM #240: Add fbtft driver targets to download driver from git repo. RM #240: Update kernel config to include fbtft support. Add patches for fbtft support in Kconfig.
RM #240: Add driver configuration file.
RM #240: Add target for downloading 3rd party drivers and integrating into the kernel source.
RM #128: fbturbo seems to work better with the new 3.10.y kernel than it did with 3.2.27 so I've made it the default.
RM #241: removed openssh package from rootfs configuration.

Repository: rtmp
RM #274: Move repository under PiBox project and update to match.
RM #348: Bump version to 0.9.0.

Repository: vfe
RM #380: Added delays between xrefresh and each vt switch and between last vt switch and a new xrefresh. This seems to be necessary to deal with some HDMI displays that are slow to recover from omxplayer exiting.
RM #366: Add sample config file. Config file is not mandatory for installation.
RM #366: Add support for choosing the vt is running on in the config file.
RM #322: Add vt switching when child exits, which is what it takes to get the display back from omxplayer.
RM #322: Don't call pthread_detach on shutdown unless the thread was still running.
RM #322: Place video player in its own thread so we can catch when it exits and call xrefresh to get the framebuffer display back.
RM #322: Remove unnecessary header references.
RM #322: Busybox find operates slightly differently than GNU find, so use the latter when testing on the desktop and the former when running on PiBox.
General: Add support for a config file to set debug args without using command line args.
RM #322: Ported stream.c from piboxd to player.c so it can launch the video player under an xterm (as required for use with omxplayer under
RM #322, RM #349: Added scrolling to video list. Fixed poster display code so it doesn't take so long to switch videos. Added double-click event to poster so it can launch the video.
RM #322: updateVideo() now just calls do_drawing() (which is fixed) so there is no delay in showing posters anymore. Added playVideo() as front end to spawning child that will run the video player.
RM #345: Strip video library name from dbpath.
General: Remove debug statements.
RM #345: Added support for reading in VideoLib databases and displaying video names in the list on the left. Video poster is not yet displayed because I need to strip the db name (.videolib.db) from the path before building the poster path.
Initial import

Repository: vlib
RM #342: Completed option to select from altnerate movie titles.
RM #342: Added dialog for selecting from alternate video entries. Added method in MovieDB to parse alternates into a list of colon delimited strings so they can be parsed by the dialog.
General: Fix parent path to git tree.
RM #335: Added poster menu to choose menu sizes to download. Updated code that saves image to file to append the image size to the filename.
General: Update log level to trace to reduce log floods.
RM #331: Removed video ArrayList and the last few references to it, such as findVideo() method. Prevent redraws from movieList while updating so updates appears instantaneously. Changed scanVideo to take a Video object as an argument instead of a movieName. This allows callers to make updates to that object that scanVideo can use (such as changing the displayName). Set dirName on startup, if one was configured. Save db when a single video is updated via rescan.
RM #331: Remove S_MOVIEDIR from poster path when returning the filename (re: return relative path name).
RM #331: Switched to TreeMap from HashMap to get automatic sorting. Changed a number of log levels to trace to reduce logging output. Dropped find() method - getVideo() does the same thing but correctly. Added updateKey() method to update the db when the displayName changes. Don't add S_MOVIEDIR setting with poster. Let UI take care of that.
RM #331, RM #339, RM #340: Update movie list from DB only using new method. Show display name in TMDB field to allow editing. Load images based on relative paths. Use db entry when doing scan of tmdb. Set default paths when loading a new directory. Don't rebuild db if specified directory doesn't exist.
RM #339, RM #340: Merge usage of filename, listname and displayname. Fix getVideo() to do lookups based on displayname.
RM #339, RM #340: Make video file paths relative to video directory. Drop Video array used by UI and merge usage with LocalDB requirements, which means merging usage of filename, displayname and listname.
RM #339: Convert spaces to underscores in poster file name.
RM #327: Load db file on startup, if available.
General: Allow listName setter.
RM #334, RM #336, RM #338: Add disclaimer and tmbd logo. Move code that fills details frame from video data to its own method so it can be called from multiple places. Move code that scans for a video to its own method so it can be called from multiple places. Add rebuildDB button. Add event handling for clicking on video name in the list. Add URL decoding.
General: Fix loading from the db file. Add find() by display name so clicking on a name in the list can find an db entry.
RM #336: Add tmbd logo as per API license requirements.
RM #331, RM #333: Move scan button to Details frame to rescan individual videos. Add TMDB name to Details frame so it can be manually edited when a search fails.
RM #327, RM #330: Add db format definition class ( Migrated to using it and dropped inner class VideoFile. Write database to file when a single file is rescanned.
RM #329: Don't delete runtime directory on each run via ant.
RM #329: Load configuration file at startup. Setup log4j earlier so Cli logging works correctly.
RM #337: Restructure columns to add API key field. Display saved api key.
RM #337: Integrate use of saved API key.
RM #329: Add ability to save and load configurations.
General: removed notes.txt after moving content to Redmine issues.
General: Clean up unit tests as ported from Jarvis to make them suited to VideoLib.
General: Remove build artifacts from source tree.
General: Remove unit tests copied originally from Jarvis project.
Initial import