Modify

Opened 10 years ago

Closed 9 years ago

#5443 closed enhancement (fixed)

HD-PVR support

Reported by: jppoet@… Owned by: danielk
Priority: minor Milestone: unknown
Component: mythtv Version: unknown
Severity: medium Keywords: Hauppauge HD-PVR
Cc: Ticket locked: yes

Description

Ticket to track support for the Hauppauge HD-PVR.

The initial patch I am attaching to this ticket is NOT ready for prime time. It does allow Myth to record shows via the HD-PVR, but still lacks functionallity and has known (and probably unknown) bugs. It also may be the completely wrong approach...

It uses the "MPEG2 encoder card" section in mythtv-setup, to configure the HD-PVR input. It does not support the HD-PVRs built in irblaster (yet), but the external channel changing script works fine.

If you record two shows back-to-back, the second will be corrupt.

Support for recording profiles has yet to be written.

The HD-PVR driver announcement: http://www.gossamer-threads.com/lists/mythtv/users/337305?search_string=HD-PVR%20driver;#337305

Attachments (15)

hdpvr-0.1-recorder.patch (42.2 KB) - added by jppoet@… 10 years ago.
version 0.1
hdpvr-0.13-recorder.patch (47.3 KB) - added by jppoet@… 10 years ago.
Version 0.13
hdpvr-0.14-recorder.patch (49.3 KB) - added by jppoet@… 10 years ago.
Verison 0.14 (minor cleanups)
libs_libmythtv_mpegrecorder.cpp-mem-leak.patch (1.6 KB) - added by Erik Hovland <erik@…> 10 years ago.
uses auto_ptr to keep from leaking tspacket_fake
h264-parse-frame_num.patch (5.3 KB) - added by jppoet@… 10 years ago.
Parse frame_num from H.264
hdpvr-channel-change.patch (3.6 KB) - added by jppoet@… 10 years ago.
HACK: reset HD-PVR driver, when "select timeout" errors are detected. (Does not fix LiveTV)
h264-parse-field-flag.diff (7.5 KB) - added by jppoet@… 10 years ago.
Update H.264 processing to parse bottom_field_flag and use it for frame detection
5443-recording-profiles-v1.patch (28.6 KB) - added by danielk 10 years ago.
Adds recording profiles (not finished, only respects 'high' resolution bitrates.)
5443-recordingprofiles-schema1222-1223.patch (30.3 KB) - added by robert.mcnamara@… 10 years ago.
Updated Patch for HD-PVR recording profiles
mpegrecorder-drb.patch (13.1 KB) - added by jppoet@… 10 years ago.
Add DeviceReadBuffer? to mpegrecorder class
mpegrecorder-drb-poll.patch (13.7 KB) - added by jppoet@… 10 years ago.
Use DeviceReadBuffer? in mpegrecorder
h264-parse-field-flag-v2.patch (7.7 KB) - added by danielk 10 years ago.
ready to apply version of this patch (formating/includes only changes)
gdb.15215.txt (49.4 KB) - added by Mike Rice <mikerice1969@…> 10 years ago.
DeviceReadBuffer? crash bt1
gdb.32613.txt (46.9 KB) - added by Mike Rice <mikerice1969@…> 10 years ago.
DeviceReadBuffer? crash bt2
mpegrecorder-corruption.patch (594 bytes) - added by jppoet@… 10 years ago.
Fix memory corruption crash (I hope)

Download all attachments as: .zip

Change History (64)

Changed 10 years ago by jppoet@…

version 0.1

Changed 10 years ago by jppoet@…

Version 0.13

comment:1 Changed 10 years ago by jppoet@…

Getting closer.

Version 0.13 fixes the problem with corruption in some of the recordings.

1080i recording have seek problems, possibly associated with it reporting the show length to be double what it really is. 720p shows do not seem to have this problem.

Better link for driver announcement: http://www.gossamer-threads.com/lists/mythtv/users/337305#337305

Changed 10 years ago by jppoet@…

Verison 0.14 (minor cleanups)

comment:2 Changed 10 years ago by jppoet@…

