diff options
Diffstat (limited to 'abs/core-testing')
21 files changed, 17 insertions, 978 deletions
diff --git a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD index a440786..a3c5e9f 100644 --- a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD @@ -1,5 +1,5 @@  pkgname=morethemes-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Additional themes for MythTV"  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mp_all.sh b/abs/core-testing/mythtv/trunk/mp_all.sh index d8666ed..4f7042a 100755 --- a/abs/core-testing/mythtv/trunk/mp_all.sh +++ b/abs/core-testing/mythtv/trunk/mp_all.sh @@ -1,5 +1,5 @@  #!/bin/sh -pkgver=21228 +pkgver=21333  pkgrel=1  # NOTE: Make sure to build and install mythtv first BEFORE building anything else diff --git a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD index 16ca0a5..d0a2419 100644 --- a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mytharchive-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD index 57480ea..b9d97fc 100644 --- a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythbrowser-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Mini web browser for MythTV"  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD index 6295977..6f37e1f 100644 --- a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythflix-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Netflix access plugin for MythTV"  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD index b5ac00f..f731055 100644 --- a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythgallery-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Image gallery plugin for MythTV"  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD index 19417e3..4dfdde0 100644 --- a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythgame-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Emulation plugin for MythTV"  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD index 952cf42..4ea24ea 100644 --- a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythmovies-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Displays information about movies playing in the area."  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD index 3d5b91b..cb0d2d5 100644 --- a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythmusic-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Music playing plugin for MythTV"  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD index ca36734..28ee7be 100644 --- a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythnews-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="News checking plugin for MythTV"  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD index ca716a3..ab6a93c 100755 --- a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD @@ -1,5 +1,5 @@  pkgname=myththemes-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Themes for MythTV"  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mythtv/H264Parser-fixes-v1.1.patch b/abs/core-testing/mythtv/trunk/mythtv/H264Parser-fixes-v1.1.patch deleted file mode 100644 index f8e2100..0000000 --- a/abs/core-testing/mythtv/trunk/mythtv/H264Parser-fixes-v1.1.patch +++ /dev/null @@ -1,368 +0,0 @@ -Index: libs/libmythtv/mpeg/H264Parser.cpp -=================================================================== ---- libs/libmythtv/mpeg/H264Parser.cpp.orig -+++ libs/libmythtv/mpeg/H264Parser.cpp -@@ -3,7 +3,9 @@ -  - extern "C" { - // from libavcodec --    extern const uint8_t *ff_find_start_code(const uint8_t * p, const uint8_t *end, uint32_t * state); -+    extern const uint8_t *ff_find_start_code(const uint8_t * p, -+                                             const uint8_t *end, -+                                             uint32_t * state); - #include "avcodec.h" - } -  -@@ -88,19 +90,18 @@ static const float eps = 1E-5; - H264Parser::H264Parser(void) - { -     Reset(); -+    I_is_keyframe = false; - } -  - void H264Parser::Reset(void) - { -     state_changed = false; --    seen_sps = seen_IDR = false; -+    seen_sps = false; -+    is_keyframe = false; -  -     sync_accumulator = 0xffffffff; --    find_AU = false; -     AU_pending = false; -  --    NAL_type = UNKNOWN; -- -     frame_num = prev_frame_num = -1; -     slice_type = SLICE_UNDEF; -     prev_pic_parameter_set_id = pic_parameter_set_id = -1; -@@ -112,7 +113,7 @@ void H264Parser::Reset(void) -     prev_delta_pic_order_cnt_bottom = delta_pic_order_cnt_bottom = 0; -     prev_delta_pic_order_cnt[0] = delta_pic_order_cnt[0] = 0; -     prev_delta_pic_order_cnt[1] = delta_pic_order_cnt[1] = 0; --    prev_nal_unit_type = nal_unit_type = 0; -+    prev_nal_unit_type = nal_unit_type = UNKNOWN; -     prev_idr_pic_id = idr_pic_id = 0; -  -     log2_max_frame_num = log2_max_pic_order_cnt_lsb = 0; -@@ -136,8 +137,6 @@ void H264Parser::Reset(void) -  -     AU_offset = frame_start_offset = keyframe_start_offset = 0; -     on_frame = on_key_frame = false; -- --    wait_for_IDR = false; - } -  -  -@@ -214,13 +213,7 @@ bool H264Parser::new_AU(void) -     { -         // Need previous slice information for comparison -  --        if (NAL_type == AU_DELIMITER || --            NAL_type == SPS || --            NAL_type == PPS || --            NAL_type == SEI || --            (NAL_type > SPS_EXT && NAL_type < AUXILIARY_SLICE)) --            result = true; --        else if (NAL_type != SLICE_IDR && frame_num != prev_frame_num) -+        if (nal_unit_type != SLICE_IDR && frame_num != prev_frame_num) -             result = true; -         else if (prev_pic_parameter_set_id != -1 && -                  pic_parameter_set_id != prev_pic_parameter_set_id) -@@ -230,9 +223,6 @@ bool H264Parser::new_AU(void) -         else if ((bottom_field_flag != -1 && prev_bottom_field_flag != -1) && -                  bottom_field_flag != prev_bottom_field_flag) -             result = true; --        else if ((nal_ref_idc == 0 || prev_nal_ref_idc == 0) && --                 nal_ref_idc != prev_nal_ref_idc) --            result = true; -         else if ((pic_order_cnt_type == 0 && prev_pic_order_cnt_type == 0) && -                  (pic_order_cnt_lsb != prev_pic_order_cnt_lsb || -                   delta_pic_order_cnt_bottom != -@@ -256,7 +246,6 @@ bool H264Parser::new_AU(void) -     prev_pic_parameter_set_id = pic_parameter_set_id; -     prev_field_pic_flag = field_pic_flag; -     prev_bottom_field_flag = bottom_field_flag; --    prev_nal_ref_idc = nal_ref_idc; -     prev_pic_order_cnt_lsb = pic_order_cnt_lsb; -     prev_delta_pic_order_cnt_bottom = delta_pic_order_cnt_bottom; -     prev_delta_pic_order_cnt[0] = delta_pic_order_cnt[0]; -@@ -273,7 +262,7 @@ uint32_t H264Parser::addBytes(const uint - { -     const uint8_t *byteP = bytes; -     const uint8_t *endP = bytes + byte_count; -- -+    const uint8_t *nalP; -     uint8_t        first_byte; -  -     state_changed = false; -@@ -305,10 +294,11 @@ uint32_t H264Parser::addBytes(const uint -   11 End of stream end_of_stream_rbsp( ) - */ -             first_byte = *(byteP - 1); --            NAL_type = first_byte & 0x1f; -+            nal_unit_type = first_byte & 0x1f; -             nal_ref_idc = (first_byte >> 5) & 0x3; -  --            if (NALisSlice(NAL_type) || NAL_type == SPS || NAL_type == PPS) -+            if (nal_unit_type == SPS || nal_unit_type == PPS || -+                nal_unit_type == SEI || NALisSlice(nal_unit_type)) -             { -                 /* -                   bitstream buffer, must be FF_INPUT_BUFFER_PADDING_SIZE -@@ -318,27 +308,51 @@ uint32_t H264Parser::addBytes(const uint -                 { -                     init_get_bits(&gb, byteP, 8 * (endP - byteP)); -  --                    if (NAL_type == SPS) -+                    if (nal_unit_type == SEI) -+                    { -+                        nalP = ff_find_start_code(byteP+1, endP, -+                                                  &sync_accumulator) - 8; -+                        decode_SEI(&gb, (nalP - byteP) * 8); -+                        set_AU_pending(stream_offset); -+                    } -+                    else if (nal_unit_type == SPS) -+                    { -                         decode_SPS(&gb); --                    else if (NAL_type == PPS) -+                        set_AU_pending(stream_offset); -+                    } -+                    else if (nal_unit_type == PPS) -+                    { -                         decode_PPS(&gb); -+                        set_AU_pending(stream_offset); -+                    } -                     else --                        find_AU = decode_Header(&gb); -+                    { -+                        decode_Header(&gb); -+                        if (new_AU()) -+                            set_AU_pending(stream_offset); -+                    } -  -                     byteP += (get_bits_count(&gb) / 8); -                 } -             } -- --            if (find_AU && new_AU()) -+            else if (!AU_pending) -             { --                /* After finding a new AU, don't look for another one --                   until we decode a SLICE */ --                find_AU = false; --                AU_pending = true; --                AU_offset = stream_offset; -+                if (nal_unit_type == AU_DELIMITER || -+                    (nal_unit_type > SPS_EXT && -+                     nal_unit_type < AUXILIARY_SLICE)) -+                { -+                    AU_pending = true; -+                    AU_offset = stream_offset; -+                } -+                else if ((nal_ref_idc == 0 || prev_nal_ref_idc == 0) && -+                         nal_ref_idc != prev_nal_ref_idc) -+                { -+                    AU_pending = true; -+                    AU_offset = stream_offset; -+                } -             } --             --            if (AU_pending && NALisSlice(NAL_type)) -+ -+            if (AU_pending && NALisSlice(nal_unit_type)) -             { -                 /* Once we know the slice type of a new AU, we can -                  * determine if it is a keyframe or just a frame */ -@@ -349,10 +363,11 @@ uint32_t H264Parser::addBytes(const uint -                 on_frame = true; -                 frame_start_offset = AU_offset; -  --                if (isKeySlice(slice_type) && (!wait_for_IDR || seen_IDR)) -+                if (is_keyframe) -                 { -                     on_key_frame = true; -                     keyframe_start_offset = AU_offset; -+                    is_keyframe = false; -                 } -                 else -                     on_key_frame = false; -@@ -360,6 +375,8 @@ uint32_t H264Parser::addBytes(const uint -             else -                 on_frame = on_key_frame = false; -  -+            prev_nal_ref_idc = nal_ref_idc; -+ -             return byteP - bytes; -         } -     } -@@ -440,8 +457,6 @@ bool H264Parser::decode_Header(GetBitCon -     */ -  -     frame_num = get_bits(gb, log2_max_frame_num); --    if (NAL_type == SLICE_IDR || frame_num == 0) --        seen_IDR = true; -  -     /* -       field_pic_flag equal to 1 specifies that the slice is a slice of a -@@ -475,8 +490,14 @@ bool H264Parser::decode_Header(GetBitCon -       second such IDR access unit. The value of idr_pic_id shall be in -       the range of 0 to 65535, inclusive. -      */ -+ -     if (nal_unit_type == SLICE_IDR) -+    { -+        is_keyframe = true; -         idr_pic_id = get_ue_golomb(gb); -+    } -+    else -+        is_keyframe |= (I_is_keyframe && isKeySlice(slice_type)); -  -     /* -       pic_order_cnt_lsb specifies the picture order count modulo -@@ -806,6 +827,44 @@ void H264Parser::decode_PPS(GetBitContex - #endif - } -  -+void H264Parser::decode_SEI(GetBitContext * gb, int bitlen) -+{ -+    int   recovery_frame_cnt = -1; -+    bool  exact_match_flag = false; -+    bool  broken_link_flag = false; -+    int   changing_group_slice_idc = -1; -+ -+    while (get_bits_count(gb) < bitlen) -+    { -+        int type = 0, size = 0; -+ -+        do { -+            type += show_bits(gb, 8); -+        } while (get_bits(gb, 8) == 255); -+ -+        do { -+            size += show_bits(gb, 8); -+        } while (get_bits(gb, 8) == 255); -+ -+        switch (type) -+        { -+          case SEI_TYPE_RECOVERY_POINT: -+            recovery_frame_cnt = get_ue_golomb(gb); -+            exact_match_flag = get_bits1(gb); -+            broken_link_flag = get_bits1(gb); -+            changing_group_slice_idc = get_bits(gb, 2); -+            is_keyframe |= (recovery_frame_cnt >= 0); -+            return; -+ -+          default: -+            skip_bits(gb, size * 8); -+            break; -+        } -+ -+        align_get_bits(gb); -+    } -+} -+ - void H264Parser::vui_parameters(GetBitContext * gb) - { -     /* -Index: libs/libmythtv/mpeg/H264Parser.h -=================================================================== ---- libs/libmythtv/mpeg/H264Parser.h.orig -+++ libs/libmythtv/mpeg/H264Parser.h -@@ -53,6 +53,12 @@ class H264Parser { -         AUXILIARY_SLICE = 19 -     }; -  -+    enum SEI_type { -+        SEI_TYPE_PIC_TIMING             = 1, -+        SEI_TYPE_USER_DATA_UNREGISTERED = 5, -+        SEI_TYPE_RECOVERY_POINT         = 6 -+    }; -+ -     /* -       slice_type values in the range 5..9 specify, in addition to the -       coding type of the current slice, that all other slices of the -@@ -90,9 +96,7 @@ class H264Parser { -  -     bool stateChanged(void) const { return state_changed; } -  --    // seenIDR implies that a SPS has also been seen --    bool seenIDR(void) const { return seen_IDR; } --    uint8_t lastNALtype(void) const { return NAL_type; } -+    uint8_t lastNALtype(void) const { return nal_unit_type; } -  -     frame_type FieldType(void) const -         { -@@ -130,29 +134,36 @@ class H264Parser { -                     nal_type == SLICE_IDR); -         } -  --    void waitForIDR(bool wait) { wait_for_IDR = wait; } -+    void use_I_forKeyframes(bool val) { I_is_keyframe = val; } -  -   private: -     enum constants {EXTENDED_SAR = 255}; -  --    bool is_first_VCL_NAL_unit(void); -+    inline void set_AU_pending(const uint64_t & stream_offset) -+        { -+            if (!AU_pending) -+            { -+                AU_pending = true; -+                AU_offset = stream_offset; -+            } -+        } -+ -     bool new_AU(void); -     bool decode_Header(GetBitContext *gb); -     void decode_SPS(GetBitContext *gb); -     void decode_PPS(GetBitContext * gb); -+    void decode_SEI(GetBitContext * gb, int len); -     void vui_parameters(GetBitContext * gb); -  --    bool       find_AU; -     bool       AU_pending; -     bool       state_changed; -     bool       seen_sps; --    bool       seen_IDR; -+    bool       is_keyframe; -+    bool       I_is_keyframe; -  -     uint32_t   sync_accumulator; -     GetBitContext gb; -  --    uint8_t    NAL_type; -- -     int        prev_frame_num, frame_num; -     uint       slice_type; -     int        prev_pic_parameter_set_id, pic_parameter_set_id; -@@ -188,8 +199,6 @@ class H264Parser { -  -     uint64_t   AU_offset, frame_start_offset, keyframe_start_offset; -     bool       on_frame, on_key_frame; -- --    bool       wait_for_IDR; - }; -  - #endif /* H264PARSER_H */ -Index: libs/libmythtv/mpegrecorder.cpp -=================================================================== ---- libs/libmythtv/mpegrecorder.cpp.orig -+++ libs/libmythtv/mpegrecorder.cpp -@@ -423,6 +423,7 @@ bool MpegRecorder::OpenV4L2DeviceAsInput -             bzero(_stream_id,  sizeof(_stream_id)); -             bzero(_pid_status, sizeof(_pid_status)); -             memset(_continuity_counter, 0xff, sizeof(_continuity_counter)); -+            m_h264_parser.use_I_forKeyframes(true); -         } -         else -         { -@@ -1373,8 +1374,6 @@ void MpegRecorder::ResetForNewFile(void) -     bzero(_stream_id,  sizeof(_stream_id)); -     bzero(_pid_status, sizeof(_pid_status)); -     memset(_continuity_counter, 0xff, sizeof(_continuity_counter)); -- --    m_h264_parser.waitForIDR(true); - } -  - void MpegRecorder::Reset(void) diff --git a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD index 4aad5af..df4afb8 100755 --- a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythtv-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="A personal video recorder for Linux"  url="http://www.mythtv.org" @@ -17,10 +17,7 @@ groups=('pvr')  install='mythtv.install'  patchs=() -#patchs=('smolt_jump.patch' 'myththemedmenu.h.patch' 'myththemedmenu.cpp.patch' ) -#	'H264Parser-fixes-v1.1.patch' \ -#	'hdpvr-signalmonitor.patch' 'ringbuffer_reset_v2.diff' ) -#patchs=('svn_main_menu_popup.patch' 'smolt_jump.patch') +#patchs=('smolt_jump.patch')  source=('mythbackend' 'myth.sh' `echo ${patchs[@]:0}` 'mythbackend.lr' 'mythfrontend.lr' 'pretty')  arch=('i686' 'x86_64')  #md5sums=() diff --git a/abs/core-testing/mythtv/trunk/mythtv/hdpvr-signalmonitor.patch b/abs/core-testing/mythtv/trunk/mythtv/hdpvr-signalmonitor.patch deleted file mode 100644 index 2465cfe..0000000 --- a/abs/core-testing/mythtv/trunk/mythtv/hdpvr-signalmonitor.patch +++ /dev/null @@ -1,292 +0,0 @@ -Index: libs/libmythtv/analogsignalmonitor.cpp -=================================================================== ---- libs/libmythtv/analogsignalmonitor.cpp.orig -+++ libs/libmythtv/analogsignalmonitor.cpp -@@ -4,23 +4,92 @@ - #include <cerrno> - #include <unistd.h> - #include <sys/ioctl.h> -+#include <poll.h> -  - #include "videodev_myth.h" - #include "mythcontext.h" - #include "analogsignalmonitor.h" - #include "v4lchannel.h" -  --#define LOC QString("AnalogSM: ").arg(channel->GetDevice()) --#define LOC_ERR QString("AnalogSM, Error: ").arg(channel->GetDevice()) -+#define LOC QString("AnalogSM: %1 ").arg(channel->GetDevice()) -+#define LOC_ERR QString("AnalogSM, Error: %1 ").arg(channel->GetDevice()) -  --AnalogSignalMonitor::AnalogSignalMonitor( --    int db_cardnum, V4LChannel *_channel, uint64_t _flags) : -+AnalogSignalMonitor::AnalogSignalMonitor(int db_cardnum, V4LChannel *_channel, -+                                         uint64_t _flags) : -     SignalMonitor(db_cardnum, _channel, _flags), --    usingv4l2(false) -+    m_usingv4l2(false), -+    m_stage(0) - { -     int videofd = channel->GetFd(); -     if (videofd >= 0) --        usingv4l2 = CardUtil::hasV4L2(videofd); -+    { -+        m_usingv4l2 = CardUtil::hasV4L2(videofd); -+        CardUtil::GetV4LInfo(videofd, m_card, m_driver, m_version); -+        VERBOSE(VB_RECORD, LOC + QString("card '%1' driver '%2' version '%3'") -+                .arg(m_card).arg(m_driver).arg(m_version)); -+    } -+} -+ -+bool AnalogSignalMonitor::handleHDPVR(int videofd) -+{ -+    struct v4l2_encoder_cmd command; -+    struct pollfd polls; -+    int    idx; -+ -+    if (m_stage == 0) -+    { -+        VERBOSE(VB_RECORD, LOC + "hd-pvr start encoding"); -+        // Tell it to start encoding, then wait for it to actually feed us -+        // some data. -+        memset(&command, 0, sizeof(struct v4l2_encoder_cmd)); -+        command.cmd = V4L2_ENC_CMD_START; -+        if (ioctl(videofd, VIDIOC_ENCODER_CMD, &command) == 0) -+            m_stage = 1; -+        else -+            VERBOSE(VB_IMPORTANT, LOC_ERR + "Start encoding failed" + ENO); -+    } -+ -+    if (m_stage == 1) -+    { -+        VERBOSE(VB_RECORD, LOC + "hd-pvr wait for data"); -+ -+        polls.fd      = videofd; -+        polls.events  = POLLIN; -+        polls.revents = 0; -+ -+        if (poll(&polls, 1, 1500) > 0) -+            m_stage = 2; -+        else -+        { -+            VERBOSE(VB_RECORD, LOC + "Poll timed-out.  Resetting"); -+            memset(&command, 0, sizeof(struct v4l2_encoder_cmd)); -+            command.cmd = V4L2_ENC_CMD_STOP; -+            ioctl(videofd, VIDIOC_ENCODER_CMD, &command); -+            m_stage = 0; -+        } -+    } -+ -+    if (m_stage == 2) -+    { -+        VERBOSE(VB_RECORD, LOC + "hd-pvr data ready.  Stop encoding"); -+ -+        command.cmd = V4L2_ENC_CMD_STOP; -+        if (ioctl(videofd, VIDIOC_ENCODER_CMD, &command) == 0) -+            m_stage = 3; -+    } -+ -+    if (m_stage == 3) -+    { -+        struct v4l2_format vfmt; -+        memset(&vfmt, 0, sizeof(vfmt)); -+        vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; -+             -+        VERBOSE(VB_RECORD, LOC + "hd-pvr waiting for valid resolution"); -+        if ((ioctl(videofd, VIDIOC_G_FMT, &vfmt) == 0) && vfmt.fmt.pix.width) -+            m_stage = 4; -+    } -+ -+    return (m_stage == 4); - } -  - void AnalogSignalMonitor::UpdateValues(void) -@@ -33,19 +102,24 @@ void AnalogSignalMonitor::UpdateValues(v -         return; -  -     bool isLocked = false; --    if (usingv4l2) -+    if (m_usingv4l2) -     { --        struct v4l2_tuner tuner; --        bzero(&tuner, sizeof(tuner)); -- --        if (ioctl(videofd, VIDIOC_G_TUNER, &tuner, 0) < 0) --        { --            VERBOSE(VB_IMPORTANT, --                    LOC_ERR + "Failed to probe signal (v4l2)" + ENO); --        } -+        if (m_driver == "hdpvr") -+            isLocked = handleHDPVR(videofd); -         else -         { --            isLocked = tuner.signal; -+            struct v4l2_tuner tuner; -+            bzero(&tuner, sizeof(tuner)); -+ -+            if (ioctl(videofd, VIDIOC_G_TUNER, &tuner, 0) < 0) -+            { -+                VERBOSE(VB_IMPORTANT, -+                        LOC_ERR + "Failed to probe signal (v4l2)" + ENO); -+            } -+            else -+            { -+                isLocked = tuner.signal; -+            } -         } -     } -     else  -Index: libs/libmythtv/analogsignalmonitor.h -=================================================================== ---- libs/libmythtv/analogsignalmonitor.h.orig -+++ libs/libmythtv/analogsignalmonitor.h -@@ -19,7 +19,13 @@ class AnalogSignalMonitor : public Signa -     virtual void UpdateValues(void); -  -   private: --    bool usingv4l2; -+    bool handleHDPVR(int videofd); -+ -+    bool     m_usingv4l2; -+    QString  m_card; -+    QString  m_driver; -+    uint32_t m_version; -+    int      m_stage; - }; -  - #endif // _ANALOG_SIGNAL_MONITOR_H_ -Index: libs/libmythtv/mpegrecorder.cpp -=================================================================== ---- libs/libmythtv/mpegrecorder.cpp.orig -+++ libs/libmythtv/mpegrecorder.cpp -@@ -1041,14 +1041,6 @@ void MpegRecorder::StartRecording(void) -  -     if (driver == "hdpvr") -     { --        if (curRecording->recgroup == "LiveTV") --        { --            // Don't bother checking resolution, always use best bitrate --            int maxbitrate = std::max(high_mpeg4peakbitrate, --                                      high_mpeg4avgbitrate); --            SetBitrate(high_mpeg4avgbitrate, maxbitrate, "LiveTV"); --        } -- -         int progNum = 1; -         MPEGStreamData *sd = new MPEGStreamData(progNum, true); -         sd->SetRecordingType(_recording_type); -@@ -1492,7 +1484,7 @@ bool MpegRecorder::StartEncoding(int fd) -     memset(&command, 0, sizeof(struct v4l2_encoder_cmd)); -     command.cmd = V4L2_ENC_CMD_START; -  --    if (driver == "hdpvr" && curRecording->recgroup != "LiveTV") -+    if (driver == "hdpvr") -         HandleResolutionChanges(); -  -     VERBOSE(VB_RECORD, LOC + "StartEncoding"); -@@ -1615,64 +1607,6 @@ void MpegRecorder::HandleSingleProgramPM -         DTVRecorder::BufferedWrite(*(reinterpret_cast<TSPacket*>(&buf[i]))); - } -  --/// After a resolution change, it can take the HD-PVR a few --/// seconds before it is usable again. --bool MpegRecorder::WaitFor_HDPVR(void) --{ --    struct v4l2_encoder_cmd command; --    struct v4l2_format vfmt; --    struct pollfd polls; --    int    idx; -- --    // Tell it to start encoding, then wait for it to actually feed us --    // some data. --    QMutexLocker locker(&start_stop_encoding_lock); -- --    // Sleep any less than 1.5 seconds, and the HD-PVR will --    // return the old resolution, when the resolution is changing. --    usleep(1500 * 1000); -- --    memset(&command, 0, sizeof(struct v4l2_encoder_cmd)); --    command.cmd = V4L2_ENC_CMD_START; -- --    for (idx = 0; idx < 20; ++idx) --    { --        if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) == 0) --            break; --        usleep(100 * 1000); --    } -- --    if (idx == 20) --        return false; -- --    polls.fd      = readfd; --    polls.events  = POLLIN; --    polls.revents = 0; -- --    if (poll(&polls, 1, 5000) <= 0) --        return false; -- --    // HD-PVR should now be "ready" --    command.cmd = V4L2_ENC_CMD_STOP; -- --    if (ioctl(readfd, VIDIOC_ENCODER_CMD, &command) < 0) --        return false; -- --    memset(&vfmt, 0, sizeof(vfmt)); --    vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; -- --    for (idx = 0; idx < 20; ++idx) --    { --        if (0 == ioctl(chanfd, VIDIOC_G_FMT, &vfmt)) --            return true; --        // Typically takes 0.9 seconds after a resolution change --        usleep(100 * 1000); --    } -- --    VERBOSE(VB_RECORD, LOC + "WaitForHDPVR failed"); --    return false; --} -- - void MpegRecorder::SetBitrate(int bitrate, int maxbitrate, -                               const QString & reason) - { -@@ -1710,9 +1644,6 @@ void MpegRecorder::HandleResolutionChang -     memset(&vfmt, 0, sizeof(vfmt)); -     vfmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; -              --    if (driver == "hdpvr") --        WaitFor_HDPVR(); -- -     if (0 == ioctl(chanfd, VIDIOC_G_FMT, &vfmt)) -     { -         VERBOSE(VB_RECORD, LOC + QString("Got Resolution %1x%2") -Index: libs/libmythtv/mpegrecorder.h -=================================================================== ---- libs/libmythtv/mpegrecorder.h.orig -+++ libs/libmythtv/mpegrecorder.h -@@ -86,7 +86,6 @@ class MpegRecorder : public DTVRecorder, -  -     void ResetForNewFile(void); -  --    bool WaitFor_HDPVR(void); -     void SetBitrate(int bitrate, int maxbitrate, const QString & reason); -     void HandleResolutionChanges(void); -  -Index: libs/libmythtv/signalmonitor.h -=================================================================== ---- libs/libmythtv/signalmonitor.h.orig -+++ libs/libmythtv/signalmonitor.h -@@ -287,6 +287,7 @@ inline bool SignalMonitor::IsRequired(co -     return (CardUtil::IsDVBCardType(cardtype) || -             (cardtype.toUpper() == "HDTV")      || -             (cardtype.toUpper() == "HDHOMERUN") || -+            (cardtype.toUpper() == "HDPVR") || -             (cardtype.toUpper() == "FIREWIRE")  || -             (cardtype.toUpper() == "FREEBOX")); - } -@@ -295,6 +296,7 @@ inline bool SignalMonitor::IsSupported(c - { -     return (IsRequired(cardtype)        || -             (cardtype.toUpper() == "V4L") || -+            (cardtype.toUpper() == "HDPVR") || -             (cardtype.toUpper() == "MPEG")); - } -  diff --git a/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.cpp.patch b/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.cpp.patch deleted file mode 100644 index fbb85c3..0000000 --- a/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.cpp.patch +++ /dev/null @@ -1,183 +0,0 @@ -Index: libs/libmythui/myththemedmenu.cpp -=================================================================== ---- libs/libmythui/myththemedmenu.cpp	(revision 20249) -+++ libs/libmythui/myththemedmenu.cpp	(working copy) -@@ -88,6 +88,8 @@ -       m_state(state), m_allocedstate(false), m_foundtheme(false), -       m_exitModifier(-1), m_ignorekeys(false), m_wantpop(false) - { -+    m_menuPopup = NULL; -+ -     if (!m_state) -     { -         m_state = new MythThemedMenuState(parent, "themedmenustate"); -@@ -269,6 +271,10 @@ -                 } -             } -         } -+        else if (action == "MENU") -+        { -+            doMenu(); -+        } -         else -             handled = false; -     } -@@ -290,6 +296,158 @@ -     updateLCD(); - } -  -+void MythThemedMenu::doMenu() -+{ -+    if( m_menuPopup != NULL ) -+        return; -+ -+    int allowsd =  GetMythDB()->GetNumSetting("AllowQuitShutdown"); -+    int override_menu = GetMythDB()->GetNumSetting("OverRideExitMenu"); -+    QString label = "System Menu"; -+    MythScreenStack* mainStack = GetMythMainWindow()->GetMainStack(); -+    m_menuPopup = new MythDialogBox(label, mainStack, "menuPopup"); -+ -+    if (m_menuPopup->Create()) -+        mainStack->AddScreen(m_menuPopup); -+ -+    if (override_menu == 0) -+    { -+        if ( (allowsd != 0) && (allowsd != 4)  ) -+        { -+            m_menuPopup->SetReturnEvent(this,"popmenu_exit"); -+            m_menuPopup->AddButton("Shutdown"); -+            m_menuPopup->AddButton("Reboot"); -+        } -+        else -+        { -+            m_menuPopup->SetReturnEvent(this,"popmenu_noexit"); -+        } -+    } -+    if (override_menu == 5) -+    { // reboot -+        m_menuPopup->SetReturnEvent(this,"popmenu_reboot"); -+        m_menuPopup->AddButton("Reboot"); -+    } -+    else if (override_menu == 2 || override_menu == 4) -+    { // shutdown -+            m_menuPopup->SetReturnEvent(this,"popmenu_shutdown"); -+            m_menuPopup->AddButton("Shutdown"); -+    } -+    else if (override_menu == 3 || override_menu == 6) -+    { //    both -+        m_menuPopup->SetReturnEvent(this,"popmenu_exit"); -+        m_menuPopup->AddButton("Shutdown"); -+        m_menuPopup->AddButton("Reboot"); -+    } -+    else -+    { -+        m_menuPopup->SetReturnEvent(this,"popmenu_noexit"); -+    } -+ -+    m_menuPopup->AddButton("About"); -+    m_menuPopup->AddButton("Cancel"); -+ -+} -+ -+void MythThemedMenu::aboutScreen() -+{ -+ -+    extern const char* myth_source_version; -+    extern const char* myth_source_path; -+    QString distro_line; -+    distro_line = ""; -+ -+    QFile file("/etc/os_myth_release"); -+    if (file.open(QFile::ReadOnly)) -+    { -+        QTextStream t( &file );        // use a text stream -+        distro_line = t.readLine(); -+        file.close(); -+    } -+ -+    QString label = ""; -+    label.append(QObject::tr("Revision: ") + myth_source_version   + "  \n  Branch:" +  myth_source_path  + "\n" + distro_line ); -+ -+    MythScreenStack* mainStack = GetMythMainWindow()->GetMainStack(); -+    m_menuPopup = new MythDialogBox(label, mainStack, "About"); -+    if (m_menuPopup->Create()) -+        mainStack->AddScreen(m_menuPopup); -+ -+    m_menuPopup->SetReturnEvent(this, "About"); -+    m_menuPopup->AddButton("OK!"); -+ -+} -+ -+void MythThemedMenu::customEvent(QEvent *event) -+{ -+    if (event->type() == kMythDialogBoxCompletionEventType) -+    { -+        DialogCompletionEvent *dce = -+                dynamic_cast<DialogCompletionEvent*>(event); -+ -+        QString resultid = dce->GetId(); -+        int buttonnum = dce->GetResult(); -+        QString halt_cmd = GetMythDB()->GetSetting("HaltCommand"); -+        QString reboot_cmd = GetMythDB()->GetSetting("RebootCommand"); -+ -+        if (resultid == "popmenu_exit") -+        { -+            if (buttonnum == 0) -+            { -+                if (!halt_cmd.isEmpty()) -+                    system(halt_cmd.toAscii()); -+            } -+ -+            if (buttonnum == 1) -+            { -+                if (!reboot_cmd.isEmpty()) -+                    system(reboot_cmd.toAscii()); -+            } -+ -+            if (buttonnum == 2) -+            { -+                aboutScreen(); -+            } -+        } -+ -+        if (resultid == "popmenu_noexit") -+        { -+            if (buttonnum == 0) -+                aboutScreen(); -+        } -+ -+        if (resultid == "popmenu_reboot") -+        { -+            if (buttonnum == 0) -+            { -+                if (!reboot_cmd.isEmpty()) -+                    system(reboot_cmd.toAscii()); -+            } -+ -+            if (buttonnum == 1) -+            { -+                aboutScreen(); -+            } -+        } -+ -+        if (resultid == "popmenu_shutdown") -+        { -+            if (buttonnum == 0) -+            { -+                if (!halt_cmd.isEmpty()) -+                    system(halt_cmd.toAscii()); -+            } -+ -+            if (buttonnum == 1) -+            { -+                aboutScreen(); -+            } -+        } -+ -+        m_menuPopup = NULL; -+    } -+} -+ - /** \brief Parses the element's tags and set the ThemeButton's type, -  *         text, depends, and action, then adds the button. -  * diff --git a/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.h.patch b/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.h.patch deleted file mode 100644 index 688e99c..0000000 --- a/abs/core-testing/mythtv/trunk/mythtv/myththemedmenu.h.patch +++ /dev/null @@ -1,24 +0,0 @@ -Index: libs/libmythui/myththemedmenu.h -=================================================================== ---- libs/libmythui/myththemedmenu.h	(revision 20249) -+++ libs/libmythui/myththemedmenu.h	(working copy) -@@ -2,6 +2,7 @@ - #define MYTHTHEMEDMENU_H_ -  - #include "mythscreentype.h" -+#include "mythdialogbox.h" - #include "mythuistatetype.h" - #include "mythuibuttonlist.h" - #include "xmlparsebase.h" -@@ -79,6 +80,11 @@ -     void ReloadExitKey(void); -     virtual void aboutToShow(void); -  -+    void doMenu(); -+    void aboutScreen(); -+    MythDialogBox* m_menuPopup; -+    void customEvent(QEvent *event); -+ -   protected: -     virtual bool keyPressEvent(QKeyEvent *e); -  diff --git a/abs/core-testing/mythtv/trunk/mythtv/ringbuffer_reset_v2.diff b/abs/core-testing/mythtv/trunk/mythtv/ringbuffer_reset_v2.diff deleted file mode 100644 index 7876a2e..0000000 --- a/abs/core-testing/mythtv/trunk/mythtv/ringbuffer_reset_v2.diff +++ /dev/null @@ -1,91 +0,0 @@ -Index: libs/libmythtv/recorderbase.cpp -=================================================================== ---- libs/libmythtv/recorderbase.cpp	(revision 20635) -+++ libs/libmythtv/recorderbase.cpp	(working copy) -@@ -241,6 +241,8 @@ -         rb_changed = true; -  -         StartNewFile(); -+ -+        ResetStreamParser(); -     } -     nextRingBufferLock.unlock(); -  -Index: libs/libmythtv/mpegrecorder.h -=================================================================== ---- libs/libmythtv/mpegrecorder.h	(revision 20635) -+++ libs/libmythtv/mpegrecorder.h	(working copy) -@@ -63,6 +63,9 @@ -     // ReaderPausedCB -     virtual void ReaderPaused(int fd) { pauseWait.wakeAll(); } -  -+    // Reset stream parsers when necessary -+    virtual void ResetStreamParser(void); -+ -   private: -     void SetIntOption(RecordingProfile *profile, const QString &name); -     void SetStrOption(RecordingProfile *profile, const QString &name); -Index: libs/libmythtv/recorderbase.h -=================================================================== ---- libs/libmythtv/recorderbase.h	(revision 20635) -+++ libs/libmythtv/recorderbase.h	(working copy) -@@ -212,6 +212,11 @@ -      */ -     virtual void CheckForRingBufferSwitch(void); -  -+    /** \brief Inherited method for the stream parser to be reset after -+               a ringbuffer change. Used mainly in mpegrecorder for H264Parser. -+     */ -+    virtual void ResetStreamParser(void) { }; -+ -     /** \brief Save the seektable to the DB -      */ -     void SavePositionMap(bool force = false); -Index: libs/libmythtv/mpegrecorder.cpp -=================================================================== ---- libs/libmythtv/mpegrecorder.cpp	(revision 20635) -+++ libs/libmythtv/mpegrecorder.cpp	(working copy) -@@ -1430,12 +1430,7 @@ -     { -         VERBOSE(VB_RECORD, LOC + "PauseAndWait unpause"); -  --        if (driver == "hdpvr") --        { --            m_h264_parser.Reset(); --            _wait_for_keyframe_option = true; --            _seen_sps = false; --        } -+        ResetStreamParser(); -  -         // Some drivers require streaming to be disabled before -         // an input switch and other channel format setting. -@@ -1500,12 +1495,7 @@ -  -     if (ioctl(fd, VIDIOC_ENCODER_CMD, &command) == 0) -     { --        if (driver == "hdpvr") --        { --            m_h264_parser.Reset(); --            _wait_for_keyframe_option = true; --            _seen_sps = false; --        } -+        ResetStreamParser(); -  -         VERBOSE(VB_RECORD, LOC + "Encoding started"); -         return true; -@@ -1762,3 +1752,15 @@ -         SetBitrate(bitrate, maxbitrate, "New"); -     } - } -+ -+void MpegRecorder::ResetStreamParser(void)                -+{         -+    if (driver == "hdpvr")       -+    { -+        m_h264_parser.Reset(); -+        _wait_for_keyframe_option = true; -+        _seen_sps = false; -+    } -+ -+    RecorderBase::ResetStreamParser(); -+} diff --git a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD index f229240..bd8ed74 100644 --- a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythvideo-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Video playback and browsing plugin for MythTV"  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD index c1de969..d98973e 100644 --- a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythweather-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Weather checking plugin for MythTV"  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD index 2e3269d..48236c8 100644 --- a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythweb-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Web interface for MythTV's backend"  url="http://www.mythtv.org" diff --git a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD index eee2306..abd7902 100644 --- a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD +++ b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD @@ -1,5 +1,5 @@  pkgname=mythzoneminder-svn -pkgver=21228 +pkgver=21333  pkgrel=1  pkgdesc="Integrates ZoneMinder into MythTV"  url="http://www.mythtv.org"  | 
