Commits on May 15, 2011
  1. Make ffmpeg's run in the ffmpeg dir

    Beirdo committed with stuartm Apr 25, 2011
    It seems both our code and ffmpeg's code use, and read VERSION.  The
    problem was that that minor difference was missed in merging the ffmpeg makefile
    and we were reading MythTV's VERSION inside ffmpeg, creating crappy version.h
    Thanks to superm and xris for finding this before the hustle of a release when
    VERSION is normally used.
    (cherry picked from commit 864e8db)
    Signed-off-by: Stuart Morgan <>
  2. Add a VERSION file to the repo instead of generating it at release ti…

    stuartm committed May 15, 2011
    …me, this provides a sane fallback for users exporting from a repo before building.
Commits on May 13, 2011
  1. Fix 7.1 channel order in CoreAudio (mac).

    jyavenard committed Mar 2, 2011
    To activate 7.1 audio (using either HDMI or DisplayPort); make sure to first launch the Audio MIDI Setup in /Application/Utilities and configure HDMI audio as 8 channels-24 bits (the default is just stereo). It is recommended to disable DTS and AC3 passthrough as it would reset the hdmi audio in two channels mode, which would break future multi-channels playback.
    Note that for the time being, E-AC3, TrueHD and DTS-HD MA bitstreaming do NOT work under MacOS. That's until Apple provide the required 192kHz digital sampling rate (the hardware supports it!).
    [backport SHA:a79e8179a940c4fae0b952e57c09a277ab2fddc9]
Commits on May 12, 2011
  1. Fix occasional audio corruption

    jyavenard committed May 12, 2011
    Backport SHA:9357aaf826603f778d957b60f55b2d62fc0b4cda
Commits on May 11, 2011
  1. Revert "VideoBuffers: Remove some unused code."

    tralph committed May 11, 2011
    This reverts commit 32882b2.
  2. VideoBuffers: Remove some unused code.

    Mark Kendall committed with tralph Apr 11, 2011
    (cherry picked from commit 400aba3)
  3. Fix video buffering code to properly play high reference frame videos.

    tralph committed Apr 10, 2011
    This change prevents a buffer to be returned to the available queue while it's still in use by the decoder. There is now a 'finished' queue to store frames until the decoder no longer needs them. Previously we would return a frame to available before it was finished by the decoder and cause severe video corruption.
    With this change, killasample can now be played corruption free by Xv and by VDPAU with vdpaubuffersize of only 20.
    NOTE: Bringing up the OSD under Xv can still cause corruption since we don't protect against modifying the buffer in the video processing portion of code. To avoid this the buffer will need to be copied before being modified.
    (cherry picked from commit f8c108e)
Commits on May 10, 2011
  1. PiP: Add a dummy video sync sub-class for Picture in Picture.

    Mark Kendall committed May 10, 2011
    Video timing for PiP's is handled by the main player - hence no actual
    video sync is required for the PiP players.
    (cherry picked from commit 7bd0b54)
  2. PiP: Remove the extra thread created for PiP playback.

    Mark Kendall committed May 10, 2011
    This is no longer needed as all players are run from the main thread. By
    and large, the 'playback loop' for a pip player is a no-op as the
    decoding is elsewhere and the actual processing of video frames is
    handled by the main player (though a small optimisation is needed for
    the VideoSync).
    Cherry-picked from a90960c
  3. Re-enable Picture in Picture and Picture By Picture.

    Mark Kendall committed May 10, 2011
    There is still a lot of work to be done to clean this up properly but I
    realised my obvious mistake when I broke PiP in the first place.
    Refs #9543
    Cherry picked from c65b533
Commits on May 9, 2011
  1. Prevent 100% CPU usage when in pause mode. Note that the following op…

    jyavenard committed May 9, 2011
    …tions help preventing the blast of static when using pulse:
    - Use ALSA, including the pulse's ALSA plug (usually ALSA:pulse)
    - Change pulse server sampling rate from the default 44.1kHz to 48kHz
    - In Advanced audio settings, disable myth's resampler.
    In all, those are issues with pulse, not myth
Commits on May 8, 2011
  1. MythCenter-wide: fix the clock position.

    Paul Harrison committed Mar 23, 2011
    This changes the clock to be right aligned so it's always aligned with the
    right screen edge and increases the width to allow for different date/time
    formats. Fixes #9641.
    (cherry picked from commit 883d0dc)
Commits on May 7, 2011
Commits on May 6, 2011
Commits on May 5, 2011
  1. Refs #9761. Check to see if m_checkAvailabilityTimerId=0 before killi…

    stuarta committed May 5, 2011
    …ng it.
    Prevents the frontend issuing the following error message.
    "Application asked to unregister timer 0x0 which is not registered in this
    thread. Fix application."
    Thanks to Jonatan for the patch.
  2. Refs #9672 - Adds support for multi-byte EIT encodings.

    stuarta committed May 5, 2011
    Thanks to moitinho for the original patch.
  3. - Change digital passthrough auto-configuration:

    jyavenard committed May 5, 2011
      Open device with settings:
      AES0=6 AES1=0x82 AES2=0x00 AES3=0x01.
      AES1 = original stream, original PCM coder
      AES2 = source and channel unspecified
      AES3 = sample rate unspecified
      by default, ALSA uses AES3=0x02 which force the sampling rate to 48kHz. This break 44.1kHz passthrough with some audio cards.
      On the other hand, with some cards, you need to set 48kHz sample rate to get 44.1kHz passthrough. As the later case is obviously a bug, we do the right thing and set it as it should by default.
      For people finding that they no longer get multi-channel AC3/DTS audio, they need start mythfrontend with -O SPDIFRateOverride=1.
    Fix imported from [649fa85]
