rpms/mythtv/devel mythtv-0.27-fixes.patch,1.6,1.7

Richard Shaw hobbes1069 at rpmfusion.org
Tue Oct 14 00:48:07 CEST 2014


Author: hobbes1069

Update of /cvs/free/rpms/mythtv/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv576

Modified Files:
	mythtv-0.27-fixes.patch 
Log Message:
Add updated fixes patch.

mythtv-0.27-fixes.patch:
 mythplugins/mythmusic/mythmusic/importmusic.cpp                     |    2 
 mythplugins/mythmusic/mythmusic/musicplayer.cpp                     |    6 
 mythplugins/mythmusic/mythmusic/smartplaylist.cpp                   |   13 
 mythtv/external/FFmpeg/README.sync                                  |    3 
 mythtv/external/FFmpeg/RELEASE                                      |    2 
 mythtv/external/FFmpeg/VERSION                                      |    2 
 mythtv/external/FFmpeg/doc/Doxyfile                                 |    2 
 mythtv/external/FFmpeg/ffmpeg_filter.c                              |    9 
 mythtv/external/FFmpeg/libavcodec/aac.h                             |    2 
 mythtv/external/FFmpeg/libavcodec/adpcmenc.c                        |    3 
 mythtv/external/FFmpeg/libavcodec/alsdec.c                          |    2 
 mythtv/external/FFmpeg/libavcodec/dirac_arith.h                     |    3 
 mythtv/external/FFmpeg/libavcodec/diracdec.c                        |   49 
 mythtv/external/FFmpeg/libavcodec/g723_1.c                          |    3 
 mythtv/external/FFmpeg/libavcodec/golomb-test.c                     |    2 
 mythtv/external/FFmpeg/libavcodec/h264_mp4toannexb_bsf.c            |    2 
 mythtv/external/FFmpeg/libavcodec/libvorbisenc.c                    |    3 
 mythtv/external/FFmpeg/libavcodec/libx264.c                         |   26 
 mythtv/external/FFmpeg/libavcodec/mjpegdec.c                        |    2 
 mythtv/external/FFmpeg/libavcodec/mjpegenc.c                        |    2 
 mythtv/external/FFmpeg/libavcodec/mjpegenc.h                        |    2 
 mythtv/external/FFmpeg/libavcodec/mlpdec.c                          |    2 
 mythtv/external/FFmpeg/libavcodec/msrle.c                           |    3 
 mythtv/external/FFmpeg/libavcodec/mss34dsp.c                        |    4 
 mythtv/external/FFmpeg/libavcodec/mss4.c                            |    2 
 mythtv/external/FFmpeg/libavcodec/utvideodec.c                      |    2 
 mythtv/external/FFmpeg/libavcodec/vc1dec.c                          |    3 
 mythtv/external/FFmpeg/libavcodec/wma.c                             |    6 
 mythtv/external/FFmpeg/libavcodec/x86/idct_sse2_xvid.c              |    2 
 mythtv/external/FFmpeg/libavcodec/x86/mpegvideoenc_template.c       |    2 
 mythtv/external/FFmpeg/libavfilter/filtfmts.c                       |   10 
 mythtv/external/FFmpeg/libavfilter/graphdump.c                      |    3 
 mythtv/external/FFmpeg/libavfilter/vf_deshake.c                     |    4 
 mythtv/external/FFmpeg/libavformat/aiffdec.c                        |    2 
 mythtv/external/FFmpeg/libavformat/asfdec.c                         |    5 
 mythtv/external/FFmpeg/libavformat/avidec.c                         |    2 
 mythtv/external/FFmpeg/libavformat/flvenc.c                         |   12 
 mythtv/external/FFmpeg/libavformat/h263dec.c                        |    2 
 mythtv/external/FFmpeg/libavformat/id3v2.c                          |   17 
 mythtv/external/FFmpeg/libavformat/id3v2.h                          |    4 
 mythtv/external/FFmpeg/libavformat/mpc.c                            |    2 
 mythtv/external/FFmpeg/libavformat/mpegts.c                         |    2 
 mythtv/external/FFmpeg/libavformat/mux.c                            |    6 
 mythtv/external/FFmpeg/libavformat/omadec.c                         |    2 
 mythtv/external/FFmpeg/libavformat/utils.c                          |    2 
 mythtv/external/FFmpeg/libavutil/cpu.c                              |   18 
 mythtv/external/FFmpeg/libavutil/lzo.c                              |   13 
 mythtv/external/FFmpeg/libavutil/opt.c                              |    6 
 mythtv/external/FFmpeg/libswresample/dither.c                       |    2 
 mythtv/external/FFmpeg/libswresample/rematrix.c                     |    5 
 mythtv/external/FFmpeg/libswresample/resample.c                     |    7 
 mythtv/external/FFmpeg/libswscale/swscale.c                         |    7 
 mythtv/external/FFmpeg/libswscale/x86/swscale_template.c            |   78 
 mythtv/external/FFmpeg/tests/ref/fate/vc1_sa10143                   |   28 
 mythtv/libs/libmyth/audio/audiooutputbase.cpp                       |    9 
 mythtv/libs/libmyth/mediamonitor-darwin.cpp                         |   10 
 mythtv/libs/libmythbase/mythcorecontext.cpp                         |    3 
 mythtv/libs/libmythbase/mythversion.h                               |    2 
 mythtv/libs/libmythdvdnav/dvdnav/dvdnav.c                           |    2 
 mythtv/libs/libmythdvdnav/dvdnav/dvdnav.h                           |    2 
 mythtv/libs/libmythdvdnav/dvdnav/remap.c                            |    1 
 mythtv/libs/libmythdvdnav/dvdnav/searching.c                        |   32 
 mythtv/libs/libmythdvdnav/dvdnav/vm/vm.c                            |    6 
 mythtv/libs/libmythdvdnav/dvdread/dvd_input.c                       |   44 
 mythtv/libs/libmythdvdnav/dvdread/dvd_reader.c                      |    1 
 mythtv/libs/libmythdvdnav/dvdread/dvd_udf.c                         |    5 
 mythtv/libs/libmythdvdnav/dvdread/ifo_print.c                       |    4 
 mythtv/libs/libmythdvdnav/dvdread/ifo_read.c                        |   23 
 mythtv/libs/libmythmetadata/libmythmetadata.pro                     |    4 
 mythtv/libs/libmythmetadata/metadatacommon.cpp                      |   95 
 mythtv/libs/libmythmetadata/metadatacommon.h                        |   52 
 mythtv/libs/libmythmetadata/metadatadownload.cpp                    |  339 
 mythtv/libs/libmythmetadata/metadatafactory.cpp                     |   69 
 mythtv/libs/libmythmetadata/metadatafactory.h                       |    2 
 mythtv/libs/libmythmetadata/metadatagrabber.cpp                     |  595 +
 mythtv/libs/libmythmetadata/metadatagrabber.h                       |  100 
 mythtv/libs/libmythmetadata/metadataimagedownload.cpp               |  150 
 mythtv/libs/libmythmetadata/metadataimagedownload.h                 |    1 
 mythtv/libs/libmythmetadata/videometadata.cpp                       |   17 
 mythtv/libs/libmythprotoserver/requesthandler/fileserverhandler.cpp |    3 
 mythtv/libs/libmythtv/avformatdecoder.cpp                           |   48 
 mythtv/libs/libmythtv/cc608decoder.cpp                              |    2 
 mythtv/libs/libmythtv/cc708reader.cpp                               |    2 
 mythtv/libs/libmythtv/channelscan/channelscan_sm.cpp                |   19 
 mythtv/libs/libmythtv/channelscan/channelscan_sm.h                  |    2 
 mythtv/libs/libmythtv/eitcache.cpp                                  |    4 
 mythtv/libs/libmythtv/eitfixup.cpp                                  |    4 
 mythtv/libs/libmythtv/lzoconf.h                                     |  219 
 mythtv/libs/libmythtv/lzodefs.h                                     | 2527 ++++--
 mythtv/libs/libmythtv/metadataimagehelper.cpp                       |    3 
 mythtv/libs/libmythtv/minilzo.cpp                                   | 4191 +++++++---
 mythtv/libs/libmythtv/minilzo.h                                     |   20 
 mythtv/libs/libmythtv/mpeg/dvbstreamdata.cpp                        |    8 
 mythtv/libs/libmythtv/mythplayer.cpp                                |  141 
 mythtv/libs/libmythtv/openglvideo.cpp                               |    2 
 mythtv/libs/libmythtv/programdata.cpp                               |   41 
 mythtv/libs/libmythtv/ringbuffer.cpp                                |   19 
 mythtv/libs/libmythtv/subtitlescreen.cpp                            |   58 
 mythtv/libs/libmythtv/tv_play.cpp                                   |    8 
 mythtv/libs/libmythtv/videobuffers.cpp                              |    6 
 mythtv/libs/libmythtv/videoout_nullvdpau.cpp                        |    4 
 mythtv/libs/libmythtv/videoout_opengl.cpp                           |    6 
 mythtv/libs/libmythui/mythuiwebbrowser.cpp                          |    2 
 mythtv/libs/libmythupnp/upnpcds.h                                   |    2 
 mythtv/libs/libmythupnp/upnpcmgr.h                                  |    2 
 mythtv/programs/mythbackend/main_helpers.cpp                        |    9 
 mythtv/programs/mythbackend/mainserver.cpp                          |   20 
 mythtv/programs/mythbackend/upnpcdstv.cpp                           |   27 
 mythtv/programs/mythbackend/upnpcdsvideo.cpp                        |    2 
 mythtv/programs/mythfrontend/editvideometadata.cpp                  |   10 
 mythtv/programs/mythfrontend/grabbersettings.cpp                    |  125 
 mythtv/programs/mythfrontend/grabbersettings.h                      |    7 
 mythtv/programs/mythfrontend/playbackbox.cpp                        |  158 
 mythtv/programs/mythfrontend/playbackbox.h                          |   13 
 mythtv/programs/mythfrontend/scheduleeditor.cpp                     |   76 
 mythtv/programs/mythfrontend/scheduleeditor.h                       |    1 
 mythtv/programs/mythmetadatalookup/lookup.cpp                       |   12 
 mythtv/programs/mythmetadatalookup/main.cpp                         |   12 
 mythtv/programs/mythtranscode/mpeg2fix.cpp                          |   23 
 mythtv/programs/mythtranscode/mpeg2fix.h                            |    4 
 mythtv/programs/mythtranscode/videodecodebuffer.cpp                 |   36 
 mythtv/programs/mythtranscode/videodecodebuffer.h                   |   25 
 mythtv/themes/classic/tv_schedule.xml                               |    2 
 123 files changed, 7006 insertions(+), 2872 deletions(-)

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.6 -r 1.7 mythtv-0.27-fixes.patch
Index: mythtv-0.27-fixes.patch
===================================================================
RCS file: /cvs/free/rpms/mythtv/devel/mythtv-0.27-fixes.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- mythtv-0.27-fixes.patch	28 Jul 2014 02:16:16 -0000	1.6
+++ mythtv-0.27-fixes.patch	13 Oct 2014 22:48:06 -0000	1.7
@@ -1,5 +1,6 @@
  mythplugins/mythmusic/mythmusic/importmusic.cpp    |    2 +-
  mythplugins/mythmusic/mythmusic/musicplayer.cpp    |    6 +