Version 0.14 is just minor cleanups, with a bit of refactoring. No new fixes.

Wiki for the HD-PVR: http://www.mythtv.org/wiki/index.php/Hauppauge_HD-PVR

comment:3 Changed 10 years ago by danielk

(In [17491]) Refs #5443. Adds PS keyframe finding code to dtvrecorder.

comment:4 Changed 10 years ago by danielk

(In [17492]) Refs #5443. Refactors MpegRecorder? to use DTVRecorder.

This is prep for extending MpegRecorder? to handle the HD-PVR.

comment:5 Changed 10 years ago by steve@…

this is a question on which dvb source to use. there is a dvb header file (frontend.h) in the hdpvr source from janne, there is one in the kernel source tree, and one in the v4l source tree. possibly others but these are the 3 I have on my mythtv machine. which is the best to use?

thanks

steve

comment:6 Changed 10 years ago by danielk

(In [17493]) Refs #5443. Adds basic HD-PVR support using patch from John Poet.

The most important thing about this patch is that it does not break ivtv support. There are still a number of problems with HD-PVR recorder that make it unusable in a production system, mostly having to do with program transitions failing mysteriously.

Note: You will need the latest HD-PVR driver from Janne's hg, and the 1.0 firmware (i.e. not 1.0b or any other firmware).

Most of my testing has been to make sure this doesn't break PVR-x50 support, please do no open tickets for any problems with HD-PVR support quite yet, but feel free to drop by the #hdpvr freenode IRC channel to report any problems.

comment:7 Changed 10 years ago by danielk

(In [17494]) Refs #5443. Adds MPEG registration descriptors, including for HD-PVR output.

comment:8 Changed 10 years ago by Erik Hovland <erik@…>

The revision 17493 introduced a possible segfault in member function MpegRecorder::SetStreamData?() at roughly line 1264. data is dereferenced as 'data->SetDesiredProgram?(1);' but just two lines above data is checked for validity. That call should be part of the same check for validity so it doesn't cause a segfault in case data is invalid.

comment:9 Changed 10 years ago by danielk

  • Owner changed from ijr to danielk
  • Status changed from new to assigned

comment:10 Changed 10 years ago by danielk

(In [17503]) Refs #5443. Fixes possible segfault in HD-PVR code discovered by Erik Hovland.

comment:11 Changed 10 years ago by danielk

(In [17504]) Refs #5443. Disables PAFF support nagging in ffmpeg libs.

comment:12 Changed 10 years ago by danielk

(In [17505]) Refs #5443. Refactors MpegRecorder?'s HD-PVR support to use MPEGStreamData for some of the stuff we were doing in the recorder (TS Packet resync).

comment:13 Changed 10 years ago by janne

(In [17506]) Refs #5443. The HD PVR supports now select()

comment:14 Changed 10 years ago by danielk

(In [17507]) Refs #5443. Adds error checking for START + STOP encoding ioctls.

comment:15 Changed 10 years ago by janne

(In [17508]) Refs #5443. Fix non_blocking reads from the HD PVR

the old code was reusing already processed data

Changed 10 years ago by Erik Hovland <erik@…>

uses auto_ptr to keep from leaking tspacket_fake

comment:16 Changed 10 years ago by Erik Hovland <erik@…>

Revision 17505 introduced a possible memory leak with tspacket_fake if the member function ProcessTSPacket() returned early.

The attached patch changes tspacket_fake to an auto_ptr to avoid that and clean up the code a little. But the leak could be fixed by adding a check/delete at the return before the buffer write.

comment:17 Changed 10 years ago by danielk

(In [17512]) Refs #5443. Cleanup patch from John Poet + fix for memory leak caught by Erik Hovland.

comment:18 Changed 10 years ago by jppoet@…

Adding a patch which will parse the frame_num out of the h.264 stream. At this point, that is all does -- it does not fix the keyframe problem, but should help with the solution.

It will be a week before I can work on this some more, so I am throwing this out there in case someone else wants to take up the task.

Changed 10 years ago by jppoet@…

Parse frame_num from H.264

comment:19 Changed 10 years ago by steve@…

