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

Vdr+xineliboutput+dshowserver =no joy #43

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?

xine --verbose=3 "xvdr://127.0.0.1#nocache;demux:mpeg_block"

What is the expected output? What do you see instead?

The expected output is video on my tv :) like ffmpeg does
here is what xine says:

video discontinuity #1, type is 0, disc_off 0
waiting for audio discontinuity #1
audio discontinuity #1, type is 0, disc_off 0
waiting for in_discontinuity update #1
vpts adjusted with prebuffer to 35506
load_plugins: plugin mpeg2 will be used for video streamtype 00.
[5016] [input_vdr] Control thread started
[5017] [input_vdr] Data thread started
prebuffer=14400 pts
av_offset=0 pts
[5016] [input_vdr] No fe_control function! POST AudioVisualization Off failed.
[5016] [input_vdr] No fe_control function! POST tvtime On
method=Greedy2Frame,cheap_mode=1,pulldown=none,framerate_mode=full,judder_correc
tion=1,use_progressive_frame_flag=1,chroma_filter=0,enabled=1
failed.
[5016] [input_vdr] No fe_control function! OVERSCAN 0 failed.
video_out_xv: VO_PROP_ASPECT_RATIO(0)
[5016] [input_vdr] No fe_control function! POST upmix Off failed.
[5016] [input_vdr] No fe_control function! POST autocrop Off failed.
[5016] [input_vdr] No fe_control function! POST swscale Off failed.
[5016] [input_vdr] No fe_control function! POST pp Off failed.
[5016] [input_vdr] No fe_control function! POST unsharp Off failed.
[5016] [input_vdr] No fe_control function! POST denoise3d Off failed.
input cache plugin disabled
xine: found demuxer plugin: DVD/VOB demux plugin
audio discontinuity #2, type is 0, disc_off 0
waiting for in_discontinuity update #2
video discontinuity #2, type is 0, disc_off 0
vpts adjusted with prebuffer to 38742
av_offset=0 pts
spu_offset=0 pts
xine_play
play_internal ...done
load_plugins: plugin mad will be used for audio streamtype 01.
[5018] [input_vdr] H.264 scanner: Possible H.264 NAL AUD
[5018] [input_vdr] H.264: post pts 5439409200
audio discontinuity #3, type is 3, disc_off 5439409200
waiting for in_discontinuity update #3
load_plugins: plugin mpeg2 will be used for video streamtype 00.
load_plugins: plugin dshowserver will be used for video streamtype 4d.
video discontinuity #3, type is 3, disc_off 5439409200
vpts adjusted with prebuffer to 47713
audio discontinuity #4, type is 2, disc_off 5439357203
waiting for in_discontinuity update #4
video discontinuity #4, type is 2, disc_off 5439357203
[5018] [input_vdr] H.264: Found NAL SPS at offset 6/2029
[5018] [input_vdr] H.264 SPS: profile_idc 77
[5018] [input_vdr] H.264 SPS: pic_width:  80 mbs
[5018] [input_vdr] H.264 SPS: pic_height: 45 mbs
[5018] [input_vdr] H.264 SPS: frame only flag: 1
[5018] [input_vdr] H.264 SPS: aspect_ratio_idc 1
[5018] [input_vdr] H.264 SPS: -> aspect ratio 1 / 1
[5018] [input_vdr] H.264 SPS: -> video size 1280x720, aspect 1:1
[5018] [input_vdr] post_frame_end: video width 1280, height 720, pixel
aspect 1:1
shm:/dshow_shm.b38bab90
sem1:/dshow_sem1.b38bab90
sem2:/dshow_sem2.b38bab90
Opening device
audio_alsa_out:open pause_resume=0
output sample rate 48000
will resample audio from 48000 to 48000
audio jump, diff=2160
Called unk_IsDebuggerPresent
len: 992
ProductVersion: 1.7.0
Decoder supports the following YUV formats: YUY2 UYVY YV12 I420 
Decoder is capable of YUV output (flags 0x2b)
Setting fmt
Starting
Initialization is complete
Found DirectShow filterset_speed 0
audio_alsa_out: Drain call failed. (err=-11:Resource temporarily unavailable)
audio_alsa_out: Prepare call failed. (err=-16:Device or resource busy)
will resample audio from 48000 to 48000
set_speed 1000000
will resample audio from 48000 to 48000
set_speed 0
audio_alsa_out: Drain call failed. (err=-11:Resource temporarily unavailable)
audio_alsa_out: Prepare call failed. (err=-16:Device or resource busy)
will resample audio from 48000 to 48000
set_speed 1000000
will resample audio from 48000 to 48000
audio_out: inserting 21881 0-frames to fill a gap of 41038 pts
xiTK received SIGSEGV signal, RIP.
Aborted
Parent process 4997 died unexpectedly

Im using vdr 1.7 + xine 1.1.14 + xineliboutput cvs
If i can rip the stream to a small file will you look at it? 

Original issue reported on code.google.com by psofa.ps...@gmail.com on 12 Jul 2008 at 10:58

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
oh well i couldnt wait, here it is, a testcase thats vdr independent is attached
mplayer plays just the music
xine with ffmpeg play audio+video
xine-1.1.14 + dshowserver plays audio and crashes after a while

Original comment by psofa.ps...@gmail.com on 13 Jul 2008 at 12:31

Attachments:

GoogleCodeExporter commented 8 years ago
i know that you dont have much time but i'd like to mention that many vdr users 
cant
wait to watch dvb-hd with their weak cpus ;)

Original comment by psofa.ps...@gmail.com on 15 Jul 2008 at 11:19