+ mythplugins/mythmusic/mythmusic/smartplaylist.cpp  |   13 +-
  mythtv/external/FFmpeg/README.sync                 |    3 +-
  mythtv/external/FFmpeg/RELEASE                     |    2 +-
  mythtv/external/FFmpeg/VERSION                     |    2 +-
@@ -55,27 +56,47 @@
  mythtv/libs/libmyth/mediamonitor-darwin.cpp        |   10 +
  mythtv/libs/libmythbase/mythcorecontext.cpp        |    3 +-
  mythtv/libs/libmythbase/mythversion.h              |    2 +-
+ mythtv/libs/libmythdvdnav/dvdnav/dvdnav.c          |    2 +-
+ mythtv/libs/libmythdvdnav/dvdnav/dvdnav.h          |    2 +-
+ mythtv/libs/libmythdvdnav/dvdnav/remap.c           |    1 +
+ mythtv/libs/libmythdvdnav/dvdnav/searching.c       |   32 +-
+ mythtv/libs/libmythdvdnav/dvdnav/vm/vm.c           |    6 +-
+ mythtv/libs/libmythdvdnav/dvdread/dvd_input.c      |   44 +-
+ mythtv/libs/libmythdvdnav/dvdread/dvd_reader.c     |    1 +
+ mythtv/libs/libmythdvdnav/dvdread/dvd_udf.c        |    5 +-
+ mythtv/libs/libmythdvdnav/dvdread/ifo_print.c      |    4 +-
+ mythtv/libs/libmythdvdnav/dvdread/ifo_read.c       |   23 +-
  mythtv/libs/libmythmetadata/libmythmetadata.pro    |    4 +-
  mythtv/libs/libmythmetadata/metadatacommon.cpp     |   95 +-