Commits on May 3, 2011
  1. MythPlayer: Pause the audio when the video is lagging.

    Mark Kendall committed May 3, 2011
    When using software decoding and the decoder is struggling to keep up,
    audio sync may take a long time to recover after startup or following a
    skip. Under certain conditions, playback never recovers and because we
    are constantly skipping frames, the user sees no screen updates - and
    hence playback looks entirely broken.
    By pausing the audio when skipping frames, we allow video playback to
    catch up.
    Backported from afe5669
Commits on Apr 24, 2011
  1. Adds mention of duration for initial uncached run.

    wagnerrp committed Apr 24, 2011
    Fixes #9749
    (cherry picked from commit f9a7281)
Commits on Apr 20, 2011
  1. Fix the check to see if we have a valid DB schema.

    sphery committed Apr 20, 2011
    Change the code that checks to see if we have a schema available so that
    it doesn't use a count of the value returned by QSqlDatabase::tables().
    The tables() function returns a list of all tables visible to the
    user--even tables in other databases--so can result in false positives.
    Fixes #9742.
    (cherry picked from commit eda0880)
Commits on Apr 18, 2011
Commits on Apr 17, 2011
  1. Add flush() noop to FileTransfer class for Python file object compati…

    wagnerrp committed Apr 17, 2011
    (cherry picked from commit 8741c3a)
  2. MythPlayer: Fix a Live TV channel change deadlock.

    mark-kendall committed Apr 17, 2011
    This recognises that the decoder loop effectively has 3 different states
    - running, partially paused and completely paused. The partial pause
    state still allows the playback thread to decode a single frame on
    demand, seek and perform position map syncs. Allowing these while the
    decoder is changing adds various complications - hence add a new member
    state variable, totalDecoderPause, that ensures the decoder loop does
    nothing other than check its own pause state when completely paused.
    Aside from fixing a deadlock on channel changes, this should also
    speedup decoder changes under certain situations and probably prevents a
    couple of even more obscure bugs (e.g. if a seek is triggered at the
    same time as a channel change).
Commits on Apr 16, 2011
  1. Don't use QDateTime::toString() for prepared queries.

    sphery committed Mar 2, 2011
    When using bindValue() to specify datetime values, do not use
    toString().  Instead, pass the QDateTime to bindValue() so that it can
    pass the value using the MySQL-C-API MYSQL_TIME type--so that database
    datetime string literal format isn't an issue.  Refs #8585.
    Thanks, again, to Rob Smith for finding another incorrect pattern to
    search for.
    (cherry picked from commit cd073b6)
  2. Fix some invalid-format datetimes in queries.

    sphery committed Feb 21, 2011
    Fix some hard-coded, string datetime representations in queries that
    were using an invalid format that no longer works with MySQL 5.5.  These
    datetime literals now use the correct MySQL SQL datetime literal format
    (which is also the ISO SQL datetime literal format).
    Huge thanks to Rob Smith for testing with MySQL 5.5 and seeking out the
    datetime-usage within queries.
    Refs #8585 (possibly fixes #8585).
    (cherry picked from commit 7e33788)
  3. Sort recordings for bindings and MythArchive.

    sphery committed Apr 16, 2011
    This change causes ProgramInfo::LoadFromRecorded() to always sort
    recordings according to starttime (descending) in 0.24-fixes (only).  A
    better fix was committed to master, but due to the binary version and
    protocol version changes, can't be backported to 0.24-fixes.  This
    approach will make the list more usable for MythArchive and bindings
    users, but without any version changes.
    Refs #9486.
  4. Fixed update of some recording status transitions.

    gigem committed Apr 16, 2011
    Backported 0e22930 from trunk.
    Some status transitions, most notbably rsTuning to rsRecording, were
    not immediately reflected in the EPG and other screens.
Commits on Apr 14, 2011
  1. RSS Parsing: Check player tags to make sure they don't have child ele…

    Robert McNamara committed Apr 14, 2011
    This works around some very odd RSS feeds produced by, which inline a bunch of of HTML instead of using attributes as the Media RSS specification specifies:
    "Allows the media object to be accessed through a web browser media player console. This element is required only if a direct media url attribute is not specified in the <media:content> element. It has 1 required attribute, and 2 optional attributes.
            \<media:player url=\"\" height=\"200\" width="400" /\>
    url is the url of the player console that plays the media. It is a required attribute.
    height is the height of the browser window that the url should be opened in. It is an optional attribute.
    width is the width of the browser window that the url should be opened in. It is an optional attribute."
    So, basically, we work around the violation of the spec by checking for child elements.
    Fixes #9724.
Commits on Apr 13, 2011
  1. Filter out NULL-characters from EIT before we save the data in the da…

    kenni committed Apr 13, 2011
    Refs #8707.
Commits on Apr 12, 2011
  1. Internet Content: Correct API URL.

    Robert McNamara committed Apr 12, 2011
    Seems that they changed things up, and I had misread the API URL.  Thanks to Kenni Lund for seeing where I had gone wrong.  Fixes #9724.
  2. libmythtv: Use the actual MythPlayer pause state

    Mark Kendall committed Apr 12, 2011
    Remove the pause member variable from PlayerContext and access the pause
    state of the player directly. Fixes some inconsistencies in the pause
    state and another step along the long road of removing PlayerContext
    Pimped from master 8c18a32
    Closes #9665