GoogleCodeExporter commented 8 years ago
update:
vanilla mplayer +ffh264 cant play because mplayer doesnt recognise the stream
mplayer + h264 hack from linuxtv iirc+ ffh264 => testclip plays
mplayer + h264 hack from linuxtv iirc+ dshowserver => testclip crashes
xine 1.1.14 +ffh264 => testclip works
xine 1.1.14 + dshowserver => audio for a while then crash

Original comment by psofa.ps...@gmail.com on 15 Jul 2008 at 11:41

GoogleCodeExporter commented 8 years ago
I'm experiencing the same problem with Vdr 1.7.0, xine-lib 1.1.15 (from HG) and
coreavc 1.7.0. I do get audio, but no image and a segfault after a 10 seconds 
or so.
Is there any debug info we can publish to help find the bug?

You mentioned on the homepage that xine hasn't been updated to support core 
1.7.0. Is
this still the case? If so, what differences are there between 1.5.0 and 1.7.0?

Original comment by ebor...@gmail.com on 17 Jul 2008 at 8:14

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
i think that thats not the case anymore.

Original comment by psofa.ps...@gmail.com on 17 Jul 2008 at 8:38

GoogleCodeExporter commented 8 years ago
If I run vdr-sxfe without parameters, I get:

(gdb) run
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1240388688 (LWP 20496)]
0xb7db5244 in sse_memcpy (to=0xb1bf3fe0, from=0xb628503d, len=2031)
    at memcpy.c:209
209             __asm__ __volatile__ (

(gdb) backtrace
(gdb) backtrace
#0  0xb7db5244 in sse_memcpy (to=0xb1bf3fe0, from=0xb628503d, len=2031)
    at memcpy.c:209
#1  0xb3e980b7 in dshowserver_decode_data (this_gen=0x8200f50, buf=0x81dc140)
    at dshowserver.c:307
#2  0xb7d94bb1 in video_decoder_loop (stream_gen=0x81d4a50)
    at video_decoder.c:383
#3  0xb7c3c240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#4  0xb7d1549e in clone () from /lib/tls/i686/cmov/libc.so.6

If I run xine with the parameteres from comment 1, I get:

(gdb) run
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1263686736 (LWP 20566)]
0x6b48bc02 in ?? ()

(gdb) backtrace
#0  0x6b48bc02 in ?? ()
#1  0xb7efebb1 in video_decoder_loop (stream_gen=0x8336060)
    at video_decoder.c:383
#2  0xb7c13240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#3  0xb7ceb49e in clone () from /lib/tls/i686/cmov/libc.so.6

Not much to work with...

Original comment by ebor...@gmail.com on 18 Jul 2008 at 9:27

GoogleCodeExporter commented 8 years ago
dshowserver plugin does not "see" BUF_FLAG_FRAME_END if the buffer carrying it 
is 
empty (= no video data). This results queuing all incoming data to buffer until 
it 
runs out of memory.

Try removing following lines from function dshowserver_decode_data in 
dshowserver.c :

    if( (int) buf->size <= 0 )
        return;

Original comment by phint...@gmail.com on 28 Jul 2008 at 8:19

GoogleCodeExporter commented 8 years ago
thanks for the help ,ill test it tonight

Original comment by psofa.ps...@gmail.com on 28 Jul 2008 at 11:58

GoogleCodeExporter commented 8 years ago
Thanks, that does seem to stop the first segfault. But now I get the following 
SIGSEGV:

[28108] [input_vdr] H.264 scanner: Possible H.264 NAL AUD
[28108] [input_vdr] H.264: post pts 4405333767

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1249559632 (LWP 28098)]
parse_frame (parser=0x820a380, inbuf=0xb5a3a03f "", inbuf_len=2029, 
ret_buf=0xb58533c8, ret_len=0xb58533c4) at nal_parser.c:356
356             if(parser->buf_len + next_nal + search_offset > MAX_FRAME_SIZE) 
{

Original comment by tamara.v...@gmail.com on 28 Jul 2008 at 7:38

GoogleCodeExporter commented 8 years ago
it seems xine +dshowserver can play the test clip just by commenting out this 
empty
buffer check :).Ill check vdr later

Original comment by psofa.ps...@gmail.com on 28 Jul 2008 at 10:26

GoogleCodeExporter commented 8 years ago
okay just tested vdr.Image comes at last but the dshow codec seems to be
reinitializing itself every 5-6 secs (i suppose a buffer underun because of the
removed check) and the video is kinda stuttering

Original comment by psofa.ps...@gmail.com on 28 Jul 2008 at 10:34

GoogleCodeExporter commented 8 years ago
on the testclip's channel it throws out tons of messages like "video_out: 
throwing
away image with pts 13183127 because it's too old (diff : 16083)." then after 1 
min 
it settles to okay performance

Original comment by psofa.ps...@gmail.com on 28 Jul 2008 at 11:13

GoogleCodeExporter commented 8 years ago
to summarize:On one channel (which ffmpeg plays flawlessly) video appears like 
slow
motion and at 6-7 secs intervals dshowserver seems to reinitialize ( i suppose 
some
buffer overruns because of the slow motion).Ive watched the same channel with
mythtv+dshowserver perfectly (so the problem is in xine's demuxing or 
dshowclient code).
On the testcase's channel (which doesnt open with xineliboutput+ffmpeg correctly
either) coreavc needs sth like a minute to stabilize ("video_out: throwing
away image with pts 13183127 because it's too old (diff : 16083).") and play 
smooth

Original comment by psofa.ps...@gmail.com on 29 Jul 2008 at 7:39

GoogleCodeExporter commented 8 years ago
I need longer examples than what you've provided above.
I do see the same problems you describe, but the test stream is not long enough 
for
me to debug them sufficiently.
Something like zshare or gigashare is probably a better bet than trying to 
include it
directly in the ticket though.

Original comment by alannis...@gmail.com on 12 Oct 2008 at 3:10