- mythtv/libs/libmythmetadata/metadatacommon.h       |   51 +-
- mythtv/libs/libmythmetadata/metadatadownload.cpp   |  211 +-
- mythtv/libs/libmythmetadata/metadatafactory.cpp    |    2 +-
- mythtv/libs/libmythmetadata/metadatagrabber.cpp    |  584 +++
+ mythtv/libs/libmythmetadata/metadatacommon.h       |   52 +-
+ mythtv/libs/libmythmetadata/metadatadownload.cpp   |  339 +-
+ mythtv/libs/libmythmetadata/metadatafactory.cpp    |   69 +-
+ mythtv/libs/libmythmetadata/metadatafactory.h      |    2 +
+ mythtv/libs/libmythmetadata/metadatagrabber.cpp    |  595 +++
  mythtv/libs/libmythmetadata/metadatagrabber.h      |  100 +
- .../libs/libmythmetadata/metadataimagedownload.cpp |  148 +-
+ .../libs/libmythmetadata/metadataimagedownload.cpp |  150 +-
  .../libs/libmythmetadata/metadataimagedownload.h   |    1 +
  mythtv/libs/libmythmetadata/videometadata.cpp      |   17 +-
  .../requesthandler/fileserverhandler.cpp           |    3 +-
- mythtv/libs/libmythtv/avformatdecoder.cpp          |   12 +
+ mythtv/libs/libmythtv/avformatdecoder.cpp          |   48 +-
  mythtv/libs/libmythtv/cc608decoder.cpp             |    2 +-
