Skip to content

xiewajueji/player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Player

Overview

It's free media player that aiming at supporting Iot device or embedded in other software

Refactor

  • process graph framework
  • split demux to demuxer + stream + decode
  • demuxer prefetch
  • bootstrap & close gracefully

Todo

  • audio ouput demo
  • doc support(use doxygen)
  • error code
  • event handler
  • dispatch Stream to Output
  • resample
  • support packed audio format
  • cache
  • rate limiter
  • bit rate control
  • video sync with audio
  • serializer
  • config
  • object pool
  • REPL
  • osd
  • ao & vo ReConfig
  • seek
  • network streaming
  • cache
  • p2p support?

Bugs

  • audio mixed with next entry

    • CAUSE: Buffer(for ) is read with fixed size but bytes in Buffer is not enough
    • HOW TO FIX: at last frame we should make up audio callback buffer
  • resample need flush

  • sdl audio driver

    • there is not sound if callback stuck for a period

TEST

Unit Test

  • correction of function
  • correction of context

Integration Test

  • multiple driver
  • multiple hardware

Source Code Overview

the source files are organized by different usage in different folder and designed by traditional OOP that the src code that impl one feature should not cross too many files, the dst code can though. Anyway, we should consider where to Put the src code and to fix it in.

The Folder

  • audio: audio output and audio driver
  • common: some high level data structure like Config that is used by other module
  • core: what make player different from demuxer
  • demux: split stream from container
  • exception: define err code
  • input: define input code and the
  • misc: some low level help util and function
  • osal: operating system abstraction layer
  • video: video output and video driver

Name

you can guess what it is aimed for when you see name in src code first time

class

  • xxxContext: it mean that it can be accessed by many other class, it must always be in the right state

EXPR

  • how to support different demuxer
    • WHY: because we should support a lot of format in the future
    • HOW: the first sight is to use default ffmpeg demuxer by default but allow user to override their own. user should define their own codec though.

Reference

[VLC] module loading

[VLC] hack guide

[VLC] how to write module

[MPV] Display synchronization

Optimizing CRC32

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published