0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00
mpv/demux
wm4 2684280643 sub: add sd_spu.c to wrap spudec, cleanup mplayer.c
This unifies the subtitle rendering path. Now all subtitle rendering
goes through sd_ass.c/sd_lavc.c/sd_spu.c.

Before that commit, the spudec.h functions were used directly in
mplayer.c, which introduced many special cases. Add sd_spu.c, which is
just a small wrapper connecting the new subtitle render API with the
dusty old vobsub decoder in spudec.c.

One detail that changes is that we always pass the palette as extra
data, instead of passing the libdvdread palette as pointer to spudec
directly. This is a bit roundabout, but actually makes the code simpler
and more elegant: the difference between DVD and non-DVD dvdsubs is
reduced.

Ideally, we would just delete spudec.c and use libavcodec's DVD sub
decoder. However, DVD playback with demux_mpg produces packets
incompatible to lavc. There are incompatibilities the other way around
as well: packets from libavformat's vobsub demuxer are incompatible to
spudec.c. So we define a new subtitle codec name for demux_mpg subs,
"dvd_subtitle_mpg", which only sd_spu can decode.

There is actually code in spudec.c to "assemble" fragments into complete
packets, but using the whole spudec.c is easier than trying to move this
code into demux_mpg to fix subtitle packets.

As additional complication, Libav 9.x can't decode DVD subs correctly,
so use sd_spu in that case as well.
2013-05-30 22:40:32 +02:00
..
asf.h Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
asfguid.h Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
asfheader.c core: redo how codecs are mapped, remove codecs.conf 2013-02-10 17:25:56 +01:00
asfheader.h Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
aviheader.c core: redo how codecs are mapped, remove codecs.conf 2013-02-10 17:25:56 +01:00
aviheader.h stream, demux: replace off_t with int64_t 2012-11-20 18:00:15 +01:00
aviprint.c Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
aviprint.h Rename directories, move files (step 1 of 2) (does not compile) 2012-11-12 20:06:14 +01:00
codec_tags.c demux: fix big endian PCM in mkv with demux_mkv 2013-05-11 20:19:08 +02:00
codec_tags.h core: redo how codecs are mapped, remove codecs.conf 2013-02-10 17:25:56 +01:00
demux_asf.c demux_asf: fix after commit 5165e19 2013-05-29 14:57:05 +02:00
demux_avi.c demux: remove some unused sh_video_t fields 2013-04-20 23:28:27 +02:00
demux_cue.c Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
demux_edl.c Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
demux_lavf.c demuxer_lavf: use audio/mpeg mime type for mp3 2013-05-27 23:27:59 +02:00
demux_mf.c demux_mf: fix crashes when '*' matches directories 2013-03-19 01:54:45 +01:00
demux_mkv.c demux_mkv: replace awkward goto by function call 2013-05-30 19:59:03 +02:00
demux_mng.c core: use playback time to determine playback percent position 2013-02-26 02:01:48 +01:00
demux_mpg.c sub: add sd_spu.c to wrap spudec, cleanup mplayer.c 2013-05-30 22:40:32 +02:00
demux_packet.h demux: workaround for -demuxer mpegts -correct-pts 2013-05-21 22:07:13 +02:00
demux_rawaudio.c core: use channel map on demuxer level too 2013-05-12 21:24:55 +02:00
demux_rawvideo.c demux_rawvideo: allow setting video codec 2013-02-24 16:46:35 +01:00
demux_ts.c Fix some cppcheck / scan-build warnings 2013-05-06 23:11:11 +02:00
demux_ts.h Rename directories, move files (step 1 of 2) (does not compile) 2012-11-12 20:06:14 +01:00
demux.c core: avoid deselecting and reselecting stream needlessly 2013-05-29 14:57:05 +02:00
demux.h demux: remove retrieval of chapter end time 2013-05-06 23:11:11 +02:00
ebml.c demux_mkv: use a bounded buffer for block data 2013-04-20 23:28:22 +02:00
ebml.h demux_mkv: use a bounded buffer for block data 2013-04-20 23:28:22 +02:00
extension.c Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
matroska.h demux_mkv: support dirac in mkv 2013-05-21 22:07:12 +02:00
mf.c demux_mf: fix crashes when '*' matches directories 2013-03-19 01:54:45 +01:00
mf.h demux_mf: allow displaying single image files, various cleanups 2012-11-16 21:21:16 +01:00
mp3_hdr.c Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
mp3_hdr.h Rename directories, move files (step 1 of 2) (does not compile) 2012-11-12 20:06:14 +01:00
mpeg_hdr.c Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
mpeg_hdr.h Rename directories, move files (step 1 of 2) (does not compile) 2012-11-12 20:06:14 +01:00
ms_hdr.h Rename directories, move files (step 1 of 2) (does not compile) 2012-11-12 20:06:14 +01:00
parse_es.c Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
parse_es.h Rename directories, move files (step 2 of 2) 2012-11-12 20:08:18 +01:00
stheader.h Merge branch 'audio_changes' 2013-05-12 21:47:55 +02:00
video.c demux: remove some unused sh_video_t fields 2013-04-20 23:28:27 +02:00