diff options
author | wm4 <wm4@nowhere> | 2013-07-11 19:23:56 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-07-11 19:23:56 +0200 |
commit | 4cda1d113e0d9d34d7c39cf3d8861c7079f965d8 (patch) | |
tree | ea99adb009514eb5518caf81d0c611089050adfe /DOCS/OUTDATED-tech | |
parent | 86cc3bd9be80c433cbf4c65aebc52ca69628cc8a (diff) | |
download | mpv-4cda1d113e0d9d34d7c39cf3d8861c7079f965d8.tar.bz2 mpv-4cda1d113e0d9d34d7c39cf3d8861c7079f965d8.tar.xz |
core: completely change handling of attached picture pseudo video
Before this commit, we tried to play along with libavformat and tried
to pretend that attached pictures are video streams with a single
frame, and that the frame magically appeared at the seek position when
seeking. The playback core would then switch to a mode where the video
has ended, and the "remaining" audio is played.
This didn't work very well:
- we needed a hack in demux.c, because we tried to read more packets in
order to find the "next" video frame (libavformat doesn't tell us if
a stream has ended)
- switching the video stream didn't work, because we can't tell
libavformat to send the packet again
- seeking and resuming after was hacky (for some reason libavformat sets
the returned packet's PTS to that of the previously returned audio
packet in generic code not related to attached pictures, and this
happened to work)
- if the user did something stupid and e.g. inserted a deinterlacer by
default, a picture was never displayed, only an inactive VO window)
- same when using a command that reconfigured the VO (like switching
aspect or video filters)
- hr-seek didn't work
For this reason, handle attached pictures as separate case with a
separate video decoding function, which doesn't read packets. Also,
do not synchronize audio to video start in this case.
Diffstat (limited to 'DOCS/OUTDATED-tech')
0 files changed, 0 insertions, 0 deletions