Opened 11 years ago
Last modified 11 years ago
#2174 new defect
mencoder reports malformed audio position of tv recording when no audio
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | low | Component: | mencoder |
Version: | HEAD | Severity: | trivial |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Reproduced by developer: | no | Analyzed by developer: | no |
Description
Mencoder reports negative audio position. This kills mencoder's ability to sync audio and video.
Command line of mencoder r36960:
mencoder -o /m/test.avi tv:// -endpos 0.1 -ovc raw -v
Output:
VPos: 0.1s APos:-9223372036854775808.0s 3f ( 0%) 0fps Trem: 0min
My kernel is 3.12.8-1 on Debian. Not reproducible with kernel 3.2. I guess the problem lies in kernel video driver, which started to use monotonic timestamps somewhere about 3.9 version. These are the related kernel commits: introduced monotonic timestamps, flags for timestamps types, commits of this author. The changes are from 2012-12-21.
Mencoder needs to be changed to work with both kind of timestamps (old and new kernels). When time permits I will provide a patch.
Change History (2)
comment:1 by , 11 years ago
comment:2 by , 11 years ago
Component: | streaming → mencoder |
---|---|
Priority: | normal → low |
Severity: | major → trivial |
Summary: | mencoder reports malformed audio position of tv recording (monotonic timestamps) → mencoder reports malformed audio position of tv recording when no audio |
Mencoder reports negative audio position, because it does not process audio at all. The command line needs adding "-tv immediatemode=0:forceaudio -oac copy". So it is not at all about kernel changes. Please remove "(monotonic timestamps)" from the bug summary, if possible.
I'll prepare a separate bug report for the kernel timestamps problem, which actually manifests in a different way. I joined these 2 erratic behaviours by mistake.
I'll provide a patch for this problem (negative APos reported). Mencoder should neither read nor print audio muxer time, if the audio muxer is not initialized (mux_a == 0).