diff -rup mythtv-0.23.0+fixes24158/libs/libmythtv/NuppelVideoPlayer.cpp mythtv-0.23.0+fixes24158-audiosync_patch/libs/libmythtv/NuppelVideoPlayer.cpp
|
old
|
new
|
NuppelVideoPlayer::NuppelVideoPlayer(boo
|
| 254 | 254 | for (int i = 0; i < MAXTBUFFER; i++) |
| 255 | 255 | txtbuffers[i].buffer = new unsigned char[text_size + 1]; |
| 256 | 256 | |
| | 257 | // Read the global audio sync (lipsync) settings |
| | 258 | db_audio_sync = gContext->GetNumSettingOnHost("AudioSync", gContext->GetHostName(), 0); |
| | 259 | VERBOSE(VB_IMPORTANT, LOC_ERR + QString("Saved audio timecode offset of %1").arg(db_audio_sync)); |
| | 260 | SaveAudioTimecodeOffset(db_audio_sync); |
| | 261 | |
| 257 | 262 | memset(&CC708DelayedDeletes, 0, sizeof(CC708DelayedDeletes)); |
| 258 | 263 | } |
| 259 | 264 | |
| … |
… |
void NuppelVideoPlayer::ClearAfterSeek(b
|
| 4666 | 4671 | if (savedAudioTimecodeOffset) |
| 4667 | 4672 | { |
| 4668 | 4673 | tc_wrap[TC_AUDIO] = savedAudioTimecodeOffset; |
| 4669 | | savedAudioTimecodeOffset = 0; |
| | 4674 | //savedAudioTimecodeOffset = 0; |
| 4670 | 4675 | } |
| 4671 | 4676 | |
| 4672 | 4677 | SetPrebuffering(true); |
Nur in mythtv-0.23.0+fixes24158-audiosync_patch/libs/libmythtv: NuppelVideoPlayer.cpp.orig.
Nur in mythtv-0.23.0+fixes24158-audiosync_patch/libs/libmythtv: NuppelVideoPlayer.cpp.rej.
diff -rup mythtv-0.23.0+fixes24158/libs/libmythtv/NuppelVideoPlayer.h mythtv-0.23.0+fixes24158-audiosync_patch/libs/libmythtv/NuppelVideoPlayer.h
|
old
|
new
|
class MPUBLIC NuppelVideoPlayer : public
|
| 804 | 804 | float m_stored_audio_stretchfactor; |
| 805 | 805 | bool audio_paused; |
| 806 | 806 | int repeat_delay; |
| | 807 | long long db_audio_sync; |
| 807 | 808 | |
| 808 | 809 | // Audio warping stuff |
| 809 | 810 | float warpfactor; |
Nur in mythtv-0.23.0+fixes24158-audiosync_patch/libs/libmythtv: NuppelVideoPlayer.h.orig.
Nur in mythtv-0.23.0+fixes24158-audiosync_patch/libs/libmythtv: NuppelVideoPlayer.h.rej.
diff -rup mythtv-0.23.0+fixes24158/libs/libmythtv/tv_play.cpp mythtv-0.23.0+fixes24158-audiosync_patch/libs/libmythtv/tv_play.cpp
|
old
|
new
|
void TV::ToggleUpmix(PlayerContext *ctx)
|
| 8292 | 8292 | // dir in 10ms jumps |
| 8293 | 8293 | void TV::ChangeAudioSync(PlayerContext *ctx, int dir, bool allowEdit) |
| 8294 | 8294 | { |
| 8295 | | long long newval; |
| | 8295 | long long newval = 0; |
| 8296 | 8296 | |
| 8297 | 8297 | ctx->LockDeleteNVP(__FILE__, __LINE__); |
| 8298 | 8298 | if (!ctx->nvp) |
| … |
… |
void TV::ChangeAudioSync(PlayerContext *
|
| 8301 | 8301 | return; |
| 8302 | 8302 | } |
| 8303 | 8303 | |
| | 8304 | VERBOSE(VB_PLAYBACK, LOC + QString("ChangeAudioSync (%1, %2)") |
| | 8305 | .arg(audiosyncBaseline) |
| | 8306 | .arg(audiosyncAdjustment)); |
| | 8307 | |
| 8304 | 8308 | if (!audiosyncAdjustment && LONG_LONG_MIN == audiosyncBaseline) |
| 8305 | 8309 | audiosyncBaseline = ctx->nvp->GetAudioTimecodeOffset(); |
| 8306 | 8310 | |
| | 8311 | VERBOSE(VB_PLAYBACK, LOC + QString("ChangeAudioSync (%1, %2, %3)") |
| | 8312 | .arg(audiosyncBaseline) |
| | 8313 | .arg(audiosyncAdjustment) |
| | 8314 | .arg(dir)); |
| | 8315 | |
| 8307 | 8316 | audiosyncAdjustment = allowEdit; |
| 8308 | 8317 | |
| 8309 | 8318 | if (dir == 1000000) |
| … |
… |
void TV::ChangeAudioSync(PlayerContext *
|
| 8318 | 8327 | audiosyncBaseline; |
| 8319 | 8328 | audiosyncBaseline = ctx->nvp->GetAudioTimecodeOffset(); |
| 8320 | 8329 | } |
| 8321 | | else |
| | 8330 | else if (dir != 0) |
| 8322 | 8331 | { |
| 8323 | 8332 | newval = ctx->nvp->AdjustAudioTimecodeOffset(dir*10) - |
| 8324 | 8333 | audiosyncBaseline; |
| 8325 | 8334 | } |
| | 8335 | |
| | 8336 | VERBOSE(VB_PLAYBACK, LOC + QString("ChangeAudioSync - newval: %1") |
| | 8337 | .arg(newval)); |
| | 8338 | |
| 8326 | 8339 | ctx->UnlockDeleteNVP(__FILE__, __LINE__); |
| 8327 | 8340 | |
| 8328 | 8341 | OSD *osd = GetOSDLock(ctx); |
| 8329 | 8342 | if (osd && !browsemode) |
| 8330 | 8343 | { |
| 8331 | | QString text = QString(" %1 ms").arg(newval); |
| | 8344 | QString text = QString(" %1 ms (+ %2 ms)").arg(newval).arg(audiosyncBaseline); |
| 8332 | 8345 | int val = (int)newval; |
| 8333 | 8346 | if (dir == 1000000 || dir == -1000000) |
| 8334 | 8347 | { |
Nur in mythtv-0.23.0+fixes24158-audiosync_patch/libs/libmythtv: tv_play.cpp.orig.
diff -rup mythtv-0.23.0+fixes24158/programs/mythfrontend/globalsettings.cpp mythtv-0.23.0+fixes24158-audiosync_patch/programs/mythfrontend/globalsettings.cpp
|
old
|
new
|
static HostComboBox *AudioOutputDevice()
|
| 88 | 88 | return gc; |
| 89 | 89 | } |
| 90 | 90 | |
| | 91 | static HostSpinBox *AudioSync() |
| | 92 | { |
| | 93 | HostSpinBox *gs = new HostSpinBox("AudioSync", -1600, 1600, 8, true); |
| | 94 | gs->setLabel(QObject::tr("Audio sync offset")); |
| | 95 | gs->setValue(0); |
| | 96 | gs->setHelpText(QObject::tr("The global offset for audio synchronization (Lipsync)")); |
| | 97 | return gs; |
| | 98 | } |
| | 99 | |
| 91 | 100 | static HostComboBox *MaxAudioChannels() |
| 92 | 101 | { |
| 93 | 102 | HostComboBox *gc = new HostComboBox("MaxChannels",false); |
| … |
… |
static ConfigurationGroup *AudioSystemSe
|
| 3441 | 3450 | vcg->setUseLabel(false); |
| 3442 | 3451 | |
| 3443 | 3452 | vcg->addChild(AudioOutputDevice()); |
| | 3453 | vcg->addChild(AudioSync()); |
| 3444 | 3454 | |
| 3445 | 3455 | Setting *numchannels = MaxAudioChannels(); |
| 3446 | 3456 | vcg->addChild(numchannels); |