summaryrefslogtreecommitdiffstats
path: root/demux/demux_mkv.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-01-30 00:57:07 +0100
committerwm4 <wm4@nowhere>2013-01-30 00:57:07 +0100
commit0421e17c2becffda3b748e27bd35e49c6fa017fb (patch)
treeb8190db32d27393111edb9b0beabec57bec0a838 /demux/demux_mkv.c
parent237b7491e2553137bb3141c9f73b1da9abd55958 (diff)
downloadmpv-0421e17c2becffda3b748e27bd35e49c6fa017fb.tar.bz2
mpv-0421e17c2becffda3b748e27bd35e49c6fa017fb.tar.xz
demux_mkv: support more formats with V_UNCOMPRESSED
Select the generic raw video decoder in codecs.cfg ("MPrv" FourCC), which forces the generic lavc raw video decoder "rawvideo". This means all FourCCs understood by lavc rawvideo are supported, not just whatever has codecs.cfg entries.
Diffstat (limited to 'demux/demux_mkv.c')
-rw-r--r--demux/demux_mkv.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index ff38e628ec..c635601986 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -1170,6 +1170,7 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track,
{
BITMAPINFOHEADER *bih;
sh_video_t *sh_v;
+ bool raw = false;
if (track->ms_compat) { /* MS compatibility mode */
BITMAPINFOHEADER *src;
@@ -1235,6 +1236,7 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track,
} else if (strcmp(track->codec_id, MKV_V_UNCOMPRESSED) == 0) {
// raw video, "like AVI" - this is a FourCC
bih->biCompression = track->colorspace;
+ raw = true;
} else {
const videocodec_info_t *vi = vinfo;
while (vi->id && strcmp(vi->id, track->codec_id))
@@ -1263,6 +1265,10 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track,
sh_v->gsh->title = talloc_strdup(sh_v, track->name);
sh_v->bih = bih;
sh_v->format = sh_v->bih->biCompression;
+ if (raw) {
+ sh_v->format = mmioFOURCC('M', 'P', 'r', 'v');
+ sh_v->imgfmt = sh_v->bih->biCompression;
+ }
if (track->v_frate == 0.0)
track->v_frate = 25.0;
sh_v->fps = track->v_frate;