Im having some issues recording, when it starts up I get the following

Jun 28 10:36:31 mpc kernel: hdpvr: INFO start_streaming: video signal: 1920x1080@30hz Jun 28 10:36:31 mpc kernel: BUG: unable to handle kernel NULL pointer dereference at 00000000 Jun 28 10:36:31 mpc kernel: IP: [<f88ff8c5>] :hdpvr:start_streaming+0x75/0x170 Jun 28 10:36:31 mpc kernel: *pde = 00000000 Jun 28 10:36:31 mpc kernel: Oops: 0000 #1 SMP Jun 28 10:36:31 mpc kernel: Modules linked in: lirc_imon lirc_dev lgdt330x cx88_dvb cx88_vp3054_i2c cx8802 cx88xx i2c_algo_bit btcx_risc videobuf_dma_sg videobuf_dvb dvb_core tuner_simple tuner_types tda9887 tda8290 tuner tvp5150 msp3400 ir_kbd_i2c em28xx compat_ioctl32 videobuf_vmalloc videobuf_core ir_common tveeprom nvidia(P) coretemp hwmon sbp2 snd_hda_intel snd_usb_audio snd_pcm_oss snd_mixer_oss snd_seq_dummy snd_pcm hdpvr snd_seq_oss snd_page_alloc snd_usb_lib videodev snd_seq_midi v4l1_compat snd_seq_midi_event snd_seq snd_rawmidi v4l2_common snd_timer snd_hwdep snd_seq_device e1000e i2c_core snd sata_sil24 pata_marvell ata_generic raid10 raid456 async_xor async_memcpy async_tx xor raid1 raid0 multipath linear md_mod [last unloaded: lirc_dev] Jun 28 10:36:31 mpc kernel: Jun 28 10:36:31 mpc kernel: Pid: 7199, comm: mythbackend Tainted: P (2.6.25.6 #5) Jun 28 10:36:31 mpc kernel: EIP: 0060:[<f88ff8c5>] EFLAGS: 00210282 CPU: 1 Jun 28 10:36:31 mpc kernel: EIP is at start_streaming+0x75/0x170 [hdpvr] Jun 28 10:36:31 mpc kernel: EAX: 00000000 EBX: f711c100 ECX: 000000b8 EDX: 00000000 Jun 28 10:36:31 mpc kernel: ESI: f713cdd8 EDI: f711c1a4 EBP: f711c1bc ESP: f3599b3c Jun 28 10:36:31 mpc kernel: DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Jun 28 10:36:31 mpc kernel: Process mythbackend (pid: 7199, ti=f3598000 task=f359e000 task.ti=f3598000) Jun 28 10:36:31 mpc kernel: Stack: f89012ac f8900c0f 00000780 00000438 0000001e c16afe60 00000041 f711c180 Jun 28 10:36:31 mpc kernel: f88ffb9a f4443540 c018bf02 c0618aa0 009924d6 f3599bec f3e9e300 00000041 Jun 28 10:36:31 mpc kernel: 00000002 f3e9e300 00000002 c01785a6 f3599bec f3599e54 00000060 f3599f9c Jun 28 10:36:31 mpc kernel: Call Trace: Jun 28 10:36:31 mpc kernel: [<f88ffb9a>] hdpvr_poll+0x9a/0x100 [hdpvr] Jun 28 10:36:31 mpc kernel: [find_get_block+130/400] find_get_block+0x82/0x190 Jun 28 10:36:31 mpc kernel: [do_select+598/1152] do_select+0x256/0x480 Jun 28 10:36:31 mpc kernel: [pollwait+0/240] pollwait+0x0/0xf0 Jun 28 10:36:31 mpc kernel: [blk_recount_segments+51/112] blk_recount_segments+0x33/0x70 Jun 28 10:36:31 mpc kernel: [cfq_get_queue+326/432] cfq_get_queue+0x146/0x1b0 Jun 28 10:36:31 mpc kernel: [cfq_add_rq_rb+80/128] cfq_add_rq_rb+0x50/0x80 Jun 28 10:36:31 mpc kernel: [cfq_insert_request+52/1072] cfq_insert_request+0x34/0x430 Jun 28 10:36:31 mpc kernel: [elv_insert+256/352] elv_insert+0x100/0x160 Jun 28 10:36:31 mpc kernel: [mod_timer+143/160] mod_timer+0x8f/0xa0 Jun 28 10:36:31 mpc kernel: [slab_alloc+647/1200] slab_alloc+0x287/0x4b0 Jun 28 10:36:31 mpc kernel: [next_cpu+18/48] next_cpu+0x12/0x30 Jun 28 10:36:31 mpc kernel: [find_busiest_group+416/1856] find_busiest_group+0x1a0/0x740 Jun 28 10:36:31 mpc kernel: [blk_rq_map_sg+199/592] blk_rq_map_sg+0xc7/0x250 Jun 28 10:36:31 mpc kernel: [hrtick_set+105/304] hrtick_set+0x69/0x130 Jun 28 10:36:31 mpc kernel: [schedule+550/1744] schedule+0x226/0x6d0 Jun 28 10:36:31 mpc kernel: [d_lookup+140/272] d_lookup+0x8c/0x110 Jun 28 10:36:31 mpc kernel: [do_lookup+101/400] do_lookup+0x65/0x190 Jun 28 10:36:31 mpc kernel: [core_sys_select+448/736] core_sys_select+0x1c0/0x2e0 Jun 28 10:36:31 mpc kernel: [get_page_from_freelist+656/1088] get_page_from_freelist+0x290/0x440 Jun 28 10:36:31 mpc kernel: [alloc_pages+90/880] alloc_pages+0x5a/0x370 Jun 28 10:36:31 mpc kernel: [find_mergeable_anon_vma+170/192] find_mergeable_anon_vma+0xaa/0xc0 Jun 28 10:36:31 mpc kernel: [anon_vma_prepare+92/224] anon_vma_prepare+0x5c/0xe0 Jun 28 10:36:31 mpc kernel: [handle_mm_fault+697/1440] handle_mm_fault+0x2b9/0x5a0 Jun 28 10:36:31 mpc kernel: [sys_select+226/432] sys_select+0xe2/0x1b0 Jun 28 10:36:31 mpc kernel: [sys_mmap2+101/208] sys_mmap2+0x65/0xd0 Jun 28 10:36:31 mpc kernel: [sysenter_past_esp+95/133] sysenter_past_esp+0x5f/0x85 Jun 28 10:36:31 mpc kernel: ======================= Jun 28 10:36:31 mpc kernel: Code: e8 21 ea ff ff 85 c0 89 c6 0f 84 f1 00 00 00 f6 05 80 3e 90 f8 01 0f 85 b4 00 00 00 89 f0 e8 73 89 86 c7 8b 43 04 b9 b8 00 00 00 <8b> 10 c7 44 24 14 40 1f 00 00 c7 44 24 10 00 00 00 00 c1 e2 08 Jun 28 10:36:31 mpc kernel: EIP: [<f88ff8c5>] start_streaming+0x75/0x170 [hdpvr] SS:ESP 0068:f3599b3c Jun 28 10:36:31 mpc kernel: ---[ end trace a3e2e8c339b78086 ]---

