Opened 6 years ago

Closed 4 years ago

#3107 closed defect (wontfix)

fake:// Input does not work as slave in real-time

Reported by: VLC_help Owned by:
Priority: normal Milestone: Features paradize
Component: Core: Input Version: master git
Severity: normal Keywords:
Cc: Difficulty: unknown
Platform(s): all Work status: Not started

Description

As reported in: http://forum.videolan.org/viewtopic.php?f=14&t=66259

With VLC 0.9.8 following script worked correctly, but with VLC 1.0.2 it fails. Tested under Win32.

vlc.exe fake:// --fake-file="test.jpg" --fake-duration=9999999999 --fake-file-reload=5 --input-slave="music.mp3" --sout="#transcode{vcodec=mp2v,vb=4000,fps=25,scale=1,acodec=mpga,ab=128,channels=2,sfilter=marq@nowplaying{marquee=' '}}:duplicate{dst=std{access=file,mux=ts,dst='output.mpg'}}" --sout-transcode-audio-sync -I rc --rc-host=localhost:5000 --rc-quiet

And messages from 1.0.2

main warning: clock gap, unexpected stream discontinuity
main warning: feeding synchro with a new reference point trying to recover from clock gap
main debug: Buffering 0%
main debug: Buffering 8%
main debug: Buffering 17%
main warning: clock gap, unexpected stream discontinuity
main warning: feeding synchro with a new reference point trying to recover from clock gap
main debug: Buffering 0%
main debug: Buffering 13%
main warning: clock gap, unexpected stream discontinuity
main warning: feeding synchro with a new reference point trying to recover from clock gap
main debug: Buffering 0%
main debug: Buffering 8%

Change History (8)

comment:1 Changed 6 years ago by jb

vlc fake:// --fake-file="test.jpg" --input-slave="music.mp3" -vvv

Is enough to see the bug.

comment:2 Changed 6 years ago by jb

vlc music.mp3 --input-slave="fake://" explodes the same

comment:3 Changed 6 years ago by courmisch

  • Component changed from I don't know to Input
  • Owner courmisch deleted

The fake slave case might be trivial to fix (handling SET_NEXT_TIME control). But the other one is quite impossible given the way input-slave works. In fact, I am quite surprised that it did work in the past.

comment:4 Changed 5 years ago by courmisch

  • Difficulty set to unknown
  • Milestone changed from Bugs paradize to Features paradize
  • Platform(s) set to all
  • Summary changed from Input slave doesn't work correctly anymore to fake:// Input does not work as slave in real-time
  • Work status set to Not started

comment:5 Changed 5 years ago by rogerdpack

+1 for this one. I even offered a bounty for it :)

http://nextsprocket.com/tasks/fix-slave-audio-in-vlc

Maybe slave input should be disallowed as a parameter until it works? Or does it only fail in certain cases? Thanks. -r

comment:6 Changed 5 years ago by courmisch

Slave inputs work if their timing is coherent with the master input. You have a few categories:

  • "real-time" inputs (microphones, cameras, PVRs, screen captures) using the clock, can be mixed with one another
  • (most) file formats counting time from 0 at their beginning, can be mixed with one another
  • MPEG TS using its own program clock reference (PCR), can be mixed across streams using the came PCR
  • RTP with RTCP-SR using NTP time, can be mixed across streams from the same source

You cannot mix inputs from different categories. The VLC synchronization algorithm simply cannot operate. That's why subtitle files do not work with MPEG TS.

Anyway, the fake input has been removed completely in VLC 1.2, so I'm tempted to mark this bug as wontfix...

comment:7 Changed 5 years ago by rogerdpack

Sure mark away.

I noticed that I couldn't have "desktop" video with slave directshow audio. I assume this is a manifestation of incompatibly timed streams? Should I write this off as "a design decision" or should it be considered a bug, do you think? Thanks. -r

comment:8 Changed 4 years ago by jb

  • Resolution set to wontfix
  • Status changed from new to closed

Fake is gone.

Note: See TracTickets for help on using tickets.