Mercurial > mplayer.hg
annotate stream/stream_mf.c @ 36441:b75ebb89d803
Workaround VDPAU decode errors on aspect change on NVidia.
The NVidia driver seems to expect a decoder reinit on aspect
change, otherwise giving a nonsense VDP_STATUS_INVALID_SIZE
error.
Since decode and display can run out of sync, we do not in fact
know when an aspect change will happen during decode but only when
we want to display that decoded frame, and with threaded decoding
these will differ significantly.
So just catch the error and retry decoding instead, this also has
the advantage of not affecting (and possibly costing performance)
drivers without this issue.
author | reimar |
---|---|
date | Sun, 08 Dec 2013 15:07:00 +0000 |
parents | 0f1b5b68af32 |
children | a5764687ff8d |
rev | line source |
---|---|
19301 | 1 /* |
26737
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
2 * stream layer for multiple files input, based on previous work from Albeu |
19301 | 3 * |
26737
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
4 * Copyright (C) 2006 Benjamin Zores |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
5 * |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
6 * This file is part of MPlayer. |
19301 | 7 * |
26737
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
8 * MPlayer is free software; you can redistribute it and/or modify |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
11 * (at your option) any later version. |
19301 | 12 * |
26737
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
13 * MPlayer is distributed in the hope that it will be useful, |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
16 * GNU General Public License for more details. |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
17 * |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
18 * You should have received a copy of the GNU General Public License along |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
19 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
a26e50cae389
Use standard license headers with standard formatting.
diego
parents:
25211
diff
changeset
|
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
19301 | 21 */ |
22 | |
23 #include "config.h" | |
24 | |
25 #include <stdlib.h> | |
26 #include <string.h> | |
27 | |
28 #include "stream.h" | |
19312
ab8d6b6deb63
proper inclusion of demuxer.h (including libmpdemux in Makefile only was to make previous split easier)
ben
parents:
19301
diff
changeset
|
29 #include "libmpdemux/demuxer.h" |
19301 | 30 |
31 static int | |
32 mf_stream_open (stream_t *stream, int mode, void *opts, int *file_format) | |
33 { | |
34 stream->type = STREAMTYPE_MF; | |
35 *file_format = DEMUXER_TYPE_MF; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
26737
diff
changeset
|
36 |
19301 | 37 return STREAM_OK; |
38 } | |
39 | |
25211 | 40 const stream_info_t stream_info_mf = { |
19301 | 41 "Multiple files input", |
42 "mf", | |
43 "Benjamin Zores, Albeu", | |
44 "", | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
26737
diff
changeset
|
45 mf_stream_open, |
19301 | 46 { "mf", NULL }, |
47 NULL, | |
48 1 | |
49 }; |