+ mythtv/libs/libmythtv/cc708reader.cpp              |    2 +-
+ .../libs/libmythtv/channelscan/channelscan_sm.cpp  |   19 +-
+ mythtv/libs/libmythtv/channelscan/channelscan_sm.h |    2 +
+ mythtv/libs/libmythtv/eitcache.cpp                 |    4 +-
+ mythtv/libs/libmythtv/eitfixup.cpp                 |    4 +-
  mythtv/libs/libmythtv/lzoconf.h                    |  219 +-
  mythtv/libs/libmythtv/lzodefs.h                    | 2527 ++++++++----
+ mythtv/libs/libmythtv/metadataimagehelper.cpp      |    3 +
  mythtv/libs/libmythtv/minilzo.cpp                  | 4191 ++++++++++++++------
  mythtv/libs/libmythtv/minilzo.h                    |   20 +-
- mythtv/libs/libmythtv/mythplayer.cpp               |   10 +-
+ mythtv/libs/libmythtv/mpeg/dvbstreamdata.cpp       |    8 +
+ mythtv/libs/libmythtv/mythplayer.cpp               |  141 +-
  mythtv/libs/libmythtv/openglvideo.cpp              |    2 +-
- mythtv/libs/libmythtv/ringbuffer.cpp               |    7 +-
+ mythtv/libs/libmythtv/programdata.cpp              |   41 +-
+ mythtv/libs/libmythtv/ringbuffer.cpp               |   19 +-
  mythtv/libs/libmythtv/subtitlescreen.cpp           |   58 +-
+ mythtv/libs/libmythtv/tv_play.cpp                  |    8 +-
  mythtv/libs/libmythtv/videobuffers.cpp             |    6 +
  mythtv/libs/libmythtv/videoout_nullvdpau.cpp       |    4 +-
  mythtv/libs/libmythtv/videoout_opengl.cpp          |    6 +-