and then it hangs the driver. cant remove the module and have to reboot to clean things up.

comment:20 Changed 10 years ago by steve@…

as an update to my last dump: a combination of turning off the hdpvr module debugging and setting my satellite box to output 720p made things all better. I wrote a channel changer script for a usb-uirt and now mythtv can record just fine. it can also record two show in a row which there was some indication in this ticket of potential issues. Im not sure if running at 720 made the drivers any happier but it made playback on my machine much happier. excellent work all, thanks much.

Changed 10 years ago by jppoet@…

HACK: reset HD-PVR driver, when "select timeout" errors are detected. (Does not fix LiveTV)

Changed 10 years ago by jppoet@…

Update H.264 processing to parse bottom_field_flag and use it for frame detection

comment:21 Changed 10 years ago by jppoet@…

Adding a patch which updates H.264 processing to parse bottom_field_flag and use it for frame detection.

comment:22 Changed 10 years ago by jppoet@…

h264-parse-field-flag.diff needs

#include <limits.h>

before

#include "golomb.h"

in h264utils.h, when compiling with gcc 4.3

comment:23 Changed 10 years ago by danielk

(In [17750]) Refs #5443. Vleanup of some Recording Profiles code.

Changed 10 years ago by danielk

Adds recording profiles (not finished, only respects 'high' resolution bitrates.)

