chenyunecjtu / coreavc-for-linux

Automatically exported from code.google.com/p/coreavc-for-linux
GNU General Public License v2.0
0 stars 1 forks source link

Mythtv trunk crashes #67

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Mythtv trunk >= 18951
2. dshowserver r82
3. ffmpeg-libs-0.4.9-4.20081024.1.i686 ffmpeg-0.4.9-4.20081024.1.i686

I expected:
2008-11-05 21:07:32.161 AFD: Trying DirectShow for FOURCC 0x34363248
Opening device
Called unk_IsDebuggerPresent
len: 992
ProductVersion: 1.8.5
Decoder supports the following YUV formats: YUY2 UYVY YV12 I420 
Decoder is capable of YUV output (flags 0x2b)
Setting fmt
Starting
Initialization is complete

I've got:
2008-11-05 21:01:54.031 Using realtime priority.
2008-11-05 21:01:54.564 Video timing method: RTC
2008-11-05 21:02:00.916 NVP: Prebuffer wait timed out 10 times.
2008-11-05 21:02:02.138 AFD: Trying DirectShow for FOURCC 0x34363248
Illegal instruction

I have still 18642 version and that works almost well.
I tried to build 18910 but build failed due to ffmpeg incompatibility (I
suppose).

I can build mythtv >= svn18951, those builds with no errors, but does not
works with dshowserver as I describe.
When I disable dshowserver it plays (distorted, but works) with ffmpegs
x264 - then I think the problem is somewhere at the line mythtv-dshowserver. 

Original issue reported on code.google.com by min...@interia.pl on 5 Nov 2008 at 8:15

GoogleCodeExporter commented 8 years ago
Here is gdb output:
2008-11-10 20:15:22.782 Video timing method: SGI OpenGL
2008-11-10 20:15:22.790 AFD: Trying DirectShow for FOURCC 0x34363248

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 0xaed7ab90 (LWP 25669)]
0xb7b8687e in AvFormatDecoderPrivate::InitDirectShow ()
   from /usr/lib/libmythtv-0.22.so.0
(gdb) bt
#0  0xb7b8687e in AvFormatDecoderPrivate::InitDirectShow ()
   from /usr/lib/libmythtv-0.22.so.0
#1  0xb7b8c7b3 in AvFormatDecoder::ScanStreams ()
   from /usr/lib/libmythtv-0.22.so.0
#2  0xb7b92cdf in AvFormatDecoder::OpenFile ()
   from /usr/lib/libmythtv-0.22.so.0
#3  0xb7b4128e in NuppelVideoPlayer::OpenFile ()
   from /usr/lib/libmythtv-0.22.so.0
#4  0xb7b43e89 in NuppelVideoPlayer::JumpToProgram ()
   from /usr/lib/libmythtv-0.22.so.0
#5  0xb7b4c27a in NuppelVideoPlayer::StartPlaying ()
   from /usr/lib/libmythtv-0.22.so.0
#6  0xb7a9be22 in SpawnDecode () from /usr/lib/libmythtv-0.22.so.0
#7  0xb5634fe7 in start_thread () from /lib/libpthread.so.0
(gdb) 
(gdb) disass $eip-64 $eip+64
Dump of assembler code from 0xb7b8683e to 0xb7b868be:
0xb7b8683e <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5276>:      
add 
  $0x89fffffe,%eax
0xb7b86843 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5281>:      
inc 
  %esp
0xb7b86844 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5282>:      
and 
  $0x70,%al
0xb7b86846 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5284>:      
mov 
  %esi,(%esp)
0xb7b86849 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5287>:      
call
  0xb778e1d0 <_ZN11QStringListD1Ev@plt>
0xb7b8684e <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5292>:      
jmp 
  0xb7b86696 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+4852>
0xb7b86853 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5297>:      
mov 
  %eax,0x70(%esp)
0xb7b86857 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5301>:      
mov 
  %esi,(%esp)
0xb7b8685a <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5304>:      
call
  0xb778e1d0 <_ZN11QStringListD1Ev@plt>
0xb7b8685f <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5309>:      
nop    
0xb7b86860 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5310>:     
---Type <return> to continue, or q <return> to quit---
jmp    0xb7b8671c <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+4986>
0xb7b86865 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5315>:      
mov 
  %eax,0x70(%esp)
0xb7b86869 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5319>:      
lea 
  0x200(%esp),%esi
0xb7b86870 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5326>:      
mov 
  %esi,0x40(%esp)
0xb7b86874 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5330>:      
jmp 
  0xb7b86623 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+4737>
0xb7b86879 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5335>:      
call
  0xb7793ad0 <getpid@plt>
0xb7b8687e <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5340>:      
ud2a   
0xb7b86880 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5342>:      
mov 
  %eax,0x70(%esp)
0xb7b86884 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5346>:      
mov 
  %esi,(%esp)
0xb7b86887 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5349>:      
call
  0xb778caf0 <_ZN7QStringD1Ev@plt>
0xb7b8688c <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5354>:      
lea 
  0x1cc(%esp),%edi
---Type <return> to continue, or q <return> to quit---
0xb7b86893 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5361>:      
lea 
  0x1e4(%esp),%ebp
0xb7b8689a <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5368>:      
jmp 
  0xb7b866a2 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+4864>
0xb7b8689f <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5373>:      
mov 
  %eax,0x70(%esp)
0xb7b868a3 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5377>:      
lea 
  0x1e4(%esp),%ebp
0xb7b868aa <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5384>:      
jmp 
  0xb7b866a2 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+4864>
0xb7b868af <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5389>:      
mov 
  %eax,0x70(%esp)
0xb7b868b3 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5393>:      
mov 
  %esi,(%esp)
0xb7b868b6 <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5396>:      
call
  0xb778caf0 <_ZN7QStringD1Ev@plt>
0xb7b868bb <AvFormatDecoderPrivate::InitDirectShow(AVCodecContext*)+5401>:      
mov 
  0x4c(%esp),%esi
End of assembler dump.

Original comment by min...@interia.pl on 10 Nov 2008 at 7:28

GoogleCodeExporter commented 8 years ago
The fix for this problem is simple...

On line 196 of dshowserver-trunk.patch, replace the line

+                codec.toAscii(), enc->width, enc->height,
with 
+                codec.toAscii().constData(), enc->width, enc->height,

Original comment by thfis...@sympatico.ca on 1 Mar 2009 at 4:39

GoogleCodeExporter commented 8 years ago
Trivial.
For programmer.
Thanks.
But latest mythtv trunk needs more fixes.
http://code.google.com/p/coreavc-for-linux/issues/detail?id=82&sort=-id
It crashes during compilation.
If you want see full report please confirm.
Wieslaw Kierbedz

Original comment by min...@interia.pl on 1 Mar 2009 at 5:33

GoogleCodeExporter commented 8 years ago
You are right. I was wrong.
I think I made something wrong adapting patch.
Today I tried again.
With some corrects and your advice it compiled and works.
Thanks a lot.
I attach patch for today snapshot.

Original comment by min...@interia.pl on 2 Mar 2009 at 7:58

Attachments:

GoogleCodeExporter commented 8 years ago
Fixed

Original comment by alannis...@gmail.com on 3 Jan 2010 at 12:11