@@ -84,13 +105,23 @@
  mythtv/libs/libmythupnp/upnpcmgr.h                 |    2 +-
  mythtv/programs/mythbackend/main_helpers.cpp       |    9 +-
  mythtv/programs/mythbackend/mainserver.cpp         |   20 +-
+ mythtv/programs/mythbackend/upnpcdstv.cpp          |   27 +-
+ mythtv/programs/mythbackend/upnpcdsvideo.cpp       |    2 +-
+ mythtv/programs/mythfrontend/editvideometadata.cpp |   10 +-
  mythtv/programs/mythfrontend/grabbersettings.cpp   |  125 +-
  mythtv/programs/mythfrontend/grabbersettings.h     |    7 +-
+ mythtv/programs/mythfrontend/playbackbox.cpp       |  158 +-
+ mythtv/programs/mythfrontend/playbackbox.h         |   13 +-
+ mythtv/programs/mythfrontend/scheduleeditor.cpp    |   76 +-
+ mythtv/programs/mythfrontend/scheduleeditor.h      |    1 +
+ mythtv/programs/mythmetadatalookup/lookup.cpp      |   12 +-
  mythtv/programs/mythmetadatalookup/main.cpp        |   12 +
- mythtv/programs/mythtranscode/mpeg2fix.cpp         |   17 +-
+ mythtv/programs/mythtranscode/mpeg2fix.cpp         |   23 +-
  mythtv/programs/mythtranscode/mpeg2fix.h           |    4 +
+ .../programs/mythtranscode/videodecodebuffer.cpp   |   36 +-
+ mythtv/programs/mythtranscode/videodecodebuffer.h  |   25 +-
  mythtv/themes/classic/tv_schedule.xml              |    2 +-
- 92 files changed, 6321 insertions(+), 2577 deletions(-)
+ 123 files changed, 7006 insertions(+), 2872 deletions(-)
 
 diff --git a/mythplugins/mythmusic/mythmusic/importmusic.cpp b/mythplugins/mythmusic/mythmusic/importmusic.cpp
 index d0faf12..31a89da 100644
@@ -122,6 +153,51 @@
      m_isPlaying = false;
  
      if (stopAll && getDecoder())
