aboutsummaryrefslogtreecommitdiffstats
path: root/src/odr-padenc.cpp
Commit message (Collapse)AuthorAgeFilesLines
* C++11: use atomic bool instead of mutexStefan Pöschel2018-01-281-14/+1
|
* Add uniform PAD encoderStefan Pöschel2017-08-241-6/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | The uniform PAD encoder encodes every PAD on demand and is kind of synchronized to the audio encoder by means of the frame duration. Insertion intervals for slides and labels can be set indepentent from each other. It is also possible to specify how often the label is inserted. If the slides interval "0" is used, the next slide is inserted just after the previous one has been transmitted. This is useful e.g. for stations that transmit just a logo slide. An initial burst count can be set to ensure that an audio encoder has enough PADs available e.g. in case the audio encoder encodes DAB+ Superframes at once and hence needs all related PADs. If a slide/label is still in transmission when the transmission of the next one is scheduled, the new transmission is skipped and a warning is shown. In this case it makes sense to increase the PAD length or to instead decrease the slide size or label insertion interval (`-L`). This new PAD encoder does not require any changes on the audio encoder side. Only in case of MP2, a recent revision of ODR-AudioEnc has to be used (commit ce25f2c or later), as it fixes a problem with PADs that solely consist of the F-PAD.
* Move SLS/DLS insertion to base classStefan Pöschel2017-08-241-14/+50
|
* Refactor actual encoder invokationStefan Pöschel2017-08-241-37/+48
| | | | | | - move two vars to base class - handle thread sleep in base class - add missing lock guard for exit var
* Move some objects to PAD encoder base classStefan Pöschel2017-08-241-5/+0
|
* Small refactoringsStefan Pöschel2017-08-231-6/+6
|
* Rename sleep delay to slide intervalStefan Pöschel2017-08-231-3/+3
|
* Rename managers to encodersStefan Pöschel2017-08-231-5/+5
|
* Move current PAD encoder algorithm into subclassStefan Pöschel2017-08-231-20/+28
| | | | | This allows to replace the current PAD encoding algorithm by alternative methods in the future.
* Print used PAD length to logStefan Pöschel2017-08-231-7/+7
|
* Improve perror usageStefan Pöschel2017-08-231-4/+2
|
* Refactor basic PAD encoder structureStefan Pöschel2017-08-231-51/+70
| | | | | | - move main process into new PAD encoder object - hand over options by new separate options object - unify default value retrieval in usage
* Move includes/static vars into new main headerStefan Pöschel2017-08-221-21/+1
|
* SLS: move slides dir scan to new slide storeStefan Pöschel2017-08-221-60/+5
|
* Always show version/copyright headerStefan Pöschel2017-07-031-3/+8
| | | | Also update website URL to HTTPS
* Move break handler modificationStefan Pöschel2017-04-301-14/+14
| | | | | Move them right before the loop, as before a break (e.g. while waiting for the audio decoder opening the pipe) didn't lead to termination.
* Add recovery on broken pipeStefan Pöschel2017-04-071-0/+4
| | | | | | | | | When the opposite side of the PAD FIFO disconnects (e.g. due to crash of the audio encoder), ODR-PadEnc crashed as well due to SIGPIPE. This commit changes the behaviour. From now on instead error messages are displayed and it is possible for a new instance of the audio encoder to reconnect to the still running ODR-PadEnc instance.
* Add cleanup before terminationStefan Pöschel2017-03-101-2/+32
| | | | | Add signal handler for SIGINT and SIGTERM that closes the output socket and deinits ImageMagick (if used).
* SLS: output ImageMagick version in verbose modeStefan Pöschel2017-03-101-0/+2
|
* Fix printf format warningStefan Pöschel2017-03-091-1/+1
|
* Hide/Move constantsStefan Pöschel2017-02-151-5/+4
|
* Fix sleep delay to include encoding timeStefan Pöschel2017-02-151-1/+6
| | | | | | | | Up to now the delay between two loop runs was slightly higher than the specified sleep delay as the sleeping process did not consider the time the PAD encoding needs but rather sleeped for the set sleep delay. This is now fixed by using a steady clock.
* Fix alphabetic slide sortingStefan Pöschel2017-02-151-23/+28
| | | | | | | The alphabetic sorting within the slide dir was ignored so far. Now the sorting is considered while adding slides for transmission. Furthermore now also files starting with "." are added (except the ./.. dirs).
* Refactor main loopStefan Pöschel2017-02-151-82/+73
|
* Small refactoringsStefan Pöschel2017-02-151-33/+25
|
* DLS: add feature to switch between multiple filesStefan Pöschel2017-02-111-20/+36
|
* Slight refactoringsStefan Pöschel2017-02-111-2/+2
| | | | - SLSManager: store PADPacketizer ref + fix spacing
* Move Slideshow stuff to new SLSManagerStefan Pöschel2017-02-111-848/+6
|
* Slight refactoringsStefan Pöschel2017-02-111-34/+24
| | | | | | | | - DLSManager: store PADPacketizer ref - DABCharset: convert enum to enum class - DL cmd prefix: output reserved instead of charset (does not make a difference) - MOT header: get charset from enum class - .gitignore: add Eclipse files
* Move DLS stuff to new DLSManagerStefan Pöschel2017-02-111-423/+7
|
* Move common code partsStefan Pöschel2017-02-111-12/+0
|
* Replace tabs by spacesStefan Pöschel2017-02-061-25/+25
|
* PAD: limit packetizer visibilityStefan Pöschel2017-02-061-29/+24
|
* PAD: insert DLS regularly while SLS transmissionStefan Pöschel2017-02-061-13/+23
| | | | | | | | | | | | | | | When a slide is transmitted, now every 50 PADs the current DLS is inserted (and thereby reread from file). Hence in the best case (AAC-LC @ 48 kHz), DLS is inserted every 1000ms; in the worst case (HE-AAC @ 32 kHz) it is inserted every 3000ms. This way a listener will get DLS much earlier after switching to a service, compared to the previous situation where the slide transmission was not interrupted for DLS insertion. Note that there still remains a delay without any PAD, between the end of a slide transmission and the start of the next one's transmission. Also note that adding a feedback channel from the audio encoder to ODR-PadEnc will make this improvement obsolete.
* PAD: make PADPacketizer queue privateStefan Pöschel2017-02-061-6/+6
|
* Relocate common PAD codeStefan Pöschel2017-02-041-328/+7
|
* Add common headerStefan Pöschel2017-02-041-6/+2
|
* Code cleanupStefan Pöschel2017-02-041-53/+48
|
* MOT header: simplify extension additionStefan Pöschel2017-01-061-30/+41
|
* Remove 'misleading indentation' warning due to tab in fileMatthias P. Braendli2016-12-261-1/+1
|
* SLS: add custom params for catSLS etc.Stefan Pöschel2016-12-231-25/+138
| | | | | | | | Parses an optional ".sls_params" file for each slide and hence allows to set: * CategoryID/SlideID * CategoryTitle * ClickThroughURL * AlternativeLocationURL
* SLS: output source filename/size also for raw filesStefan Pöschel2016-12-231-0/+5
|
* converted the crc into c++ with namespace.Thomas Karlsson2016-11-141-3/+1
| | | | | Since it conflicts with other crc implementation in imagemagic lib. This resulted in png images that would not open due to "crc error".
* Apply new nameStefan Pöschel2016-09-191-0/+1830