comment:24 Changed 10 years ago by robert.mcnamara@…

Daniel, this patch appears to work fine. Please find enclosed a new copy amended for the recent DB Schema change and various offsets. Patches clean against 17874. New HD-PVR card type works properly, --disable configure option tested and working, and discrete recording profiles tested and working (although just with the high bitrates as you mentioned).

Changed 10 years ago by robert.mcnamara@…

Updated Patch for HD-PVR recording profiles

comment:25 Changed 10 years ago by steve@…

my backend logs now get things like:

2008-07-25 11:20:37.279 MPEGRec(/dev/video0) Error: Could not set Video Peak Bitrate to 4400000 eno: Invalid argument (22)

when a recording is starting on the hdpvr unit. does seem to change the normal bitrate though.

although default seems to be not a good value, I will have to change the value for default but that isnt a bug. mostly just now that it changes bitrates I just have to worry about the settings :)

comment:26 Changed 10 years ago by jppoet@…

The attached patch adds DeviceReadBuffer? support to the mpegrecorder class. Without this patch I was getting truncated recordings from my HD-PVR whenever my system was under any kind of load. With this patch, I have seen loads over 6 and the recordings have been fine.

NOTE: I have not tested this patch with any type of PVR-x50 card.

Changed 10 years ago by jppoet@…

Add DeviceReadBuffer? to mpegrecorder class

comment:27 Changed 10 years ago by danielk

(In [18089]) Refs #5443. Adds a recording profile for HD-PVR.

If you have a HD-PVR devices configured you will need to rerun ./configure before compiling and remove the existing ivtv definitions for the hdpvr devices, then after installing the new code recreate the card definition.

comment:28 Changed 10 years ago by jppoet@…

New patch to add DeviceReadBuffer? support to the mpegrecorder. New version requires the DeviceReadBuffer?-polltimeout.patch from ticket #5604

Changed 10 years ago by jppoet@…

Use DeviceReadBuffer? in mpegrecorder

comment:29 Changed 10 years ago by mythdev@…

Commit [18089] seems to break recordings on my PVR150. The backend now reports:

2008-08-07 09:54:13.272 Scheduled 46 items in 0.2 = 0.01 match + 0.24 place
2008-08-07 09:54:13.278 TVRec(1): ASK_RECORDING 1 0 0 0
2008-08-07 09:54:13.410 TVRec(1): Changing from None to RecordingOnly
2008-08-07 09:54:13.416 TVRec(1): HW Tuner: 1->1
2008-08-07 09:54:13.484 NVR(/dev/v4l/video0): Unknown video codec.  Please go into the TV Settings, Recording Profiles and setup the four 'Software Encoders' profiles.  Assuming RTjpeg for now.
2008-08-07 09:54:13.485 NVR(/dev/v4l/video0) Error: Unknown audio codec
2008-08-07 09:54:13.486 NVR(/dev/v4l/video0) Error: Cannot open DSP ''
2008-08-07 09:54:13.488 NVR(/dev/v4l/video0) Error: Could not detect audio blocksize
2008-08-07 09:54:13.501 NVR(/dev/v4l/video0) Error: Cannot open DSP '', exiting
2008-08-07 09:54:13.502 NVR(/dev/v4l/video0): Won't work with the streaming interface, falling back
2008-08-07 09:54:13.505 NVR(/dev/v4l/video0) Error: Can't open vbi device: ''
2008-08-07 09:54:13.523 AutoExpire: CalcParams(): Max required Free Space: 2.0 GB w/freq: 15 min
2008-08-07 09:54:13.577 Started recording: TEK TV: channel 1081 on cardid 1, sourceid 1

