2018-01-12 GetAway1 ShowPicture: return boolean expression 2017-11-02 Thilo Graf version 0.2.0-generic-pc for generic-pc version 1.0.0-mpx hd51 support adjust .gitignore for untracked files add default files add update script 2017-08-23 Jacek Jendrzej return current_video_system 2017-06-18 Jacek Jendrzej add GetVideoSystem() 2017-06-15 Jacek Jendrzej fix compil 2017-04-15 Jacek Jendrzej fix KEY_STOP typo 2017-03-22 Jacek Jendrzej fix error with empty video buffer fix scale screenshot with clutterfb supplement to 85819d69eed2de0189f5f656039328bd2b77b907, fix2 2017-03-21 svenhoefer Merge remote-tracking branch 'neutrino-mp/master' 2017-03-20 svenhoefer - generic-pc/clutterfb.cpp: fix my stupid c/p error :/ - generic-pc: add some more and change some existing keys; ... I've tried to keep the functions on the right keys. 'r' for Radio, 't' for TV and so on. 2017-03-20 Jacek Jendrzej generic-pc/video.cpp dont set output format with negative height size 2017-03-19 Stefan Seyfried libtriple: fix hw_caps build 2017-03-19 svenhoefer - .gitignore: add compile 2017-03-18 Jacek Jendrzej fix error handling in swscale 2017-03-17 svenhoefer - generic-pc/audio.cpp: add default-section to c->codec_id switch ... to avoid compiler warnings 2017-03-16 Jacek Jendrzej check if av_image_fill_arrays return error 2017-03-15 Stefan Seyfried Merge pull request #1 from tuxbox-neutrino/master Some fixes by Jacek. :) 2017-03-15 Jacek Jendrzej add GetScreenImage to cVideo 2017-03-14 Jacek Jendrzej fix audio video rate info 2017-03-11 svenhoefer - cs_api.h: add missing cs_get_chip_type() dummy 2017-02-26 Stefan Seyfried hw_caps: add caps for 14:9 AR and broken tuner driver 2017-02-19 Stefan Seyfried spark/video: add missing O_CLOEXEC to memory fd pwrmngr: promote standby message to "info" generic/video: better A/V sync with clutterfb generic/clutterfb: implement PIG 2017-02-11 Stefan Seyfried triple: fix narrowing warning in video_td, add FD_CLOEXEC 2017-02-09 Stefan Seyfried td: fix GetScreenImage() for OSD-only mode 2017-02-04 Stefan Seyfried acinclude: remove unused TUXBOX_APPS_* stuff configure: get rid of TUXBOX_APPS_*PKGCONFIG macros Use PKG_PROG_PKG_CONFIG / PKG_CHECK_MODULES instead of home-grown macros 2016-11-12 Stefan Seyfried generic-pc: port audio/video decoders to newer ffmpeg API this reduces the amount of deprecation warnings wih newer ffmpeg releases quite a bit :-) 2016-11-03 Stefan Seyfried generic-pc: fix video shutdown 2016-10-30 Stefan Seyfried generic-pc/video: fix stillpicture race condition generic-pc: add alternative clutter based framebuffer Add a framebuffer implementation based on clutter instead of "raw" OpenGL. The performance is slightly worse, but it might bring some platform abstraction and other benefits for the future. 2016-10-22 Stefan Seyfried generic-pc: fix build with newer ffmpeg cPlayback: implement new libcoolstream interfaces a new "Start" and changed "SelectSubtitles" function are implemented to fix compilation (mostly stubbed out, though) 2016-01-22 Stefan Seyfried hardware_caps: add boxarch field 2016-01-09 Stefan Seyfried libeplayer3: enable streams that use http auth 2016-01-08 Stefan Seyfried libeplayer3: fix signed/unsigend comparison warning libspark: allow to seek backwards from EOF in cPlayback libspark: allow streams to play for more than 10 seconds Neutrino determines "end of file" amongst others by checking if the current position is less than one second before file length. So for the streaming case, alwas pretend to be two seconds behind. libeplayer3: speed up Player::Stop() libeplayer3: add comments to input class, fix warning 2016-01-08 max10 test aac 2016-01-08 Stefan Seyfried libeplayer3: disable debug output printf's libeplayer3: add aac_adtstoasc bitstream filter Add the aac_adtstoasc bitstream filter for AAC streams. In the cases where it is not needed, it does not seem to hurt, and in other cases it fixes audio playback. TODO: improve the handling of the bsfc allocation / deallocation, this should go in a Track() destructor or similar. 2015-12-25 Stefan Seyfried spark/video: implicitly do StopPicture() on CVideo::Start() This seems to be what the coolstream code does. TODO: look out for side effects (in radio mode etc...) add video_cs.h header to reduce number of #ifdefs needed 2015-12-13 Stefan Seyfried ca: add SlotType parameter to SendCAPMT() add cPlayback::GetReadCount() generic: fix build with newer openSUSE ffmpeg packages 2015-03-07 Stefan Seyfried spark: clear video in StopPicture() this fixes video playback after audioplayer or upnp browser spark/record: move buffer allocation outside record thread move the allocation of the recording buffer outside the recording thread, so that allocation failures can be communicated as "failure to start recording" instantly libeplayer3: allow disabling of AAC hardware decoder export HAL_AAC_SWDEC=1 before starting neutrino and the (slow) software decoder will be used 2015-03-07 max10 so it is better thx DboxOldie add aac.cpp THX DboxOldie 2015-02-28 Stefan Seyfried libspark/playback_libeplayer3: fix EOF signalling 2015-02-27 Stefan Seyfried spark: select highest quality stream for multi-program streams 2015-02-27 martii libspark/hardware_caps: set has_SCART unconditionally libspark: complement vendor ids libspark/hardware_caps: recognize dvfd [untested] libspark/hw_caps: check vfd version first (needed to discriminate between Pingulux and Pingulux Plus) 2015-02-25 Stefan Seyfried spark: do not freeze/continue in GetScreenImage() spark: implement GetScreenImage for video and audio 2015-02-22 Stefan Seyfried spark: implement cRecord::GetStatus() libspark: port a prior version of martii's cRecord This imports most of the changes of martii's cRecord https://gitorious.org/neutrino-hd/martiis-libstb-hal, commmit 23bea6147355e94c113ef5380c5cc8fc9b2e43a3 libtriple: remove absolute file names libeplayer3: remove absolute file names this makes debug output nicer to read for out-of-tree builds 2015-02-21 Stefan Seyfried libspark: tone down cDemux debug messages spark: remove dead code from cDemux spark: remove videodecoder hack from dmx destructor 2015-02-20 Stefan Seyfried Revert "libspark/dmx: try to fix mysterious crash with gcc4.9" This reverts commit 860d6bdbe794cd17af2f38843483442c60078762. as known by now, this had nothing to do with gcc4.9, but with the cDemux destructor racing with cDemux::Read() 2015-02-20 Stefan Seyfried libspark/playback: fix hds streams by selecting a program right now there is no way to specify which program to play, just the first one is selected spark: fix race condition in cDemux cDemux destructor was racing with Read() which did lead to all sorts of nasty crashes because after poll returned, the dmx object could be gone and its memory replaced with totally different things. 2015-02-15 Stefan Seyfried libspark/dmx: try to fix mysterious crash with gcc4.9 2015-02-13 Stefan Seyfried libeplayer3: try to fix dynamic linking libspark/playback_libeplayer3: switch to lt_info/lt_debug spark: fix compiler warning in CVideo 2015-02-13 martii libspark/video: add missing newline libspark/video: ShowPicture: use VIDEO_STILLPICTURE 2015-02-13 Stefan Seyfried libspark/irmp: fix compiler warning libeplayer3: fix compiler warning includes: remove *_td.h, we use is *_hal.h now use audio_hal.h and dmx_hal.h instead of *_td.h spark: use pkg-config for ffmpeg ldflags libeplayer: disable subtitle code current neutrino is not prepared for this, so comment it out to fix linking playback_libeplayer3: mention contributors in file header spark: adpapt playback_libeplayer3 to martii's eplayer3 code Most of this code is from martii, (see the original repo at https://gitorious.org/neutrino-hd/martiis-libstb-hal). Unfortunately our code bases have diverged enough that a proper merge or cherry- picking with git, preserving authorship and history was not possible. I do not claim authorship for most of this. 2015-02-13 Stefan Seyfried Merge branch 'martii-libeplayer3' This merges the libeplayer3 changes from martii. Does not even compile yet, libspark/player code needs to be fixed first. Conflicts: libeplayer3/Makefile.am libeplayer3/README libeplayer3/include/manager.h libeplayer3/include/misc.h libeplayer3/include/output.h libeplayer3/include/pes.h libeplayer3/include/writer.h 2015-02-06 Stefan Seyfried triple: remove videodecoder hack from dmx destructor triple: set audioDecoder to NULL in destructor this avoids blowing up in the CPlayback destructor triple: abuse dmx->getBuffer as 'dmx running' indicator 2015-01-26 Stefan Seyfried libeplayer3: add "subdir-objects" automake option 2014-08-31 martii libeplayer3/manager: use AVDISCARD_NONE instead of AVDISCARD_DEFAULT to disable programs 2014-08-25 martii libeplayer3/h264: partially revert 9112c4d16d05cb96a0ccd39c8fde7b2fa9ba23e9 2014-08-22 martii libeplayer3: implement multi-program support libeplayer3/h264: simplify 2014-07-28 martii libeplayer3/input: amend 545732a12b5bec6d93ffe1889a6b169c91d47d3d 2014-07-27 martii libeplayer3/input: disable avformat logging libeplayer3/input: don't modify avformat stream id 2014-07-19 martii libeplayer3/Makefile.am: set AUTOMAKE_OPTIONS = subdir-objects 2014-07-16 martii libeplayer3/writer: minor cleanup, no binary change 2014-06-19 martii libeplayer3/player: support bluray urls 2014-05-29 martii libeplayer3/input: allow access to AVFormatContext 2014-05-24 martii libeplayer3/writer/pcm.cpp: break potential infinite loop libeplayer3/input.cpp: filter duplicated messages 2014-05-03 Stefan Seyfried raspi: fix audio decoding with newer libavcodec Current libavcodec does no longer always return S16 sample format, but the conversion needs to be done explicitly. Use libswscale for that. Not tested on raspbian, only on yocto/ffmpeg. 2014-05-03 martii libeplayer3/input: no need for alloca() libeplayer3/input: fix SwitchVideo (unused, but anyway) 2014-05-02 martii libeplayer3: limit video frame skipping to network streams libeplayer3: skip video until first audio frame was found libeplayer3: minor adjustments 2014-05-01 martii libeplayer3: fix audio switching on already terminated playback libeplayer3/writer: add fd to writer class libeplayer3/writer: add fd to writer class libeplayer3: cleanup AVFormatContext propagation to writers libeplayer3/input: fix audio flush packet initialization 2014-04-30 martii libeplayer3/input: stream duration fix 2014-04-27 martii libeplayer3: remove flac writer (now handled by mp3 writer) libeplayer3: remove flac writer (now handled by mp3 writer) libeplayer3/writer: implement decoder flushing 2014-04-26 martii libeplayer3/writer/pcm: remove debug output libeplayer3/writer/pcm: move reinit code out of packet loop libeplayer3/writer: remove constructors/destructors from writer class libeplayer3/Makefile: minor rewrite libeplayer3: move calcPts to Input class libeplayer3/output: unbreak GetFrameCount() libeplayer3/writer/pcm: simplify libeplayer3/input: unbreak dvbsub pts calculation 2014-04-21 martii libeplayer3/writer/pcm: cleanup libeplayer3/writer/pcm: simplify pts handling libeplayer3/writer/pcm: minor adjustments 2014-04-18 martii libeplayer3: minimize debug output libeplayer3: fix backward mode libeplayer3: use av_rescale for pts calulations libeplayer3/input: disable noprobe and retry if probing fails 2014-04-16 martii libeplayer3: minor adjustments 2014-04-15 martii libeplayer3/writer/pcm: unbreak libeplayer3/input: don't segv in deconstructor libeplayer3: optimizations (untested) 2014-04-14 martii libeplayer3: use uint64_t instead of float/double for position calculations 2014-04-13 martii libeplayer3/output: reset stream variables after Close() libeplayer3: minor optimization libeplayer3/input: increase probesize 2014-04-12 martii libeplayer3/input: fix AV_CODEC_ID_MP2 usage 2014-04-11 martii libeplayer3 adjustments libeplayer3: cast away compiler warning libeplayer3: cleanup libeplayer3: ffmpeg now provides teletext details in codec->extradata 2014-04-10 martii libeplayer3: cleanup libeplayer3: work around duplicate ffmpeg stream ids by comparing stream addresses instead of pids (plus a couple of optimizations) libeplayer3/input: rename some variables libeplayer3/output: remove redundant videofd check libeplayer3/writer: unsigned char => uint8_t 2014-04-09 martii libeplayer3/Makefile: disable debugging flags libeplayer3: extend API 2014-04-08 martii libeplayer is now C++, no more need for extern "C" to access Neutrino functions libeplayer3: rename player thread libeplayer3: change compile options libeplayer3: track update: remove redundant teletext pid from return string libeplayer3: continue refresh 2014-04-07 martii libeplayer3: cleanups libeplayer3: rename files libeplayer3: remove debug.h libeplayer3: merge Playback to Player class libeplayer3: implement Playback and Input classes 2014-04-06 martii libeplayer3: implement Manager class libeplayer3: rename linuxdvb.cpp => output.cpp libeplayer3: implement Output class libeplayer3: eliminate intermediate output layer libeplayer3: rename common.h => player.h libeplayer3: rename Content_t => Player libeplayer3: remove unused code libeplayer3: implement Writer class 2014-04-05 martii libeplayer: simplify writer/pcm libeplayer3: remove writeReverseData (unused) libeplayer3: cleanup pcm writer libeplayer: cleanup writers libeplayer3: unbreak ipcm libeplayer3: let writers use AVPacket libeplayer3: c++ adjustments libeplayer3: rename to c++ libeplayer3: delete include/aac.h (unused) libeplayer3: remove wmv version (unused) libeplayer: remove inject_raw_pcm (unused) libeplayer3: move audio resampling to dedicated ipcm writer libeplayer3: move width/height/framerate/timescale calculation to writers libeplayer3: change extradata handling libeplayer3: remove writer/wma.c and writer/aac.c (handled by ffmpeg instead) libeplayer3: make ffmpeg data available to manager, output and writer libeplayer3: cleanup types libeplayer3: remove tools libeplayer3: remove tools 2014-04-03 martii libeplayer/container_ffmpeg: switch to ffmpeg 2.0 API 2014-03-26 martii libeplayer3/container_ffmpeg: remove latestPts variable 2014-03-23 martii libeplayer3: more cleanups libeplayer3: remove no longer needed teletext output handling libeplayer3: change teletext handling to directly inject packets in tuxtext libeplayer3: cleanup unused code libeplayer3/container_ffmpeg: fix seek bitrate calculation 2014-03-22 martii libeplayer3/container_ffmpeg: don't set pts if audio-only libeplayer3: initalize AVSubtitle libeplayer3: remove debugging output; abort if neither an audio nor a video stream is available 2014-03-21 martii cleanup libeplayer3: remove subtitle.h libeplayer3/container_ffmpeg: drop subtitle.h include libeplayer3: cleanup libeplayer3: subtitles will now be displayed by neutrino 2014-03-16 martii libeplayer3: let neutrino handle bitmap subtitles 2014-03-09 martii eplayer3: fix playback termination handling eplayer3: fix playback termination handling 2014-02-23 Stefan Seyfried start versioning libstb-hal add dummy cPlayback GetTitles() and SetTitle(); libtriple: do not read from invalid dmx 2014-01-28 Stefan Seyfried update ca.h to currently used interface 2014-01-25 Stefan Seyfried triple: hack cDemux::GetSource() 2014-01-23 Stefan Seyfried remove obsolete copies of mmi.h include/mmi: fix spelling (but keep compatibility) 2014-01-19 martii libeplayer3/libspark: cPlayback: implement retrieval of metadata 2014-01-18 martii libeplayer3/container_ffmpeg: fix metadata access 2013-12-30 martii libeplayer3/playback: fix seeking/neutrino bookmarks libeplayer3, libspark/playback_libeplayer3: chapter support libeplayer3/container_ffmpeg: only log ffmpeg errors at debug_level > 10 libeplayer3/container_ffmpeg: don't modify AVPacket internals (I don't believe this actually hurts, but better safe than sorry) libeplayer3/linuxdvb: reduce debug spam libspark/playback: speed up abort libeplayer3: cleanup, indent libeplayer3: fix audio recoding, yt aac stuttering should be gone now libeplayer3/playback: disable debugging output libeplayer3/ffmpeg: minor cleanup fix last commits libeplayer3: run through indent, no binary change libeplayer3/container: fix compiler warning libeplayer3/ffmpeg: rearrange seeking code libeplayer3/ffmpeg: don't initialize container if context already exists libeplayer3: fix seeking libeplayer3/ffmpeg: add 3gp and ogm extensions libeplayer3: modify fast-backward tools/spark_fp: add flashing period option tools/spark_fp: add option for enabling/disabling icons libspark/audio, libeplayer3: audio type adjustments 2013-12-28 martii libeplayer3/playback: fix seeking/neutrino bookmarks 2013-12-28 Stefan Seyfried playback: add MAX_PLAYBACK_PIDS define TODO: actually fix the code to return more than 10 PIDs. 2013-12-26 Stefan Seyfried libspark: add missing librt to linker flags libspark: add missing unistd.h includes for gcc 4.7+ 2013-12-23 martii libeplayer3, libspark/playback_libeplayer3: chapter support 2013-12-21 Stefan Seyfried pic2m2v: implement as a script The C code was only calling ffmpeg binary anyway... Additionally create a md5 sum of the input file to avoid unnecessary conversions. 2013-12-17 martii libeplayer3/container_ffmpeg: only log ffmpeg errors at debug_level > 10 2013-12-15 martii libeplayer3/container_ffmpeg: don't modify AVPacket internals (I don't believe this actually hurts, but better safe than sorry) libeplayer3/linuxdvb: reduce debug spam 2013-12-11 martii libspark/playback: speed up abort 2013-12-09 martii libeplayer3: cleanup, indent libeplayer3: fix audio recoding, yt aac stuttering should be gone now 2013-12-02 Stefan Seyfried libtriple: avoid race conditions in cVideo::ShowPicture ShowPicture() and Stop() were racing, and the calling order from neutrino seems to be not necessarily "correct". With gcc-4.8 / glibc-2.16 binaries it happened that on switching to radio mode, ShowPicture() was called and then the Stop() from stopping video playback happened. This broke the stillpicture. Fix by adding more locks and explicitly bailing out of Stop() if a picture is shown. libtriple: load blank mpegs from DATADIR 2013-11-24 Stefan Seyfried libtriple: fix build with yocto gcc-4.8.1/eglibc-2.16 toolchain 2013-11-23 martii libeplayer3/playback: disable debugging output 2013-11-22 martii libeplayer3/ffmpeg: minor cleanup 2013-11-21 martii fix last commits libeplayer3: run through indent, no binary change libeplayer3/container: fix compiler warning libeplayer3/ffmpeg: rearrange seeking code libeplayer3/ffmpeg: don't initialize container if context already exists 2013-11-19 martii libeplayer3: fix seeking libeplayer3/ffmpeg: add 3gp and ogm extensions 2013-11-17 martii libeplayer3: modify fast-backward 2013-11-11 martii libspark/audio, libeplayer3: audio type adjustments 2013-11-09 Stefan Seyfried libspark/eplayer3: fix ffmpeg linker flags libspark: fix build after libeplayer update only build tested for now. libeplayer3: fix merge errors 2013-11-09 martii libstb-hal/libspark/playback: add method for retrieving read-count libeplayer3: speed up termination libspark/player, libeplayer3/ffmpeg: improve termination handling libspark/player: use int instead of short in some places libeplayer3/ffmpeg: minor cleanup libeplayer3/playback: convert mms urls to mmst instead of rtsp libeplayer3/manager: initialize track IDs libeplayer3: tracks update is now lock-free libeplayer3/container_ffmpeg: mutex fix libeplayer3/wmv: revert to (almost) original version libeplayer/text_srt: minor optimization libeplayer3: drop non-shared framebuffer support libeplayer3: unbreak srt subs libeplayer3: cleanup libeplayer3: vc1, wmv: use InsertPesHeader for initial PES headers, too libeplayer3/output/writer/: remove PesHeader memset (both wrong and unneeded) libeplayer3 optimizations libeplayer3/container_ass: cosmetics libeplayer3/container_ffmpeg: cleanup libeplayer3/writer/framebuffer: small optimization libeplayer3/container_ass: set thread name libeplayer3/pcm: cleanup libeplayer3/pcm: minor clean-up, no code change Fix libeplayer3's broken PCM injection implementation. Jumps in movieplayer now works without losing a/v sync. libeplayer3/container_ffmpeg: don't flush instead of clear libeplayer3: use uint32_t for frame buffer access libeplayer3/continer_ass: crude hack to improve subtitle readability libeplayer3/subtitles/spark: use backbuffer and blit libeplayer3/container_ass: font size adjusted libeplayer/playback: disable subtitle init hack libeplayer3/subtitle: reduce debugging level libeplayer3: initial attempt to unbreak ass/ssa subtitles libeplayer/linuxdvb: cleanup libeplayer3/containter_ffmpeg: fix track update libeplayer3/container_ffmpeg: no need for copying the input packet libeplayer/container_ffmpeg: subtitle fix libeplayer3/container_ffmpeg.c: re-order packet.data check (not sure whether this is needed at all) libeplayer/container_ffmpeg: correct misplaced brackets libeplayer3/container_ffmpeg: initialize stream ids, if unset libeplayer3/container_ffmpeg: av_samples_alloc: use actual number for channels libeplayer3/container_ffmpeg: align av_samples_alloc buffer libeplayer3/container_ffmpeg: fix mono->stereo conversion libeplayer/container_ffmpeg: audio pts fix libeplayer3: remove outdated include/stm_ioctl.h container_ffmpeg: flush streams immediately after seek libeplayer3: cleanup libeplayer: reduce debugging output h264: don't mess with packet length libeplayer3/h264: unbreak libeplayer3/container_ffmpeg: No attributes needed for mutex init libeplayer3 cleanup libeplayer3/h264 cleanup libeplayer3: experimental h.264 playback fix libeplayer3: cleanup libeplayer3: use actual pids instead of indexes ffmpeg-2.0 libeplayer3/container_ffmpeg: revert swr_next_pts call libeplayer3: minor changes libeplayer3: re-enable audio after seeking (still broken) libeplayer3: need to call avcodec_free_frame after swresample, too libeplayer3: the mp3 handler can easily take care of vorbis data, too. libeplayer3: vorbis can easily be handled by the mp3 writer libeplayer3/h264: disable debugging libeplayer3: get rid of compiler warnings libeplayer3: drop legacy ffmpeg support libeplayer/h264: Fix playback. libeplayer3: deactivate debugging libeplayer3: cleanup libeplayer3: further malloc-memcpy-write -> writev replacements; not fully regression tested libeplayer3/h264: replace malloc/memcpy/write with writev libeplayer3: drop buffering code due to crashes replace libavresample with libswresample libeplayer reverse play: experimental adjustment to find previous I-frame libeplayer3: fix segv eplayer3: subtitle fixes crude hack for movieplayer tuxtxt integration teletext handling changes libeplayer3: dynamically update pid list libeplayer/container_ffmpeg: use injected PCM for raw PCM, too libeplayer3/container_ffmpeg: handle .wtv extensions, too libeplayer3/container_ffmpeg: fix WMA playback libeplayer3: add callback to abort avformat_open_input libeplayer3/container_ffmpeg: cleanup libeplayer3: merge buffered IO code from TDT; implement proper audio resampling libeplayer3/container_ffmpeg: minor cleanup libeplayer3/container_ffmpeg: no need to scale the buffer libeplayer3: this may improve recovery from broken streams libeplayer3: switch back to software decoding for AAC; crude fix for PCM injection (newer ffmpeg versions return floats instead of shorts), injected PCM streams (OGG, for example), will now work again. I'd be grateful if anybody with a deeper understanding of the FFMPEG API would supply a cleaner fix ... libeplayer: set 65535 as maximum PES length libeplayer: assume unlimited PES length for too large packets libeplayer3: experimental fixes libeplayer/playback: initialize length to -1 libeplayer3 fix libeplayer3: check for valid avContext pointer improve subtitle handling libspark/libeplayer: rudimentary subtitle support, probably unstable get rid of most compiler warnings 2013-11-09 martii fix indent libeplayer3: add support for teletext and dvbsubtitle streams 2013-11-09 Stefan Seyfried libtriple: fix memory allocation size spark: add missing initialization of flt variable generic-pc: fix exporting of vdec 2013-11-07 Stefan Seyfried raspi: rename EGL_CFLAGS to OMX_CFLAGS we are not really interested in EGL but in OpenMAX ;-) 2013-11-04 martii libstb-hal/libspark/playback: add method for retrieving read-count 2013-11-03 Stefan Seyfried raspi: comment unused variable which breaks newer ffmpeg raspi: update egl configure hack raspi: use egl packages if available install library headers all: clean up cRecord header, hide private stuff all: clean up pwrmngr header file 2013-11-02 Stefan Seyfried all: clean up cPlayback header, hide private stuff compile tested only ;) spark: use proc_tools move glfb.h to include dir all: clean up cAudio header, separate private stuff all: clean up cVideo header, separate private stuff all: clean up cDemux headers 2013-11-02 martii libeplayer3: speed up termination 2013-11-02 Stefan Seyfried all: clean up cs_api.h / init_td.h 2013-11-02 martii libspark/player, libeplayer3/ffmpeg: improve termination handling 2013-11-01 Stefan Seyfried generic-pc: clean up cAudio header, separate private stuff raspi: clean up cAudio header generic-pc: remove unused stuff from playback.h header generic-pc: fix build with gcc 4.8 raspi: add missing include dir 2013-10-31 martii libspark/player: use int instead of short in some places 2013-10-31 Stefan Seyfried generic-pc: rework glfb / cVideo internals * hide implementation details in private classes / objects * remove unneccessary internals from library include files The goal is to finally have identical include files for all platforms to faciliate easy cross-platform library installation. 2013-10-27 Stefan Seyfried move dependent headers into one directory in preparation of proper installation of the lib 2013-10-22 Stefan Seyfried raspi: add support for MPEG2 TODO: check if the MPEG2 license is present (and warn if not) raspi: cover the linux framebuffer with black background 2013-10-21 Stefan Seyfried generic-pc: don't crash in getAudioInfo if no codec is set playback: add dummy RequestAbort() functions raspi: first try of aspect ratio setting this needs more work / testing with 4:3 input material raspi: improve set_volume raspi: first implementation of PIG in AVDec raspi/glfb: export info about display 2013-10-20 Stefan Seyfried raspi/avdec: improve demux read function raspi/AVDec: various improvements for A/V decoders * retry on errors in the decoding loop * better interaction with avcodec_omx raspi/avcodec_omx: various hacks to the state machine * fix invalid locking when for MSG_NEWCHANNEL * fix restarting video decoder with proper omx teardown raspi/codec: fix memleak when skipping packets raspi/avdec: allow setting audio out via RASPI_AUDIO variable raspi/omx_utils: fix ordering of shutdown sequence apparently, all ports need to be disabled before the inter-component tunnels are teared down, otherwise video_decodeRIL:image pool objects will leak see http://www.raspberrypi.org/phpBB3/viewtopic.php?f=70&t=48177 raspi/glfb: clean up objects on exit, remove double buffer 2013-10-19 Stefan Seyfried raspi: fix ordering of AVDec and GLFB it looks like the videocore libs are leaking objects if OMX_Init() is called after the dispmanx setup, so do it in the correct order 2013-10-14 Stefan Seyfried fix wrong libtool initialization order allow to build dynamic libraries (but keep static as default) 2013-10-13 Stefan Seyfried raspi/avcodec_omx: set thread names lt_debug: use C linkage, allows usage from non-C++ code raspi: use decoder implementation from pidvbip * remove ilclient * use a decoder implementation similar to pidvbip instead, see https://github.com/linuxstb/pidvbip * video is decoded in hardware (videocore) * audio is decoded by libavcodec * add a AVDec wrapper class for both audio and video decoders * very raw, needs more polishing. But decodes audio and video :-) * only tested with h264 2013-10-12 martii libeplayer3/ffmpeg: minor cleanup 2013-10-10 Stefan Seyfried raspi: add first try of video decoder implementation This is very raw and unfinished, it clearly needs some more polishing. But it decodes h264 channels :-) raspi: switch demux target to internal decoder 2013-10-09 Stefan Seyfried raspi: add ilclient files these are from the raspberrypi firmware git example apps that show how to use the videocore for encoding / decoding. I'll try to use them for accessing the a / v decoders. License is 3-Clause BSD and thus compatible with GPLv2. 2013-10-05 Stefan Seyfried add skeleton for Raspberry Pi support no audio / video decoding, yet :-( add set_threadname function 2013-09-28 Stefan Seyfried spark: implement stuff needed for PIP note that this does now work well at least on st7162 and thus is not really tested. cVideo: add dummy functions for PIP stuff 2013-09-22 Stefan Seyfried azbox: remove unneeded hacks from cVideo azbox: add cDemux hack to avoid segfaults/corruption azbox: adapt cDemux to latest drivers azbox: adapt cAudio to latest drivers 2013-09-21 Stefan Seyfried azbox: add O_CLOEXEC to open() 2013-08-18 martii libeplayer3/playback: convert mms urls to mmst instead of rtsp 2013-08-16 martii libeplayer3/manager: initialize track IDs libeplayer3: tracks update is now lock-free libeplayer3/container_ffmpeg: mutex fix 2013-08-15 martii libeplayer3/wmv: revert to (almost) original version 2013-08-04 martii libeplayer/text_srt: minor optimization libeplayer3: drop non-shared framebuffer support libeplayer3: unbreak srt subs 2013-08-02 martii revert 286675f430d530108eed8a3b6051895618ae4e06 libeplayer3: divx fix libeplayer3: cleanup libeplayer3: vc1, wmv: use InsertPesHeader for initial PES headers, too 2013-08-01 martii libeplayer3/output/writer/: remove PesHeader memset (both wrong and unneeded) 2013-07-29 martii libeplayer3 optimizations 2013-07-28 martii libeplayer3/container_ass: cosmetics libeplayer3/container_ffmpeg: cleanup libeplayer3/writer/framebuffer: small optimization libeplayer3/container_ass: set thread name libeplayer3/pcm: cleanup libeplayer3/pcm: minor clean-up, no code change Fix libeplayer3's broken PCM injection implementation. Jumps in movieplayer now works without losing a/v sync. 2013-07-27 martii libeplayer3/container_ffmpeg: don't flush instead of clear libeplayer3: use uint32_t for frame buffer access libeplayer3/continer_ass: crude hack to improve subtitle readability libeplayer3/subtitles/spark: use backbuffer and blit 2013-07-26 martii libeplayer3/container_ass: font size adjusted libeplayer/playback: disable subtitle init hack libeplayer3/subtitle: reduce debugging level libeplayer3: initial attempt to unbreak ass/ssa subtitles 2013-07-24 martii libeplayer/linuxdvb: cleanup libeplayer3/containter_ffmpeg: fix track update 2013-07-23 martii libeplayer3/container_ffmpeg: no need for copying the input packet libeplayer/container_ffmpeg: subtitle fix 2013-07-22 martii libeplayer3/container_ffmpeg.c: re-order packet.data check (not sure whether this is needed at all) 2013-07-21 martii libeplayer/container_ffmpeg: correct misplaced brackets libeplayer3/container_ffmpeg: initialize stream ids, if unset libeplayer3/container_ffmpeg: av_samples_alloc: use actual number for channels libeplayer3/container_ffmpeg: align av_samples_alloc buffer libeplayer3/container_ffmpeg: fix mono->stereo conversion libeplayer/container_ffmpeg: audio pts fix 2013-07-20 martii libeplayer3: remove outdated include/stm_ioctl.h container_ffmpeg: flush streams immediately after seek 2013-07-19 martii libeplayer3: cleanup libeplayer: reduce debugging output h264: don't mess with packet length 2013-07-14 martii libeplayer3/h264: unbreak libeplayer3/container_ffmpeg: No attributes needed for mutex init libeplayer3 cleanup libeplayer3/h264 cleanup libeplayer3: experimental h.264 playback fix libeplayer3: cleanup 2013-07-12 martii libeplayer3: use actual pids instead of indexes 2013-07-10 martii ffmpeg-2.0 2013-07-07 martii libeplayer3/container_ffmpeg: revert swr_next_pts call libeplayer3: minor changes libeplayer3: re-enable audio after seeking (still broken) 2013-07-06 martii libeplayer3: need to call avcodec_free_frame after swresample, too 2013-06-19 martii sync with seife 2013-06-16 Stefan Seyfried modernize configure.ac and Makefile.am autoconf-1.13 has new warnings, silence them by updating the buildsystem modernize configure.ac and Makefile.am autoconf-1.13 has new warnings, silence them by updating the buildsystem cPlayback: add new API functions for DVD chapter/subtitles right now these are mostly dummies... 2013-06-13 martii libeplayer3: the mp3 handler can easily take care of vorbis data, too. 2013-06-10 martii libeplayer3: vorbis can easily be handled by the mp3 writer libeplayer3/h264: disable debugging libeplayer3: get rid of compiler warnings libeplayer3: drop legacy ffmpeg support libeplayer/h264: Fix playback. 2013-06-08 martii libeplayer3: deactivate debugging libeplayer3: cleanup libeplayer3: further malloc-memcpy-write -> writev replacements; not fully regression tested libeplayer3/h264: replace malloc/memcpy/write with writev 2013-06-07 martii libeplayer3: drop buffering code due to crashes 2013-06-01 Stefan Seyfried generic-pc: implement cDemux::getSTC() generic-pc: increase video and audio demux buffer cDemux: fix error reporting vor video, audio, ... channels generic-pc: help finding missing blit() calls generic-pc: improve decoder info messages generic-pc: silence decoder threads output generic-pc: implement cAudio::getAudioInfo() 2013-06-01 martii replace libavresample with libswresample 2013-06-01 Stefan Seyfried generic-pc: add audio sample conversion ffmpeg audiodecoders after version 1.1 deliver audio samples in planar formats by default instead of packed as before. Additionally, the AC3 decoder delivers now in planar float. Use libswresample for sample format conversion, this will work with old (where it hopefully does nothing) and new ffmpeg versions. Later on, also sample rate and channel layout conversion could be implemented if desired. Tested with ffmpeg versions 1.0.6 and 1.2.1. fix library declarations for libtool 2013-05-27 Stefan Seyfried configure: specify the needed ffmpeg versions generic-pc: add Pig function to cVideo / GLFB generic/glfb: add a few keys to F5-F8 2013-05-26 Stefan Seyfried generic-pc/video: implement getScreenImage (experimental) generic-pc/video: reuse swscale context 2013-05-25 Stefan Seyfried triple: fix compile breakage in video.h video: ensure VIDEO_STD_MAX is big enough 2013-05-24 Stefan Seyfried generic-pc: add audiplayer support to cAudio generic-pc: implement cVideo::ShowPicture() generic-pc: without decoding, no PCR demux is needed 2013-05-10 Stefan Seyfried generic-pc: allow to disable softdecoder for debugging demux: define MAX_DMX_UNITS (not yet used) acinclude: fix variable expansion issues configure: silence automake warnings 2013-05-06 Stefan Seyfried GLFB: remove unused 3D cube code GLFB: slightly better fullscreen handling GLFB: hide mouse cursor 2013-05-05 Stefan Seyfried cRecord: fix compiler warning (type mismatch) generic-pc: use HD framebuffer resolution Use 1280x720 instead of 720x576 as default. The resolution can be changed via the environment variable GLFB_RESOLUTION. generic/cVideo: implement setAspectRatio / setVideoSystem GLFB: implement missing functions * output format (screen size) setting * aspect ratio setting * cropping, scaling (letterbox/panscan) * full screen mode (experimental, hit "f" key) * add EPG key ("e") 2013-05-04 Stefan Seyfried GLFB: add a few sanity checks for sleep interval GLFB: fix X window at 16:9 aspect ratio GLFB: add video aspect ratio handling generic-pc/video: improve video decoder * add aspect ratio reporting * "correct" buffer PTS by 300ms for better AV-Sync with MPEG2 * remove unneeded stuff generic-pc/glfb: add some sort of A/V synchronization generic-pc/audio: initialize curr_pts generic-pc/dmx: route audio and video to the SW decoders generic-pc: initialize GL framebuffer in init() generic-pc: add openGL based framebuffer implementation generic-pc: add somewhat working video decoder generic-pc: add somewhat working audio decoder acinclude: fix for pkg-config 0.28 behaviour Old pkg-config always retured a non-empty string for --cflags. It always contained at least one bogus space. New pkg-config does not do that. Do not rely on --cflags being non-empty. 2013-04-11 martii libeplayer reverse play: experimental adjustment to find previous I-frame 2013-04-10 martii libeplayer3: fix segv 2013-04-01 martii eplayer3: subtitle fixes 2013-03-31 martii crude hack for movieplayer tuxtxt integration 2013-03-29 martii teletext handling changes 2013-03-25 martii libeplayer3: dynamically update pid list 2013-03-24 Stefan Seyfried spark: tone down two dmx messages to debug 2013-03-18 martii libeplayer3/playback_libeplayer3: change noprobe handling 2013-03-17 martii libeplayer/container_ffmpeg: use injected PCM for raw PCM, too 2013-03-16 martii libeplayer3/container_ffmpeg: handle .wtv extensions, too libeplayer3/container_ffmpeg: fix WMA playback 2013-03-10 martii libeplayer3: add callback to abort avformat_open_input 2013-03-09 martii libeplayer3/container_ffmpeg: cleanup libeplayer3/container_ffmpeg: cleanup libeplayer3: merge buffered IO code from TDT; implement proper audio resampling 2013-03-04 martii libeplayer3/container_ffmpeg: minor cleanup libeplayer3/container_ffmpeg: no need to scale the buffer 2013-03-03 Stefan Seyfried triple: avoid a crash in cPlayback destructor 2013-03-03 martii libeplayer3: this may improve recovery from broken streams libeplayer3: switch back to software decoding for AAC; crude fix for PCM injection (newer ffmpeg versions return floats instead of shorts), injected PCM streams (OGG, for example), will now work again. I'd be grateful if anybody with a deeper understanding of the FFMPEG API would supply a cleaner fix ... 2013-03-02 Stefan Seyfried triple: fix wrong length in cDemux::sectionFilter() 2013-02-26 martii libeplayer: set 65535 as maximum PES length libeplayer: assume unlimited PES length for too large packets 2013-02-24 Stefan Seyfried spark: fix compiler warning in cVideo implement cDemux::GetSource() cDemux: fix removePid / pesfds usage cDemux: add copyright header cDemux::sectionFilter: fix invalid length calculation spark_fp: add options for setting led status from git://gitorious.org/~martii/neutrino-hd/martiis-libstb-hal.git libspark/hw_caps: add more stb ids from git://gitorious.org/~martii/neutrino-hd/martiis-libstb-hal.git 2013-01-30 martii sync with seife 2013-01-25 graugans fixed the debug output to match the correct device 2013-01-23 Stefan Seyfried libtriple: fix measurement demux speed libtriple: fix neutrino streamdev 2013-01-17 martii libeplayer3: experimental fixes 2013-01-13 Stefan Seyfried video_td.h: add compat define for SCREENSHOT triple: add a sanity check to cVideo::GetScreenImage 2013-01-12 Stefan Seyfried triple: implement cVideo::GetScreenImage 2012-12-01 Stefan Seyfried deuglify library build * build intermediate libraries for each subdirectory * link those libs in main directory instead of single objects * ugly hack in configure.ac to disable dynamic lib for now deuglify library build * build intermediate libraries for each subdirectory * link those libs in main directory instead of single objects * ugly hack in configure.ac to disable dynamic lib for now 2012-11-24 Stefan Seyfried azbox: handle rmfp_player failures/features more graceful 2012-11-21 Stefan Seyfried azbox: disable video output on standby atbox: make cDemux more robust * workaround hanging Read() if frontend loses and regains lock * set DMX_ONESHOT for TDT and TOT sections (this is the same as commit fe7b385660 for spark) 2012-11-18 Stefan Seyfried azbox: mostly rewrite cPlayback rmfp_player wrapper * use the file based /tmp/rmfp.{cmd2,in2,out2} interface instead of the previously used FIFOs, this seems more reliable * convert code to lt_debug/lt_info infrastructure 2012-11-16 Stefan Seyfried azbox: rework cPlayback rmfp_player wrapper it now actually plays something, but will need more love lt_debug: add HAL_* constants to allow renaming 2012-11-12 martii libeplayer/playback: initialize length to -1 2012-11-11 Stefan Seyfried add pic2m2v for bulk-creating the still-mpegs 2012-11-10 martii libeplayer3 fix 2012-11-09 martii libeplayer3: check for valid avContext pointer 2012-11-06 martii improve subtitle handling 2012-11-04 martii sync libspark/libeplayer: rudimentary subtitle support, probably unstable 2012-11-03 Stefan Seyfried libeplayer3: sync with tdt git commit 06fe782fd6 This ports this commit: Author: Matthias Date: Fri Oct 26 19:54:46 2012 +0200 [libeplayer3] enable wav payback (16 bit le) 2012-11-03 Stefan Seyfried libeplayer3: sync with tdt git commit 06fe782fd6 This ports this commit: Author: Matthias Date: Fri Oct 26 19:54:46 2012 +0200 [libeplayer3] enable wav payback (16 bit le) 2012-10-27 martii get rid of most compiler warnings enable wav payback (16 bit le) (from TDT, thanks hellmaster1024) 2012-10-12 Stefan Seyfried cRecord: fix last commit adapt cRecord API to coolstream changes 2012-10-08 Stefan Seyfried add implementation for boxtype "generic" This is mostly a dummy implementation except for the dmx class which should be working. It is intended for testing on PCs with budget DVB cards which don't have a decoder anyway. 2012-10-04 martii libeplayer3: disable noprobe hack sync 2012-10-04 Stefan Seyfried spark: speed up playback start for PLAYMODE_TS libeplayer3: fix invalid free() according to the man pages.... * dirname() can not return NULL * the pointer returned by dirname must not be free()d * strdup() can return NULL libeplayer3: fix invalid free() according to the man pages.... * dirname() can not return NULL * the pointer returned by dirname must not be free()d * strdup() can return NULL 2012-10-03 Stefan Seyfried libeplayer3: sync with tdt git commit fed2a419dc libeplayer3: sync with tdt git commit fed2a419dc libeplayer3: add hack to decrease libavcodec probe size almost disable the libavcodec format probing when using "myts://" instead of "file://" urls to improve startup speed for timeshift etc libeplayer3: add hack to decrease libavcodec probe size almost disable the libavcodec format probing when using "myts://" instead of "file://" urls to improve startup speed for timeshift etc 2012-09-29 Stefan Seyfried spark: add demuxer init hack 2012-09-22 Stefan Seyfried spark: make cDemux more robust * workaround hanging Read() if frontend loses and regains lock * set DMX_ONESHOT for TDT and TOT sections spark: let cRecord use the demux passed as parameter spark: make cDemux multi-tuner compatible ...which is more complicated than it seems at first glance, due to the restrictions of the sh4 pti driver... 2012-09-16 Stefan Seyfried spark: improve hardware_caps detection 2012-09-15 Stefan Seyfried add hardware_caps header First version of a "hardware capabilites information" struct. This is intended to help clean up the mess in the neutrino GUI. Surely needs some more work and ongoing changes 2012-09-11 Stefan Seyfried spark_fp: add option to find out the frontpanel type this needs my latest patched aotom driver again... 2012-08-31 martii eplayer3 h263 fix 2012-08-13 martii fix indent 2012-08-04 martii libeplayer3: add support for teletext and dvbsubtitle streams 2012-07-29 Stefan Seyfried cDemux: add dummy SetSource() for coolstream compatibiliy ca.h: add dummy functions to sync up with libcoolstream libcoolstream has added the functions SendCAPMT(), GetCAIDS() and SetTSClock(). Add stubs to get compatibility. 2012-07-28 Stefan Seyfried correctly declare AVSYNC_TYPE 2012-07-27 martii fix some movieplayer issues 2012-07-21 martii libeplayer3: sync with tdt 2012-07-15 Stefan Seyfried spark,azbox: make demux FD nonblocking ...except for DMX_PSI_CHANNEL, which does not seem to expect that. 2012-07-14 Stefan Seyfried azbox: reset PIG during videodecoder init triple: implement cVideo::getBlank() another hack :-) make the "blank" still-mpg 24fps and then check in getBlank() if the framerate is still 24fps, which means that no video has been decoded since blanking triple: add necessary locking for inbuf_pos in cPlayback 2012-07-13 martii support newer ffmpeg versions 2012-07-05 Stefan Seyfried spark: implement cVideo::getBlank() this is a hack: the "mailbox" irq count does not increase if the decoders are not decoding, so we use this to determine if the video is in really playing. 2012-06-24 Stefan Seyfried azbox: fix values in cVideo::SetVideoSystem azbox: fix cVideo::setBlank the (VIDEO_STOP,1) ioctl does not blank video, so write a black still-mpeg into the decoder to blank the display, (similar to the tripledragon code) azbox: split up cVideo::ShowPicture create a new show_iframe function which just gets the still-mpeg data passed from ShowPicture azbox: fix cAudio::do_mute create common proc_tools proc_put, proc_get and proc_get_hex are used in many files. Avoid duplication by moving them to common/proc_tools.c. Convert azbox's cVideo to use proc_tools.h azbox: fix cVideo::ShowPicture 2012-06-23 Stefan Seyfried azbox: implement cVideo::getBlank azbox: improve cVideo::setAspectRatio azbox: terminate string in video/proc_get 2012-06-18 Stefan Seyfried first preliminary AZzbox ME support TODO: some code is very similar to SPARK (record and pwrmngr are just symlinked, dmx is almost identical). Reduce duplication by factoring out DVBAPI code into an extra directory. * what works: audio, video, demux * what probably doesn't work or is untested: record * what very likely doesn't work: playback Playback is just copied over from aztrino and made to compile. If you are lucky, it just segfaults :-) fix build after cCA move... move dummy cCA implementation to commmon/ directory 2012-06-08 Stefan Seyfried spark: fix framerate from cVideo::getPictureInfo() spark: implement cVideo::SetSyncMode() inspired by evolux, but much simpler spark: fix invalid initialization order in cVideo (how could this ever work? no idea). Found in evolux patches. spark: implement AC3 passthrough on SPDIF and HDMI Note: untested (no hardware). AC3 on HDMI will only work if AC3 on SPDIF is also selected. spark: fix invalid debug in cAudio::PrepareClipPlay spark: add (and use) proc_put() to audio.cpp 2012-05-01 Stefan Seyfried spark_fp: improve wakeup time for short timeouts 2012-04-15 Stefan Seyfried spark: add spark_fp tool this needs my patched aotom driver to work use crosscompile-friendly AC_PATH_TOOL to find pkg-config 2012-04-14 Stefan Seyfried spark: add 1080p50 videomode (needs neutrino fix) 2012-04-08 Stefan Seyfried libeplayer3: silence a seemingly harmless warning libeplayer3: silence a seemingly harmless warning spark: improve libeplayer3 playback for timeshift * open output only when really starting playback, just pause videodecoder before, so that still picture on timeshift works * adapt to strange neutrino calling conventions, so that jump-on- start works for pause -> play -> stop (live) -> pause again sequence for timeshift works TODO: the startup for H264 timeshifting is too slow, needs improvement spark: add hack to simulate the timeshift file length spark: make cRecord more error resilient * use aio to improve things for slow recording media (heavily loaded NFS server for example) * in case of a buffer overflow, don't stop the recording but simply drop a buffer A proper aio implementation would involve multiple buffers that could be queued in paralled, but that's much more complex, so let's see if the current code works out well enough. 2012-04-05 Stefan Seyfried spark: temporary (for testing) map "auto" video mode to 1080p50 2012-04-01 Stefan Seyfried spark: return true for EOF in cPlayback::GetPosition spark: set new videomode only if it differs from current spark: fix getAspectRatio and getPictureInfo in MP mode 2012-03-30 Stefan Seyfried triple: fix TODO in cVideo::ShowPicture() rebuild the MPEG stillpicture if the source jpeg has changed additionally check for zero sized m2v from broken ffmpeg versions (the same as commit ee1a408f9b on spark) 2012-03-25 Stefan Seyfried triple: improve DFB->uinput routines * use kernel input device repeat instead of generating selfmade repeat events, this allows using input device rate settings * add frontpanel left/right buttons, their keycodes differ from the rc buttons 2012-03-17 Stefan Seyfried spark: do not start IRMP thread if lircd is running This will provide a smooth switchover to using LIRC instead of IRMP: if the lircd is running (pidfile present), don't start the input thread. Neutrino will use the LIRC-created uinput device instead. 2012-03-08 Stefan Seyfried audio: add new enums for HDMI 2012-03-07 Stefan Seyfried dmx: fix web streaming by allowing PID 0 for pesFilter() spark: compensate for differing AC3/MPEG volume Maybe the 30/53 formula neeeds some tuning, we'll find out... 2012-03-06 Stefan Seyfried triple: fix audio mute state after fast-forwarding in playback libtriple: implement option to keep LCD backlight on in standby Based on an idea by Kim Danielmeier, keep the backlight on if TRIPLE_LCDBACKLIGHT environment variable is set. 2012-02-26 Stefan Seyfried libeplayer3: get rid of __FILE__ for shorter logmessages libeplayer3: get rid of __FILE__ for shorter logmessages spark: work around neutrino's sectionFilter() usage It seems like most of the times, timeout == 0 means "use the default timeout". However, at least with the sectionsd eit update filter and the PMT version update filter, timeout == 0 means really "no timeout" alas "infinite". Work around this by using the default timeout only if no negative filtermask is given. This fixes the "EPG on program change" (and PMT update probably, too). 2012-02-25 Stefan Seyfried spark: more workaround for driver bugs in cVideo spark: use ioctls instead of procfs in cVideo::getPictureInfo spark: improve cVideo::Pig() spark: improve cVideo::ShowPicture() * don't clear stillpicture on radio channel change * don't show stillpicture in standby spark: make cVideo::openDevice() more robust we sometimes seem to get EBUSY when opening the video device directly after close() - retry for half a second to get it opened libspark: fix cAudio::do_mute() spark: fix TODO in cVideo::ShowPicture() rebuild the MPEG stillpicture if the source jpeg has changed additionally check for zero sized m2v from broken ffmpeg versions spark: implement cAudio::SetSyncMode spark: make cVideo::Standby more robust There are a few glitches in the framebuffer driver we need to work around. For now, let's: * close and reopen the video device when going in / out of standby * only enable HDMI when coming out of standby Additionally, don't call Standby() when shutting down neutrino. spark: only reopen decoders in cPlayback::Close if we closed them spark: make cVideo::SetVideoSystem more robust in order to not run into driver locking issues, stop video decoding before setting the video system and restart afterwards spark: cVideo::SetVideoMode ignore irrelevant modes spark: make cVideo::openDevice ignorem ultiple calls spark: fix invalid debug calls debug: enable printf format checking for lt_debug 2012-02-23 Stefan Seyfried spark: partly implement cVideo::Standby() spark: implement cVideo::SetVideoMode this should add rudimentary support to get SCART output working spark: use ioctl instead of /proc to get video format spark: disable HDMI before switching mode in cVideo::SetVideoSystem this seems to greatly improve reliability - it looks like there is a locking problem somewhere in the framebuffer driver :-( spark: remove unused cVideo() functions 2012-02-22 Stefan Seyfried spark: implement cVideo::SetVideoSystem() spark: silence irmp debugging messages after last merge 2012-02-21 Stefan Seyfried spark: fix IR remote address after IRMP update spark: update IRMP code from upstream This updates the IRMP code to version Version 2.1.1 (SVN rev 89). Important changes are: * added GRUNDIG2 protocol * fixed bug when switching from nec42 to nec protocol * corrected timing for samsung/samsung32 protocol * added genre bits for kaseikyo Especially the NEC protocol fix affects us since it changes the decoded address! 2012-02-18 Stefan Seyfried libeplayer3: silence many warnings libeplayer3: silence many warnings build static libeplayer3 and link eplayer3 and meta against it build static libeplayer3 and link eplayer3 and meta against it spark: fix cAudio::PrepareClipPlay this makes the neutrino audioplayer work fine ;-) spark: add cVideo::ShowPicture() 2012-02-15 Stefan Seyfried spark: remove unused cPlayback() stuff spark: use libeplayer3 for playback spark: add cPlayback code from TDT git This imports cplayback as of commit 12d2c15d0e (2011-12-13) git://gitorious.org/open-duckbox-project-sh4/tdt.git Needs some adjustment to make it build... spark: build libeplayer3 statically into libstb-hal spark: build libeplayer3 statically into libstb-hal 2012-02-14 Stefan Seyfried add libeplayer3 from tdt git This imports libeplayer3 as of commit 9160371ccc6 (2012-02-02) git://gitorious.org/open-duckbox-project-sh4/tdt.git It would be better to use the original repo, but I need too many changes for now :-( add libeplayer3 from tdt git This imports libeplayer3 as of commit 9160371ccc6 (2012-02-02) git://gitorious.org/open-duckbox-project-sh4/tdt.git It would be better to use the original repo, but I need too many changes for now :-( spark: remove unused blank and zoom code from cVideo spark: add {open,close}Device() to cVideo 2012-02-12 Stefan Seyfried spark: increase record demux buffer size spark: rename lt_dfbinput to lirmp_input spark: convert the input thread to use lt_debug spark: add more keys to the input converter spark: use TSDEMUX_TAP for TS demux in cDemux() debug: rename from TRIPLE_DEBUG to HAL_DEBUG the old variable is still usable as a fallback spark: cVideo::Pig() spark: cVideo::setAspectRatio() spark: cVideo::getPictureInfo/getAspectRatio simplify both function by using proc_{get,put} spark cVideo: add proc_{get,put} helper functions libspark: stub out unused stuff in cDemux, fix getSTC libspark: add cVideo::getPTS for cDemux::getSTC spark: DirectFB is not used include config.h everywhere (for LFS etc) add a trivial test application for libstb-hal libspark: add remaining misc stuff Now the standalone lib can be built :-) libspark: make init.cpp build libspark: use IRMP for converting /dev/lirc to input device libspark: add IRMP infrared decoder This is based on git://gitorious.org/arduino-addons/irmp-arduino.git libspark: make cDemux build This might actually even work, but is untested. libspark: make cPlayback build... by disabling playback ;) libspark: make cVideo build Again, make it build -- not work. Lots of stuff simply stubbed out. libspark: make cAudio build This does just build, it probably does not yet work. 2012-02-11 Stefan Seyfried move lt_debug to common/ subdirectory rename to libstb-hal first try at building "libneutrino-hal" standalone 2012-02-02 Stefan Seyfried libspark: rename files to common names start libspark y copying libtriple 2012-01-22 Stefan Seyfried libtriple: improve and shorten cDemux debug messages libtriple: use AVS mute to avoid audio pop during boot 2012-01-15 Stefan Seyfried libtriple: improve cPlayback performance avoid unnecessary memcpy in read_mpeg(), significantly improving performance 2012-01-14 Stefan Seyfried libtriple: add video parameter watchdog Add the video parameter watchdog to the (already existing) input thread, so we can remove it from zapit. Unfortunately, we need an ugly hack in cDemux for making sure we do not crash on exit... :-( make lt_dfbinput a c++ file this allows to put the videowatchdog into the same thread later 2012-01-09 Stefan Seyfried libtriple: load td-dvb-frontend.ko in init_td_api() libtriple: convert tripledragon remote to uinput Instead of patching neutrino to read the Tripledragon remote, use a converter thread in libtriple to convert the TD remote to a real input device via uinput. 2012-01-08 Stefan Seyfried libtriple: add documentation on libtriple options libtriple: avoid audio noise when going to standby libtriple: add support for alternate sound devices to cAudio This allows to use different audio devices (USB Audio for example) with internet radio and audioplayer. 2011-12-04 Stefan Seyfried libtriple: try to make all filedescriptors O_CLOEXEC 2011-11-07 Stefan Seyfried libtriple: fix cDemux::pesFilter for teletext 2011-11-06 Stefan Seyfried libtriple: add measure mode to cDemux to fix streaminfo since the TD drivers apparently only allow each PID to be captured once, cheat and implement the measure mode for streaminfo with special ioctls. now streaminfo no longer breaks recordings libtriple: convert cRecord to lt_debug() libtriple: improve lt_debug * add current instance * shorten lt_debug messages libtriple: Tripledragon can only do one TS at a time :-( libtriple: add cRecord::AddPid libtriple: bring cRecord::Open in line with CS code libtriple: bring cDemux::Start in line with CS code libtriple: change cDemux::addPid to type bool libtriple: add dmx_cs.h to reduce code differences in neutrino libtriple: improve audio stream handling in cPlayback() use a c++ map instead of arrays to store audio stream data Side effect: audio streams as returned by findAllPids() are now sorted by pid, helping default selection for MPEG and VDR streams libtriple: implement cVideo::SetSyncMode() libtriple: implement cAudio::SetSyncMode() libtriple: cVideo enabled SCART during record in standby libtriple: fix seeking in cPlayback if there's a PTS overflow libtriple: sync cPlayback with libcoolstream changes libtriple: fix compiler warning in cs_get_revision() libtriple: convert cDemux to lt_info libtriple: add workaround for 'odd filter length' problem in cDemux libtriple: convert cAudio to lt_info, improve debug output libtriple: add debug flag to disable SCART switching (debug) libtriple: remove unneeded includes, disable strict aliasing libtriple: convert cVideo to lt_debug/lt_info, don't use zapit debug libtriple: convert cPlayback to lt_debug/lt_info libtriple: improve debug architecture every libtriple module can have its debug output enabled separately by exporting the TRIPLE_DEBUG variable libtriple: implement PCM playback in cAudio() libtriple: add ChangePids() to cRecord This is pretty much untested for now, handle with care! libtriple: add getPesPids() and removePid() to cDemux libtriple: remember the filedescriptor belonging to each pid in cDemux() libtriple: improve cPlayback() * avoid race conditions by using a mutex to protect curr_pos, fixing artefacts during timeshift playback * make GetPosition() cheaper by interpolating end_pts and only fetching the "real" end_pts after the file has grown by 10MB libtriple: fix filedescriptor leak in cVideo::routeVideo() libtriple: fix up cVideo::setAspectRatio() libtriple: add cVideo::VideoParamWatchdog() libtriple/framebuffer: use DirectFB acceleration Use a hack, almost as ugly as the original Coolstream code ;), to accelerate drawing of boxes and blitting with DirectFB functions. libtriple: add usable dummy cCA class libtriple: add support for MPEG1 files to cPlayback Now we can play the "Warriors of the Net" clip :-) http://ftp.sunet.se/pub/tv+movies/warriors/warriors-700-VBR.mpg libtriple: add debug messages to cDemux and cVideo functions libtriple: reduce some messages to debug, consolidate scart messages libtriple: hack different notify sizes for subs and ttx into cDemux libtriple: fix compiler warnings in playback_td libtriple: cPlayback: improve get_pts * add the buffer size to the call to avoid overflows * extract PTS also from MPEG1 packets libtriple: implement mpeg/vdr playback libtriple: implement fast forward in cPlayback() First try at implementing fast forward. Needs more love. Reverse does not work yet, setting speed to negative values right now simply resets to "play" mode. libtriple: make most of libtriple use lt_debug libtriple: implement pwrmngr cpufreq classes (mostly dummies) libtriple: implement working cPlayback class no fast forward, no mpeg playback (yet ;) libtriple: implement cRecord class TS recording now somewhat works ;) this version does not need ringbuffer code and only one thread libtriple: implement cAudio class libtriple: implement ShowPicture() in cVideo this needs the ffmpeg binary with support for mjpeg decoder and mpeg2video encoder to recode the jpgs to m2v libtriple: implement working cVideo class libtriple: implement working cDemux class libtriple: add lt_debug() for controllable debug output 2010-12-25 seife add generic dispatcher headers for frontend etc add generic audio, video and demux headers in zapit/include (TODO: put them into a better place, or put wrappers into lib directories) that automatically dispatch to the hardware specific functions and use them in the code git-svn-id: http://www.coolstreamtech.de/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@962 e54a6e83-5905-42d5-8d5c-058d10e6a962 2010-12-25 seife libtriple: implement init_td_api and shutdown_td_api provide compatibility with cs_api_init() and cs_api_exit() This contains a DirectFB wrapper, needed to make the framebuffer transparent. The framebuffer itself is usable without DFB. Additionally it sets up the system for a changed RC address in "BIOS". git-svn-id: http://www.coolstreamtech.de/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@961 e54a6e83-5905-42d5-8d5c-058d10e6a962 2010-12-25 seife add "libtriple" skeleton This should provide the same functionality as libcoolstream does, but for the TripleDragon Add td-compat directory with includes to convert values from TD api to DVB api and back. git-svn-id: http://www.coolstreamtech.de/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@960 e54a6e83-5905-42d5-8d5c-058d10e6a962