network-clients dont work (freezes) (2 Viewers)

joboehl

Retired Team Member
  • Premium Supporter
  • July 30, 2006
    431
    4
    Home Country
    Brazil Brazil
    Great. many thanks frodo.

    I can confirm the stream continues since I keep VLC running side-by-side and when MP freezes, VLC continues displaying video. I'll check with VLC if theres any PMT errors or something like that.

    As for the other problems on #step3. any suggestions on how to try to identify them?

    thanks again.
     

    joboehl

    Retired Team Member
  • Premium Supporter
  • July 30, 2006
    431
    4
    Home Country
    Brazil Brazil
    Frodo, some extra info:

    Running MP and VLC side-by-side, I enabled VLC messages and checked some advanced options ( skip-frames and drop late frames).

    Here's what happens when I change the channel.

    main debug: CPU has capabilities 486 586 MMX 3DNow! MMXEXT SSE SSE2 FPU
    main debug: looking for memcpy module: 4 candidates
    main debug: using memcpy module "memcpymmxext"
    main debug: waiting for thread completion
    main debug: thread 3728 (playlist) created at priority 0 (playlist/playlist.c:184)
    main debug: waiting for thread completion
    main debug: thread 3744 (preparser) created at priority 0 (playlist/playlist.c:210)
    main debug: looking for interface module: 1 candidate
    main debug: using interface module "hotkeys"
    main debug: thread 3768 (interface) created at priority 0 (interface/interface.c:231)
    main debug: looking for interface module: 3 candidates
    main debug: using interface module "wxwidgets"
    main debug: thread 3788 (manager) created at priority 0 (interface/interface.c:216)
    wxwidgets debug: Using last windows config '(-1,0,0,1440,900)(0,368,46,728,642)(2,44,58,418,587)(6,0,0,-1,150)'
    wxwidgets debug: id=0 p=(368,46) s=(728,642)
    wxwidgets debug: id=2 p=(44,58) s=(418,587)
    wxwidgets debug: id=6 p=(0,0) s=(-1,150)
    main debug: adding playlist item `rtsp://mediaserver/stream1.0' ( rtsp://mediaserver/stream1.0 )
    main debug: creating new input thread
    main debug: waiting for thread completion
    main debug: creating statistics handler
    main debug: thread 3952 (input) created at priority 1 (input/input.c:265)
    main debug: `rtsp://mediaserver/stream1.0' gives access `rtsp' demux `' path `mediaserver/stream1.0'
    main debug: creating demux: access='rtsp' demux='' path='mediaserver/stream1.0'
    main debug: looking for access_demux module: 1 candidate
    live555 debug: RTP subsession 'video/MP2T'
    main debug: thread 4072 (stream out) created at priority 1 (input/demux.c:341)
    main debug: using access_demux module "live555"
    main debug: creating demux: access='' demux='ts' path=''
    main debug: looking for a subtitle file in C:\Program Files\VideoLAN\VLC\
    main debug: `rtsp://mediaserver/stream1.0' successfully opened
    main debug: looking for demux2 module: 1 candidate
    main debug: using demux2 module "ts"
    ts debug: PATCallBack called
    ts debug: new PAT ts_id=1 version=1 current_next=1
    ts debug: * number=1 pid=32
    ts debug: PMTCallBack called
    ts debug: new PMT program number=1 version=1 pid_pcr=480
    ts debug: * es pid=480 type=2 fcc=mpgv
    main debug: selecting program id=1
    main debug: looking for decoder module: 27 candidates
    main debug: using decoder module "libmpeg2"
    main debug: thread 4116 (decoder) created at priority 0 (input/decoder.c:159)
    ts warning: first packet for pid=480 cc=0x1
    ts debug: PMTCallBack called
    ts debug: new PMT program number=1 version=2 pid_pcr=480
    ts debug: * es pid=448 type=4 fcc=mpga
    main debug: looking for decoder module: 27 candidates
    main debug: using decoder module "mpeg_audio"
    main debug: thread 4136 (decoder) created at priority 2 (input/decoder.c:159)
    ts debug: * es pid=480 type=2 fcc=mpgv
    ts warning: first packet for pid=448 cc=0x1
    ts warning: first packet for pid=480 cc=0x9
    mpeg_audio debug: MPGA channels:2 samplerate:48000 bitrate:384
    main debug: no aout present, spawning one
    main debug: looking for audio output module: 3 candidates
    aout_directx debug: OpenAudio
    aout_directx debug: found device: Primary Sound Driver
    aout_directx debug: found device: NVIDIA(R) nForce(TM) Audio
    aout_directx debug: device supports 2 channels
    aout_directx debug: device supports 1 channel
    aout_directx debug: creating DirectSoundThread
    main debug: thread 4608 (DirectSound Notification Thread) created at priority 15 (directx.c:372)
    main debug: using audio output module "aout_directx"
    aout_directx debug: DirectSoundThread ready
    main debug: output 's16l' 48000 Hz Stereo frame=1 samples/4 bytes
    main debug: mixer 'fl32' 48000 Hz Stereo frame=1 samples/8 bytes
    main debug: filter(s) 'fl32'->'s16l' 48000 Hz->48000 Hz Stereo->Stereo
    main debug: looking for audio filter module: 24 candidates
    main debug: using audio filter module "float32tos16"
    main debug: found a filter for the whole conversion
    main debug: looking for audio mixer module: 3 candidates
    main debug: using audio mixer module "trivial_mixer"
    main debug: input 'mpga' 48000 Hz Stereo frame=1152 samples/1161 bytes
    main debug: filter(s) 'mpga'->'fl32' 48000 Hz->48000 Hz Stereo->Stereo
    main debug: looking for audio filter module: 24 candidates
    main debug: using audio filter module "mpgatofixed32"
    main debug: found a filter for the whole conversion
    main debug: filter(s) 'fl32'->'fl32' 52800 Hz->48000 Hz Stereo->Stereo
    main debug: looking for audio filter module: 24 candidates
    main debug: using audio filter module "bandlimited_resampler"
    main debug: found a filter for the whole conversion
    libmpeg2 debug: 720x480 (display 720,480), aspect 576000, sar 8:9, 29.971 fps
    main debug: no usable vout present, spawning one
    main debug: window size: 720x540
    main debug: looking for video output module: 6 candidates
    vout_directx debug: creating DirectXEventThread
    main debug: waiting for thread completion
    vout_directx debug: DirectXCreateWindow
    vout_directx debug: created video sub-window
    main debug: thread 4700 (DirectX Events Thread) created at priority 0 (directx.c:278)
    vout_directx debug: DirectXEventThread running
    vout_directx debug: DirectXInitDDraw
    vout_directx debug: directx-device:
    vout_directx debug: DirectXEnumCallback: Primary Display Driver, display
    vout_directx debug: screen dimensions (0x0,1440x900)
    vout_directx debug: DirectDraw Capabilities: overlay=1 yuvoverlay=1 can_deinterlace_overlay=1 colorkey=1 stretch=1 bltfourcc=1
    vout_directx debug: align_boundary_src=0,0 align_boundary_dest=1,1 align_size_src=0,0 align_size_dest=0,0
    vout_directx debug: End DirectXInitDDraw
    vout_directx debug: DirectXCreateDisplay
    vout_directx debug: DirectXCreateClipper
    vout_directx debug: disabling screen saver
    main debug: using video output module "vout_directx"
    main debug: waiting for thread completion
    vout_directx debug: NewPictureVec overlay:yes chroma:YV12
    vout_directx debug: YUV overlay created successfully
    vout_directx debug: End NewPictureVec (succeeded)
    main debug: got 1 direct buffer(s)
    main debug: picture in 720x480 (0,0,720x480), chroma I420, ar 4:3, sar 8:9
    main debug: picture user 720x480 (0,0,720x480), chroma I420, ar 4:3, sar 8:9
    main debug: picture out 720x480 (0,0,720x480), chroma I420, ar 4:3, sar 8:9
    main debug: direct render, mapping render pictures 0-6 to system pictures 1-7
    main debug: thread 4732 (video output) created at priority 1 (video_output/video_output.c:421)
    main warning: dts != current_pts (-1273595)
    main debug: Registering subpicture channel, ID: 2
    main debug: Registering subpicture channel, ID: 3
    main debug: Registering subpicture channel, ID: 4
    main debug: Registering subpicture channel, ID: 5
    main warning: vout synchro warning: pts != current_date (-33367)
    main debug: decoded 103/105 pictures
    main warning: late picture skipped (190925)
    main warning: late picture skipped (157642)
    main warning: late picture skipped (124372)
    main warning: late picture skipped (91083)
    main warning: late picture skipped (77757)
    main warning: late picture skipped (11052)
    main warning: late picture skipped (178619)
    main warning: late picture skipped (148045)
    main warning: late picture skipped (114694)
    main warning: late picture skipped (81337)
    main warning: late picture skipped (68841)
    main warning: late picture skipped (55990)
    main debug: decoded 98/105 pictures
    main warning: late picture skipped (175854)
    main warning: late picture skipped (144291)
    main warning: late picture skipped (110939)
    main warning: late picture skipped (77582)
    main warning: late picture skipped (64238)
    main warning: late picture skipped (171474)
    main warning: late picture skipped (140701)
    main warning: late picture skipped (107352)
    main warning: late picture skipped (73995)
    main warning: late picture skipped (60858)
    main debug: decoded 99/105 pictures


    Another interesting point is that I can't really navigate the stream with VLC. If I ask to go to the end of the stream, it gives me lots of messages and en-up with this 2:

    main warning: dts != current_pts (-1312818)
    main warning: vout synchro warning: pts != current_date (-33367)

    And reset's back to the beginning of the stream.

    Could this give you some hint?
     

    josu

    Portal Pro
    March 14, 2006
    192
    0
    Kassel, Germany
    Home Country
    Germany Germany
    joboehl frodo

    can you make a short look here

    At weekend I have made some tests with vlc:D

    Important: You must simulate a channel-change with the tve-timeshift-control, then VLC freezes too.


    That is going on (VLC-log):

    ts warning: discontinuity received 0xe instead of 0xb (pid=48)
    ts warning: discontinuity received 0xe instead of 0x5 (pid=64)
    ts debug: PATCallBack called
    ts debug: new PAT ts_id=4 version=2 current_next=1
    ts debug: * number=137 pid=32
    ts debug: PMTCallBack called
    ts debug: new PMT program number=137 version=2 pid_pcr=48
    ts debug: * es pid=48 type=2 fcc=mpgv
    ts debug: * es pid=64 type=4 fcc=mpga
    ts debug: * es pid=65 type=6 dr->i_tag=0x6a
    ts debug: * es pid=65 type=6 fcc=a52
    ts warning: first packet for pid=48 cc=0x8
    ts warning: first packet for pid=64 cc=0x8
    ts warning: first packet for pid=65 cc=0x6
    mpeg_audio debug: emulated startcode (no startcode on following frame)
    main warning: PTS is out of range (-23928), dropping buffer
    libmpeg2 debug: 720x576 (display 720,576), aspect 576000, sar 16:15, 25.000 fps
    main warning: dts != current_pts (-395773)
    main warning: backward_pts != current_pts (-40000)
    main warning: computed PTS is out of range (343209), clearing out
    main warning: output PTS is out of range (357490), clearing out
    main debug: audio output is starving (376006), playing silence
    main error: decoder is leaking pictures, resetting the heap
    main error: picture to date 00CA7730 has invalid status 6
    main error: picture to display 00CA7730 has invalid status 6
    main error: picture 00CA7730 refcount is -1
    main error: picture 00CA7A60 refcount is -1
    main debug: decoded 105/108 pictures
    ts warning: discontinuity received 0x1 instead of 0x9 (pid=48)
    ts warning: discontinuity received 0x4 instead of 0xf (pid=64)
    ts debug: PATCallBack called
    ts debug: new PAT ts_id=4 version=3 current_next=1
    ts debug: * number=137 pid=32
    ts debug: PMTCallBack called
    ts debug: new PMT program number=137 version=3 pid_pcr=48
    ts debug: * es pid=48 type=2 fcc=mpgv
    ts debug: * es pid=64 type=4 fcc=mpga
    ts warning: first packet for pid=48 cc=0xe
    mpeg_audio debug: emulated startcode (no startcode on following frame)
    ts warning: first packet for pid=64 cc=0x2
    main warning: dts != current_pts (-1070311)
    main warning: computed PTS is out of range (6468413), clearing out
    main warning: PTS is out of range (6444433), dropping buffer
    main warning: output PTS is out of range (6468452), clearing out
    main warning: PTS is out of range (5230709), dropping buffer
    main warning: PTS is out of range (5206747), dropping buffer
    main warning: PTS is out of range (5182783), dropping buffer
    main warning: PTS is out of range (5158892), dropping buffer
    main warning: late picture skipped (6329060)
    main warning: late picture skipped (5218768)
    main warning: late picture skipped (5098780)
    main warning: PTS is out of range (5214741), dropping buffer
     

    josu

    Portal Pro
    March 14, 2006
    192
    0
    Kassel, Germany
    Home Country
    Germany Germany
    I have looked in details of 1 TV-channel, which makes problems.

    ASTRA 19.2, N24, 12480.00 V - Txp:104
    PMT 107 !!!!!!!!!!!!!!! from kingofsat


    If I timeshift this channel, you can see a wrong PMT of 68 :confused: :mad:

    At first look I have problems with the complete transponder 104 and a some others.


    Forgot it, I can remind me, that are HEX-values, SORRY
     

    josu

    Portal Pro
    March 14, 2006
    192
    0
    Kassel, Germany
    Home Country
    Germany Germany
    Should be fixed with todays build (12886). Working here nearly perfect

    hello koschel,
    :D
    I am testing it since a few hours and looks good.
    Only if you have one client running and the second get connection to the server,
    the picture freezes. You must switch up/down and then run the clients again.:)
     

    jcee

    Portal Pro
    November 23, 2004
    282
    1
    - After a channel change, Planescene.presentimage stops being called, and as such framecount is not updated. Framecount in 0 makes code goes down to a path where the "repaint - 0" that most people report as being the last thing before image freezes being called.

    Thats normal
    Normally what happens is:
    1. rtsp filter receives raw data from the server
    2. mpeg-2 demultiplexer demultiplexes the stream into seperate audio/video streams
    3. audio/video codecs decode the audio/video stream
    4. codecs deliver (uncompressed) video/audio frames to the video renderer / audio renderer
    5. audio/video renderer present the frame to the user

    Now when in step #3 the video (mpeg-2) decoder does not decode anything anymore then it will not deliver uncompressed video frames to the video renderer (VMR9)
    MP detects this and will start 'repainting' the last video frame received in step #4 by the VMR9 until the decoder starts to deliver new frames again

    So this is the result and not the cause of the freeze problems
    The problem is why the process stops in step #1 - #3

    It could be
    - step #1) rtsp filter does not receive any data anymore (could be checked with network sniffing)
    - step #3) video codec does not receive any packets anymore from the demultiplexer
    - step #3) video codec does receive packets from the demultiplexer, but with the wrong timestamp
    E.g. the video codec expects a packet with timestamp 100.00 but it receives an packet with timestamp 55.00 . In this case the codec drops the packets until it receives packet with timestamp 100.00 and then continues decoding and delivering video frames again

    Even worse:
    The video codec expects a packet with timestamp 100.00 but it receives an packet with timestamp 200.00 . In this case the codec waits until the current time is 200.00 and then continues decoding and delivering video frames again

    Now about the seeking, if you seek fwd/bkwd the entire directshow graph is 'reset' in terms of timing. All filters flush their (internal) buffers and start all over again.. This probably explains why this causes video to re-appear again...

    Frodo

    Frodo, thanks for that insight.

    I raised another thread already, because I am experiencing the exact some problem. I have FloppyDTV, DVB-C, Nvidia gfx, Nvidia pure video codec.

    The problem here appears also in normal playback of the recorded movies. E.g. when I play the video from "my videos".

    It hangs after a while, and from what you are writting I understand that something in the pipe up to #3 fails.
    I could imagine that the recorded movie is broken (maybe due to errors whern recording, put DVB stream should be expected to have errors).

    So it hangs from time to time. I observed some occasions where it did restart after a while, maybe the "right" timestamp came around...!?

    What can be done to improve this (beside of improving signal quality, I already exchanged al may wiring here)?!

    Are the codecs or demultiplexers we use not that robust?! Do we need some preprocessing of the stream?

    Maybe the codecs/multiplexers where not designed to handle DVB-streams which come in via antenna and might have errors inside?!
     

    Users who are viewing this thread

    Top Bottom