I do not have a HD-PVR, but I tried recreating my device anyway, but that resulted in the same database entry (as expected), but recording does not work anymore.

It seems the NVR thinks I have a software encoder instead of a hardware PVR150 encoder. It was working before. My cardtype in the database is MPEG.

Reverting to [18088] made things go back to working, so I assume the problem can be a result from this commit.

My setup (backend):

Please include all output in bug reports.
MythTV Version   : 18091
MythTV Branch    : trunk
Library API      : 0.22.20080806-4
Network Protocol : 40
QT Version       : 4.3.5
Options compiled in:
 linux release using_alsa using_backend using_dvb using_frontend using_ivtv using_hdpvr using_v4l using_x11 using_xv using_bindings_perl using_bindings_python using_opengl using_ffmpeg_threads

comment:30 Changed 10 years ago by mythdev@…

Maybe it has something to do with the change in cardutil.h?

static bool         IsTuningAnalog(const QString &rawtype)
{
    return
        (rawtype == "V4L")    || (rawtype == "MPEG") ||
        (rawtype == "HDPVR");
}

previously IsTuningAnalog?("MPEG"); would return false, now it returns true. Although the tuning itself is analog, this might be a problem? (I am absolutely note sure, so this is an assumption!)

comment:31 Changed 10 years ago by danielk

(In [18092]) Refs #5443. Fixes breakage for ivtv recorders caused by [18089].

comment:32 Changed 10 years ago by danielk

(In [18093]) Refs #5443. Try re-enabling encoding after unpause 40 times rather than 10 times. Also print debugging for pause/unpause streaming at the -v record level.

comment:33 follow-up: Changed 10 years ago by danielk

(In [18102]) Refs #5443. Applies John P. Poet's DRB patch for the MpegRecorder?, with some modifications. This helps increase the reliablility of the HD-PVR device with MythTV.

Changed 10 years ago by danielk

ready to apply version of this patch (formating/includes only changes)

comment:34 Changed 10 years ago by danielk

(In [18103]) Refs #5443. For efficiency, only check if we are on a h.264 frame if we don't already know we're on a key frame.

comment:35 Changed 10 years ago by danielk

(In [18104]) Refs #5443. Applies John Poet's H.264 frame parsing patch, this corrects problems with frame counting for interlaced H.264 content.

comment:36 Changed 10 years ago by danielk

(In [18106]) Refs #5443. Reworks HD-PVR bitrate settings a bit. By default the hdpvr starts out in CBR mode, so we must explicitly switch it to VBR for the peak bitrate to be respected + we must set the average bitrate prior to setting the maximum bitrate, otherwise the maximum bitrate setting may be ignored.

comment:37 in reply to: ↑ 33 ; follow-up: Changed 10 years ago by Mike Rice <mikerice1969@…>

Replying to danielk:

(In [18102]) Refs #5443. Applies John P. Poet's DRB patch for the MpegRecorder?, with some modifications. This helps increase the reliablility of the HD-PVR device with MythTV.

Not sure if this is related but since I updated to 18108 I've seen the backend crash twice here:

2008-08-10 12:01:00.159 scheduler: Finished recording: 30-Minute Meals "Summer Simplicity": channel 1066 * glibc detected * /usr/local/bin/mythbackend: malloc(): memory corruption: 0x097ab611 * ======= Backtrace: ========= /lib/libc.so.6[0x20fe253] /lib/libc.so.6(libc_malloc+0x7b)[0x20ffb7b] /usr/lib/libQtCore.so.4(_Z7qMallocj+0x1d)[0x727cf1d] /usr/lib/libQtCore.so.4(_ZN10QByteArrayC1Eic+0x36)[0x7285d76] /usr/lib/libQtCore.so.4(_Z15qt_error_stringi+0x5e)[0x727d93e] /usr/lib/libQtCore.so.4[0x7282e6f] /usr/lib/libQtCore.so.4[0x7282f98] /usr/lib/libQtCore.so.4(_ZN6QMutex4lockEv+0x79)[0x727fd19] /usr/local/bin/mythbackend(_ZN12QMutexLocker6relockEv+0x28)[0x8076f44] /usr/local/bin/mythbackend(_ZN12QMutexLockerC1EP6QMutex+0x19)[0x8076f6f] /usr/local/lib/libmythtv-0.22.so.0(_ZNK16DeviceReadBuffer16IsPauseRequestedEv+0x28)[0x139e73c] /usr/local/lib/libmythtv-0.22.so.0(_ZNK16DeviceReadBuffer4PollEv+0x56)[0x139f73e] /usr/local/lib/libmythtv-0.22.so.0(_ZN16DeviceReadBuffer15fill_ringbufferEv+0x97)[0x13a0003] /usr/local/lib/libmythtv-0.22.so.0(_ZN16DeviceReadBuffer15boot_ringbufferEPv+0x1d)[0x13a0115] /lib/libpthread.so.0[0x6f8150b] /lib/libc.so.6(clone+0x5e)[0x2167b2e]