+diff --git a/mythplugins/mythmusic/mythmusic/smartplaylist.cpp b/mythplugins/mythmusic/mythmusic/smartplaylist.cpp
+index de952e8..0fc546d 100644
+--- a/mythplugins/mythmusic/mythmusic/smartplaylist.cpp
++++ b/mythplugins/mythmusic/mythmusic/smartplaylist.cpp
+@@ -52,10 +52,8 @@ static SmartPLField SmartPLFields[] =
+     { "Play Count",    "music_songs.numplays",           ftNumeric,  0,    9999, 0 },
+     { "Compilation",   "music_albums.compilation",       ftBoolean,  0,    0,    0 },
+     { "Comp. Artist",  "music_comp_artists.artist_name", ftString,   0,    0,    0 },
+-    { "Last Play",     "FROM_DAYS(TO_DAYS(music_songs.lastplay))",
+-                                                         ftDate,     0,    0,    0 },
+-    { "Date Imported", "FROM_DAYS(TO_DAYS(music_songs.date_entered))",
+-                                                         ftDate,     0,    0,    0 },
++    { "Last Play",     "music_songs.lastplay",           ftDate,     0,    0,    0 },
++    { "Date Imported", "music_songs.date_entered",       ftDate,     0,    0,    0 },
+ };
+ 
+ struct SmartPLOperator
+@@ -334,7 +332,7 @@ bool SmartPLCriteriaRow::saveToDatabase(int smartPlaylistID)
+     query.bindValue(":FIELD", Field);
+     query.bindValue(":OPERATOR", Operator);
+     query.bindValue(":VALUE1", Value1);
+-    query.bindValue(":VALUE2", Value2);
++    query.bindValue(":VALUE2", Value2.isNull() ? "" : Value2);
+ 
+     if (!query.exec())
+     {
+@@ -750,7 +748,7 @@ void SmartPlaylistEditor::updateMatches(void)
+ 
+     m_matchesText->SetText(QString::number(m_matchesCount));
+ 
+-    m_playlistIsValid = (m_matchesCount > 0);
++    m_playlistIsValid = (m_criteriaRows.size() > 0);
+     m_showResultsButton->SetEnabled((m_matchesCount > 0));
+     titleChanged();
+ }
+@@ -1015,6 +1013,9 @@ QString SmartPlaylistEditor::getOrderByClause(void)
+ 
+ QString SmartPlaylistEditor::getWhereClause(void)
+ {
++    if (m_criteriaRows.size() == 0)
++        return QString();
++
+     bool bFirst = true;
+     QString sql = "WHERE ";
+ 
 diff --git a/mythtv/external/FFmpeg/README.sync b/mythtv/external/FFmpeg/README.sync
 index a91b793..2bf19c5 100644
 --- a/mythtv/external/FFmpeg/README.sync
@@ -1537,7 +1613,7 @@
  
  bool MythCoreContext::IsFrontendOnly(void)
 diff --git a/mythtv/libs/libmythbase/mythversion.h b/mythtv/libs/libmythbase/mythversion.h
-index c189c40..85d6ecd 100644
+index c189c40..b097b21 100644
 --- a/mythtv/libs/libmythbase/mythversion.h
 +++ b/mythtv/libs/libmythbase/mythversion.h
 @@ -12,7 +12,7 @@
@@ -1545,10 +1621,369 @@
  /// Including changes in the libmythbase, libmyth, libmythtv, libmythav* and
  /// libmythui class methods in exported headers.
 -#define MYTH_BINARY_VERSION "0.27.20140702-1"
-+#define MYTH_BINARY_VERSION "0.27.20140718-1"
++#define MYTH_BINARY_VERSION "0.27.20140719-1"
  
  /** \brief Increment this whenever the MythTV network protocol changes.
   *
+diff --git a/mythtv/libs/libmythdvdnav/dvdnav/dvdnav.c b/mythtv/libs/libmythdvdnav/dvdnav/dvdnav.c
+index 3a7952e..f4b5ecb 100644
+--- a/mythtv/libs/libmythdvdnav/dvdnav/dvdnav.c
++++ b/mythtv/libs/libmythdvdnav/dvdnav/dvdnav.c
+@@ -203,7 +203,7 @@ int64_t dvdnav_convert_time(dvd_time_t *time) {
+   int64_t result;
+   int64_t frames;
+ 
+-  result  = (time->hour    >> 4  ) * 10 * 60 * 60 * 90000;
++  result  = (time->hour    >> 4  ) * 10 * 60 * 60 * 90000ull;
+   result += (time->hour    & 0x0f)      * 60 * 60 * 90000;
+   result += (time->minute  >> 4  )      * 10 * 60 * 90000;
+   result += (time->minute  & 0x0f)           * 60 * 90000;
+diff --git a/mythtv/libs/libmythdvdnav/dvdnav/dvdnav.h b/mythtv/libs/libmythdvdnav/dvdnav/dvdnav.h
+index 1e7fa08..a5a76de 100644
+--- a/mythtv/libs/libmythdvdnav/dvdnav/dvdnav.h
++++ b/mythtv/libs/libmythdvdnav/dvdnav/dvdnav.h
+@@ -29,7 +29,7 @@
+ #define MP_DVDNAV 1
+ 
+ // Change this only when syncing to mplayer dvdnav trunk
+-#define DVDNAV_SVN_REV "svnR1251"
++#define DVDNAV_SVN_REV "svnR1294"
+ 
+ #ifdef __cplusplus
+ extern "C" {
+diff --git a/mythtv/libs/libmythdvdnav/dvdnav/remap.c b/mythtv/libs/libmythdvdnav/dvdnav/remap.c
+index f1dea93..4632a49 100644
+--- a/mythtv/libs/libmythdvdnav/dvdnav/remap.c
++++ b/mythtv/libs/libmythdvdnav/dvdnav/remap.c
+@@ -22,6 +22,7 @@
+ 
+ #include <stdlib.h>
[...2607 lines suppressed...]
 diff --git a/mythtv/programs/mythmetadatalookup/main.cpp b/mythtv/programs/mythmetadatalookup/main.cpp
 index 0878925..1da7dfa 100644
 --- a/mythtv/programs/mythmetadatalookup/main.cpp
@@ -13021,7 +15003,7 @@
      if ((retval = cmdline.ConfigureLogging()) != GENERIC_EXIT_OK)
          return retval;
 diff --git a/mythtv/programs/mythtranscode/mpeg2fix.cpp b/mythtv/programs/mythtranscode/mpeg2fix.cpp
-index 8ba085c..3cf92b9 100644
+index 8ba085c..c7214d3 100644
 --- a/mythtv/programs/mythtranscode/mpeg2fix.cpp
 +++ b/mythtv/programs/mythtranscode/mpeg2fix.cpp
 @@ -576,18 +576,21 @@ void MPEG2fixup::InitReplex()
@@ -13050,7 +15032,22 @@
          {
              case AV_CODEC_ID_MP2:
              case AV_CODEC_ID_MP3:
-@@ -1376,6 +1379,7 @@ int MPEG2fixup::GetFrame(AVPacket *pkt)
+@@ -803,10 +806,12 @@ bool MPEG2fixup::InitAV(QString inputfile, const char *type, int64_t offset)
+                 break;
+ 
+             case AVMEDIA_TYPE_AUDIO:
+-                if (!allaudio && inputFC->streams[i]->codec->channels == 0)
++                if (!allaudio && ext_count > 0 &&
++                    inputFC->streams[i]->codec->channels < 2 &&
++                    inputFC->streams[i]->codec->sample_rate < 100000)
+                 {
+                     LOG(VB_GENERAL, LOG_ERR,
+-                        QString("Skipping invalid audio stream: %1").arg(i));
++                        QString("Skipping audio stream: %1").arg(i));
+                     break;
+                 }
+                 if (inputFC->streams[i]->codec->codec_id == AV_CODEC_ID_AC3 ||
+@@ -1376,6 +1381,7 @@ int MPEG2fixup::GetFrame(AVPacket *pkt)
                  {
                      LOG(VB_GENERAL, LOG_DEBUG,
                          QString("Invalid stream ID %1, ignoring").arg(pkt->stream_index));
@@ -13058,7 +15055,7 @@
                  }
                  av_free_packet(pkt);
                  return 0;
-@@ -2398,6 +2402,11 @@ int MPEG2fixup::Start()
+@@ -2398,6 +2404,11 @@ int MPEG2fixup::Start()
  
              while (af->count())
              {
@@ -13089,6 +15086,154 @@
          return inputFC->streams[id]->parser;
      }
  
+diff --git a/mythtv/programs/mythtranscode/videodecodebuffer.cpp b/mythtv/programs/mythtranscode/videodecodebuffer.cpp
+index 73d23e0..b6bbdf9 100644
+--- a/mythtv/programs/mythtranscode/videodecodebuffer.cpp
++++ b/mythtv/programs/mythtranscode/videodecodebuffer.cpp
+@@ -1,11 +1,14 @@
+ #include "videodecodebuffer.h"
+ 
++#include "mythplayer.h"
++#include "videooutbase.h"
++
+ VideoDecodeBuffer::VideoDecodeBuffer(MythPlayer *player, VideoOutput *videoout,
+                                      bool cutlist, int size)
+   : m_player(player),         m_videoOutput(videoout),
+-    m_honorCutlist(cutlist),
+-    m_eof(false),             m_maxFrames(size),
+-    m_runThread(true),        m_isRunning(false)
++    m_honorCutlist(cutlist),  m_maxFrames(size),
++    m_runThread(true),        m_isRunning(false),
++    m_eof(false)
+ {
+ 
+ }
+@@ -35,8 +38,12 @@ void VideoDecodeBuffer::run()
+     m_isRunning = true;
+     while (m_runThread)
+     {
++        QMutexLocker locker(&m_queueLock);
++
+         if (m_frameList.size() < m_maxFrames && !m_eof)
+         {
++            locker.unlock();
++
+             DecodedFrameInfo tfInfo;
+             tfInfo.frame = NULL;
+             tfInfo.didFF = 0;
+@@ -47,21 +54,22 @@ void VideoDecodeBuffer::run()
+             {
+                 tfInfo.frame = m_videoOutput->GetLastDecodedFrame();
+ 
+-                QMutexLocker locker(&m_queueLock);
++                locker.relock();
+                 m_frameList.append(tfInfo);
+             }
+-            else
++            else if (m_player->GetEof() != kEofStateNone)
+             {
++                locker.relock();
+                 m_eof = true;
+             }
++            else
++                continue;
+ 
+             m_frameWaitCond.wakeAll();
+         }
+         else
+         {
+-            m_frameWaitLock.lock();
+-            m_frameWaitCond.wait(&m_frameWaitLock);
+-            m_frameWaitLock.unlock();
++            m_frameWaitCond.wait(locker.mutex());
+         }
+     }
+     m_isRunning = false;
+@@ -69,27 +77,21 @@ void VideoDecodeBuffer::run()
+ 
+ VideoFrame *VideoDecodeBuffer::GetFrame(int &didFF, bool &isKey)
+ {
+-    m_queueLock.lock();
++    QMutexLocker locker(&m_queueLock);
+ 
+     if (m_frameList.isEmpty())
+     {
+-        m_queueLock.unlock();
+-
+         if (m_eof)
+             return NULL;
+ 
+-        m_frameWaitLock.lock();
+-        m_frameWaitCond.wait(&m_frameWaitLock);
+-        m_frameWaitLock.unlock();
++        m_frameWaitCond.wait(locker.mutex());
+ 
+         if (m_frameList.isEmpty())
+             return NULL;
+-
+-        m_queueLock.lock();
+     }
+ 
+     DecodedFrameInfo tfInfo = m_frameList.takeFirst();
+-    m_queueLock.unlock();
++    locker.unlock();
+     m_frameWaitCond.wakeAll();
+ 
+     didFF = tfInfo.didFF;
+diff --git a/mythtv/programs/mythtranscode/videodecodebuffer.h b/mythtv/programs/mythtranscode/videodecodebuffer.h
+index 50c33d0..b4e241a 100644
+--- a/mythtv/programs/mythtranscode/videodecodebuffer.h
++++ b/mythtv/programs/mythtranscode/videodecodebuffer.h
+@@ -6,18 +6,20 @@
+ #include <QMutex>
+ #include <QRunnable>
+ 
+-#include "mythplayer.h"
+ #include "videooutbase.h"
+ 
++class MythPlayer;
++class VideoOutput;
++
+ class VideoDecodeBuffer : public QRunnable
+ {
+   public:
+     VideoDecodeBuffer(MythPlayer *player, VideoOutput *videoout,
+         bool cutlist, int size = 5);
+-    ~VideoDecodeBuffer();
++    virtual ~VideoDecodeBuffer();
+ 
+-    void        stop(void);
+-    void        run();
++    void          stop(void);
++    virtual void run();
+     VideoFrame *GetFrame(int &didFF, bool &isKey);
+ 
+   private:
+@@ -28,17 +30,16 @@ class VideoDecodeBuffer : public QRunnable
+         bool        isKey;
+     } DecodedFrameInfo;
+ 
+-    MythPlayer             *m_player;
+-    VideoOutput            *m_videoOutput;
+-    bool                    m_honorCutlist;
++    MythPlayer * const      m_player;
++    VideoOutput * const     m_videoOutput;
++    bool const              m_honorCutlist;
++    int const               m_maxFrames;
++    bool volatile           m_runThread;
++    bool volatile           m_isRunning;
++    QMutex mutable          m_queueLock; // Guards the following...
+     bool                    m_eof;
+-    int                     m_maxFrames;
+-    bool                    m_runThread;
+-    bool                    m_isRunning;
+-    QMutex                  m_queueLock;
+     QList<DecodedFrameInfo> m_frameList;
+     QWaitCondition          m_frameWaitCond;
+-    QMutex                  m_frameWaitLock;
+ };
+ 
+ #endif
 diff --git a/mythtv/themes/classic/tv_schedule.xml b/mythtv/themes/classic/tv_schedule.xml
 index c517e3a..6559d45 100644
 --- a/mythtv/themes/classic/tv_schedule.xml


More information about the rpmfusion-commits mailing list