| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Also hide PADPacketizer::GetPAD().
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
A re-read of any of the used DLS files can now be requested by storing a
file with the same filename which is suffixed by `.REQUEST_DLS_REREAD`.
When the next PAD is going to be encoded and such a file is present, the
encoder changes the current DLS file to the related DLS file, if needed
(only applies if multiple DLS files are used). The DLS file is re-read
and the request file is deleted. The DLS is also immediately inserted
into the PAD transmission.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
A re-read of the slides dir can now be requested by storing a file named
`REQUEST_SLIDES_DIR_REREAD` into the slides dir. When the next slide is
going to be encoded and this file is present, the slides dir is re-read
and this file is deleted.
|
|
|
|
|
|
|
| |
When a slide cannot be encoded, skip to the next slide that works.
To prevent an infinite loop, no skipping is done when the last slide of
the slide store doesn't work and also no earlier slide of it worked.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 two vars to base class
- handle thread sleep in base class
- add missing lock guard for exit var
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This allows to replace the current PAD encoding algorithm by alternative
methods in the future.
|
| |
|
| |
|
|
|
|
|
|
| |
- move main process into new PAD encoder object
- hand over options by new separate options object
- unify default value retrieval in usage
|
| |
|
| |
|
|
|
|
| |
Also update website URL to HTTPS
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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 signal handler for SIGINT and SIGTERM that closes the output socket
and deinits ImageMagick (if used).
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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).
|
| |
|
| |
|
| |
|
|
|
|
| |
- SLSManager: store PADPacketizer ref + fix spacing
|
| |
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Parses an optional ".sls_params" file for each slide and hence allows to set:
* CategoryID/SlideID
* CategoryTitle
* ClickThroughURL
* AlternativeLocationURL
|