2008-08-10 20:01:00.887 scheduler: Finished recording: Tori & Dean: Home Sweet Hollywood "A Stella Is Born": channel 5500 * glibc detected * /usr/local/bin/mythbackend: malloc(): memory corruption: 0x0af02a49 * ======= Backtrace: ========= 2008-08-10 20:01:00.984 ATSCStreamData::HandleTables?(): Unknown table 0xc0 /lib/libc.so.6[0x48b3253] /lib/libc.so.6(libc_malloc+0x7b)[0x48b4b7b] /usr/lib/libQtCore.so.4(_Z7qMallocj+0x1d)[0x656cf1d] /usr/lib/libQtCore.so.4(_ZN10QByteArrayC1Eic+0x36)[0x6575d76] /usr/lib/libQtCore.so.4(_Z15qt_error_stringi+0x5e)[0x656d93e] /usr/lib/libQtCore.so.4[0x6572e6f] /usr/lib/libQtCore.so.4[0x6572f98] /usr/lib/libQtCore.so.4(_ZN6QMutex4lockEv+0x79)[0x656fd19] /usr/local/bin/mythbackend(_ZN12QMutexLocker6relockEv+0x28)[0x8076f44] /usr/local/bin/mythbackend(_ZN12QMutexLockerC1EP6QMutex+0x19)[0x8076f6f] /usr/local/lib/libmythtv-0.22.so.0(_ZNK16DeviceReadBuffer16IsPauseRequestedEv+0x28)[0x139e73c] /usr/local/lib/libmythtv-0.22.so.0(_ZNK16DeviceReadBuffer4PollEv+0x56)[0x139f73e] /usr/local/lib/libmythtv-0.22.so.0(_ZN16DeviceReadBuffer15fill_ringbufferEv+0x97)[0x13a0003] /usr/local/lib/libmythtv-0.22.so.0(_ZN16DeviceReadBuffer15boot_ringbufferEPv+0x1d)[0x13a0115] /lib/libpthread.so.0[0x580c50b] /lib/libc.so.6(clone+0x5e)[0x491cb2e]

I can give full backtraces for these if that is helpful. Let me know if I can provide some other info.

comment:38 in reply to: ↑ 37 Changed 10 years ago by nharris@…

Replying to Mike Rice <mikerice1969@gmail.com>:

Replying to danielk:

(In [18102]) Refs #5443. Applies John P. Poet's DRB patch for the MpegRecorder?, with some modifications. This helps increase the reliablility of the HD-PVR device with MythTV.

Not sure if this is related but since I updated to 18108 I've seen the backend crash twice here:

2008-08-10 12:01:00.159 scheduler: Finished recording: 30-Minute Meals "Summer Simplicity": channel 1066 * glibc detected * /usr/local/bin/mythbackend: malloc(): memory corruption: 0x097ab611 *

I'm also having the same crash after a recording is complete.

