Opened 14 years ago

Closed 14 years ago

#1578 closed defect (fixed)

Mythfrontend segfault w/dvb radio PID type(private-sec 0x5), MHEG?

Reported by: Mark.Buechler@… Owned by: danielk
Priority: minor Milestone: 0.20
Component: dvb Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

I'm running 9488 and am seeing a segfault on the frontend whenever I tune to a DVB radio channel. I'm not in the UK so I don't know if there are any MHEG streams but it looks like the backend is recording a new stream which may be MHEG related?

From the backend:

2006-03-24 16:10:12.234 DVBRec(0): SetOutputPMT() Program Map Table ver(1) pid(0x21) pnum(1) len(34)

Stream #0 pid(0x100e) type(audio-mp2-layer[1,2,3] 0x4)

ISO-639 Language: code(eng) canonical(eng) eng(English)

Stream #1 pid(0x1a0e) type(private-sec 0x5) Stream #2 pid(0x21) type(video-mpeg2 0x2)

From the frontend:

Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1493509200 (LWP 14039)] 0xb5ff0ef1 in memmove () from /lib/tls/i686/cmov/libc.so.6

Thread 7 (Thread -1493509200 (LWP 14039)): #0 0xb5ff0ef1 in memmove () from /lib/tls/i686/cmov/libc.so.6 No symbol table info available. #1 0xb75de1d4 in write_section_data (s=0x91363f0, tss1=0x8410680, buf=0xa6f9c635 "\002°\"", buf_size=183, is_start=$

left = 146 tss = (MpegTSSectionFilter *) 0x841068c len = 37

#2 0xb75e0d8f in handle_packet (ts=0x9150e80, packet=0xa6f9c630 "G@!\021", position=188) at mpegts.c:1758

s = (AVFormatContext *) 0x91363f0 tss = (MpegTSFilter *) 0x8410680 len = 0 pid = 33 cc = 1 cc_ok = 1 afc = 1 is_start = 64 p = (const uint8_t *) 0xa6f9c635 "\002°\"" p_end = (const uint8_t *) 0xa6f9c6ec ""

Mythfrontend log and gdb bt attached.

Attachments (4)

myth.log (14.2 KB) - added by Mark.Buechler@… 14 years ago.
mythfrontend -v playback
gdb.txt (62.4 KB) - added by Mark.Buechler@… 14 years ago.
gdb output
frontend.txt (3.1 KB) - added by Mark.Buechler@… 14 years ago.
frontend log.. doesn't really show anything
backend.txt (70.0 KB) - added by Mark.Buechler@… 14 years ago.
Backend log.

Download all attachments as: .zip

Change History (9)

Changed 14 years ago by Mark.Buechler@…

Attachment: myth.log added

mythfrontend -v playback

Changed 14 years ago by Mark.Buechler@…

Attachment: gdb.txt added

gdb output

comment:1 Changed 14 years ago by danielk

Component: mythtvdvb
Owner: changed from Isaac Richards to danielk

comment:2 Changed 14 years ago by danielk

Mark, can you debug this?

It is something with the last if statement in write_section_data() in mpegts.c, but you will have to examine the values involved. My guess is that a negative length value is being calculated, perhaps due to a PES length assumption (assuming it fits inside on TS packet), or perhaps due to some threading issue.

comment:3 Changed 14 years ago by danielk

Resolution: fixed
Status: newclosed

(In [9754]) Fixes #1578. DVB Radio was using the same pid for a PSIP stream and the dummy video, which confused ffmpeg.

Thanks to Mark Buechler for debugging this problem.

Changed 14 years ago by Mark.Buechler@…

Attachment: frontend.txt added

frontend log.. doesn't really show anything

Changed 14 years ago by Mark.Buechler@…

Attachment: backend.txt added

Backend log.

comment:4 Changed 14 years ago by anonymous

Resolution: fixed
Status: closedreopened

comment:5 Changed 14 years ago by danielk

Resolution: fixed
Status: reopenedclosed

It looks like this is not working now because of user error, the recording type in the recording profile needs to be radio or the default, not TV, to record DVB Radio.

Note: See TracTickets for help on using tickets.