Skip to content

Implementing MPD Protocol as Control Module in VLC Media Player based on client-server architecture to service multiple client requests of controlling playback and managing media library on a local network. (Project as a part of GSoC 2020)

License

GPL-2.0, LGPL-2.1 licenses found

Licenses found

GPL-2.0
COPYING
LGPL-2.1
COPYING.LIB
Notifications You must be signed in to change notification settings

knightwayne/VLC-MPD

Repository files navigation

GSoC 2020: Implementing a MPD Module in VLC

Introduction

How to Use MPD Module with VLC Media Player

  • Step 1: Install VLC Media Player on your system, and along with this, the mpd module will also be installed.
  • Step 2: Using a Command Line, initialise the MPD server within VLC Media Player with command ./vlc --mpd. This loads the MPD module along with running the core vlc_main() thread in the background, waiting for mpd clients requests to come and service them.
  • Step 3: Using mpc-clients, send requests to the server to control playback and queue.
  • Step 4: Stop the server to kill the thread.

Summary Of Proposed Tasks

  • Creating a basic MPD server-client architecture
  • Implementing the MPD Protocols
  • Parsing Client Side Request
  • Connecting it with VLC media library
  • Implementing Different MPD features
  • Configuring Files Option
  • Command line Access to the server
  • Documentation & Bug Fixes

Summary of Completed Work

  • Created MPD Architecture based on Socket Programming Communication Model and implemented MPD protocol to service clients.
  • Polling for sampling a set of clients
  • Parsing Input Commands from different Music Player Daemon-Clients.(MPC)
  • Implemented two ways of sending data.
  • Implemented the following sets of Commands for controlling VLC through MPD Protocol (Complete Set of Commands Available Here):
    1. Playback Options: consume, repeat, random, single, volume, etc
    2. Controlling Playback: play, pause, next, previous, stop, seek, etc
    3. Queue Control: add (files, folders recursively), delete, move, swap, shuffle, playlist information, playlist information metadata, etc.
    4. Playlists: Saving, loading and modifying playlists from MPD.
    5. Music Database: Not very stable, but basic listing and search/search+add features work fine.
    6. Handling other misc commands: Ping, Idle, Close, etc.
  • Documentation

Remaining Features & Known Issues:

  • Currently only one filter can be applied through vlc_query_params for searching through music database. Multiple tag filters for searching needs to be added, in Advanced Find/Search commands.
  • input_item_t Parameter can't extract current playback/database information when Music is being played.
  • status and stats commands: can't extract information, input_item_t doesn't grab value as it should.
  • Making the music database more verbose. Adding more tags to be queried by MPD clients.

About

Implementing MPD Protocol as Control Module in VLC Media Player based on client-server architecture to service multiple client requests of controlling playback and managing media library on a local network. (Project as a part of GSoC 2020)

Resources

License

GPL-2.0, LGPL-2.1 licenses found

Licenses found

GPL-2.0
COPYING
LGPL-2.1
COPYING.LIB

Stars

Watchers

Forks