Mercurial > mplayer.hg
annotate stream/freesdp/errorlist.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 | 08a90b0e44e1 |
children |
rev | line source |
---|---|
18823
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
1 /* |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
2 This file is part of FreeSDP |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
3 Copyright (C) 2001, 2002 Federico Montesino Pouzols <fedemp@suidzer0.org> |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
4 |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
5 FreeSDP is free software; you can redistribute it and/or modify it |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
6 under the terms of the GNU General Public License as published by |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
7 the Free Software Foundation; either version 2 of the License, or |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
8 (at your option) any later version. |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
9 |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
10 This program is distributed in the hope that it will be useful, |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
13 GNU General Public License for more details. |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
14 |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
15 You should have received a copy of the GNU General Public License |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
16 along with this program; if not, write to the Free Software |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
18 */ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
19 |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
20 /** |
33882 | 21 * @file |
18823
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
22 * |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
23 * @short Translation table for error numbers |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
24 * |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
25 */ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
26 |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
27 #ifndef FSDP_ERRORLIST_C |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
28 #define FSDP_ERRORLIST_C |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
29 |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
30 #include "common.h" |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
31 |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
32 const char *fsdp_error_t_s[] = { |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
33 "No error",/** FSDPE_OK **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
34 "Illegal character detected",/** FSDPE_ILLEGAL_CHARACTER **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
35 "Missing version item", /** FSDPE_MISSING_VERSION **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
36 "Invalid version item", /** FSDPE_INVALID_VERSION **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
37 "Owner item not present", /** FSDPE_MISSING_OWNER **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
38 "Parse error in owner item", /** FSDPE_INVALID_OWNER **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
39 "Session name not present", /** FSDPE_MISSING_NAME **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
40 "Empty session name item", /** FSDPE_EMPTY_NAME **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
41 "Syntax error in connection item", /** FSDPE_INVALID_CONNECTION **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
42 "Unrecognized address type in connection item", /** FSDPE_INVALID_CONNECTION_ADDRTYPE **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
43 "Unrecognized network type in connection item", /** FSDPE_INVALID_CONNECTION_NETTYPE **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
44 "Parse error in bandwith item", /** FSDPE_INVALID_BANDWIDTH **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
45 "No time period for the session", /** FSDPE_MISSING_TIME **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
46 "Parse error in time item", /** FSDPE_INVALID_TIME **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
47 "Parse error in repeat time item", /** FSDPE_INVALID_REPEAT **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
48 "Parse error in timezone item", /** FSDPE_INVALID_TIMEZONE **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
49 "Unknown encryption method", /** FSDPE_INVALID_ENCRYPTION_METHOD **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
50 "Syntax error in an attribute item", /** FSDPE_INVALID_ATTRIBUTE **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
51 "Syntax error in an rtpmap attribute item", /** FSDPE_INVALID_ATTRIBUTE_RTPMAP **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
52 "Unknown session type in a session-level attribute", /** FSDPE_INVALID_SESSION_TYPE **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
53 "Parse error in media item", /** FSDPE_INVALID_MEDIA **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
54 "Unknown media type in media item", /** FSDPE_UNKNOWN_MEDIA_TYPE **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
55 "Unknown media transport", /** FSDPE_UNKNOWN_MEDIA_TRANSPORT **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
56 "Unknown extra lines in description item", /** FSDPE_OVERFILLED **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
57 "Unknown line found", /** FSDPE_INVALID_LINE **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
58 "No connection information provided", /** FSDPE_MISSING_CONNECTION_INFO **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
59 "Description item does not fit in MAXSIZE", /** FSDPE_INVALID_INDEX **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
60 "Internal error", /** FSDPE_INTERNAL_ERROR **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
61 "Invalid function parameters", /** FSDPE_INVALID_PARAMETER **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
62 "Buffer overflow" /** FSDPE_BUFFER_OVERFLOW **/ |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
63 }; |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
64 |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
65 |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
66 const char * |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
67 fsdp_strerror (fsdp_error_t err_no) |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
68 { |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
69 return (fsdp_error_t_s[err_no]); |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
70 } |
ef667dd373e2
new imported library in libmpdemux: freesdp (will be used by native rtsp demuxer)
ben
parents:
diff
changeset
|
71 |
25535
3baf6a2283da
Add explanatory comments to the #endif part of multiple inclusion guards.
diego
parents:
19271
diff
changeset
|
72 #endif /* FSDP_ERRORLIST_C */ |