2008-08-11 13:00:00.749 TVRec(3): Changing from RecordingOnly? to None 2008-08-11 13:00:00.769 Finished recording Curb Appeal "From Tired Ranch to Modern Manor": channel 3229 * glibc detected * /usr/bin/mythbackend: malloc(): memory corruption: 0x082c7cb9 * ======= Backtrace: ========= /lib/libc.so.6[0xb51ec3c4] /lib/libc.so.6(libc_malloc+0x8d)[0xb51edd2d] /usr/lib/libQtCore.so.4(_Z7qMallocj+0x1d)[0xb5439b2d] /usr/lib/libQtCore.so.4(_ZN10QByteArrayC1Eic+0x36)[0xb5441f16] /usr/lib/libQtCore.so.4(_Z15qt_error_stringi+0x59)[0xb5437749] /usr/lib/libQtCore.so.4[0xb543e74f] /usr/lib/libQtCore.so.4[0xb543e8cb] /usr/lib/libQtCore.so.4(_ZN6QMutex4lockEv+0xaa)[0xb5439fda] /usr/lib/libmythtv-0.22.so.0(_ZNK16DeviceReadBuffer16IsPauseRequestedEv+0x61)[0xb7baeb31] [0x1]

Changed 10 years ago by Mike Rice <mikerice1969@…>

DeviceReadBuffer? crash bt1

Changed 10 years ago by Mike Rice <mikerice1969@…>

DeviceReadBuffer? crash bt2

comment:39 Changed 10 years ago by dave@…

It sees to work, except the internal player won't play audio..

2008-08-12 20:16:16.336 No codec context. Returning false 2008-08-12 20:16:16.336 AFD: No codec for stream index 1, type(Audio) id(AAC:86018)

comment:40 Changed 10 years ago by anonymous

Please disreguard, I forgot to compile in libfaad...

Changed 10 years ago by jppoet@…

Fix memory corruption crash (I hope)

comment:41 Changed 10 years ago by jppoet@…

I have just attached a patch (mpegrecorder-corruption.patch) which I think will fix the memory corruption crashes that some people are seeing.

comment:42 Changed 10 years ago by janne

(In [18152]) Fixes segfaults during finishing MPEGRecorder recordings

moves recording end cleanup from StopRecording?() to the end StartRecording?() block in StopRecording? until StartRecording? is finished

Refs #5443

comment:43 Changed 10 years ago by janne

(In [18153]) removes ENCODER_CMD ioctl hacks for the hdpvr

driver was fixed two days ago, update it. Refs #5443

comment:44 Changed 10 years ago by anonymous

Works great... 5 recordings and no crashes! Keep up the GREAT WORK!

comment:45 Changed 9 years ago by anonymous

Any news? This patch is the roadblock toward me getting a PVR :)

Also, has anyone tried recording SD with the HD-PVR?

--Robin

comment:46 Changed 9 years ago by klark.crente@…

Hi! i will buy this card for me. =] and i will testing user ;) and help yours =]

comment:47 Changed 9 years ago by fedorowp@…

I've built a very high-end box using the HD PVR with MythTV for a client. I've been running it with the data-rates at maximum, the picture quality is impressive, and (so far) it is stable, provided no USB devices are hot-plugged while the HD PVR is on. If one does that, the machine locks-up.

The analogue audio recording level is also a bit too low, even with

options hdpvr boost_audio=1

in /etc/modprobe.d/options

The lack of AC-3 (5.1 channel audio) is also a substantial let-down, but hopefully Hauppauge will release the new firmware soon that will correct that, as well as improving the stability of interlaced video.

Another bug also present is that the top scan-line of the scene shows a binary data pattern that is probably the CC data, particularly for analogue channels. As long as the TV is overscanning the picture, as is normal for them, it is not visible, but it will be a substantial visual problem when viewing recorded programs on a PC.

Overall, it's really getting there, though I have to admit I would be delighted to work with Hauppauge to make an improved more media-PC friendly version.

comment:48 Changed 9 years ago by janne

  • Ticket locked set

this is not a discussion platform

comment:49 Changed 9 years ago by danielk

  • Resolution set to fixed
  • Status changed from assigned to closed

Closing, basic functionality has been implemented. Lets open new tickets for each individual problem now.

Add Comment

Modify Ticket

Action
as closed The owner will remain danielk.
The resolution will be deleted. Next status will be 'new'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.