Mercurial > mplayer.hg
annotate fmt-conversion.c @ 34953:359ceed74184
Fix crash for -vo sdl -fs when running under X.
author | reimar |
---|---|
date | Mon, 23 Jul 2012 18:59:20 +0000 |
parents | 19212dea7a97 |
children | 4ba6b8d3197e |
rev | line source |
---|---|
28526
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
1 /* |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
2 * This file is part of MPlayer. |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
3 * |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
4 * MPlayer is free software; you can redistribute it and/or modify |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
6 * the Free Software Foundation; either version 2 of the License, or |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
7 * (at your option) any later version. |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
8 * |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
9 * MPlayer is distributed in the hope that it will be useful, |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
12 * GNU General Public License for more details. |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
13 * |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
14 * You should have received a copy of the GNU General Public License along |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
17 */ |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
18 |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
19 #include "mp_msg.h" |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
20 #include "libavutil/avutil.h" |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
21 #include "libmpcodecs/img_format.h" |
33533 | 22 #include "libavutil/pixfmt.h" |
32905
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
23 #include "libavutil/samplefmt.h" |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
24 #include "libaf/af_format.h" |
28526
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
25 #include "fmt-conversion.h" |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
26 |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
27 static const struct { |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
28 int fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
29 enum PixelFormat pix_fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
30 } conversion_map[] = { |
34191 | 31 {IMGFMT_ARGB, PIX_FMT_ARGB}, |
32 {IMGFMT_BGRA, PIX_FMT_BGRA}, | |
33 {IMGFMT_BGR24, PIX_FMT_BGR24}, | |
30311
8a67140f5fc1
Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents:
30309
diff
changeset
|
34 {IMGFMT_BGR16BE, PIX_FMT_RGB565BE}, |
8a67140f5fc1
Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents:
30309
diff
changeset
|
35 {IMGFMT_BGR16LE, PIX_FMT_RGB565LE}, |
8a67140f5fc1
Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents:
30309
diff
changeset
|
36 {IMGFMT_BGR15BE, PIX_FMT_RGB555BE}, |
8a67140f5fc1
Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents:
30309
diff
changeset
|
37 {IMGFMT_BGR15LE, PIX_FMT_RGB555LE}, |
31082
92f88bb315c5
Add support for 12-bit color mode on framebuffer devices.
cehoyos
parents:
30311
diff
changeset
|
38 {IMGFMT_BGR12BE, PIX_FMT_RGB444BE}, |
92f88bb315c5
Add support for 12-bit color mode on framebuffer devices.
cehoyos
parents:
30311
diff
changeset
|
39 {IMGFMT_BGR12LE, PIX_FMT_RGB444LE}, |
34191 | 40 {IMGFMT_BGR8, PIX_FMT_RGB8}, |
41 {IMGFMT_BGR4, PIX_FMT_RGB4}, | |
42 {IMGFMT_BGR1, PIX_FMT_MONOBLACK}, | |
43 {IMGFMT_RGB1, PIX_FMT_MONOBLACK}, | |
44 {IMGFMT_RG4B, PIX_FMT_BGR4_BYTE}, | |
45 {IMGFMT_BG4B, PIX_FMT_RGB4_BYTE}, | |
29445 | 46 {IMGFMT_RGB48LE, PIX_FMT_RGB48LE}, |
47 {IMGFMT_RGB48BE, PIX_FMT_RGB48BE}, | |
34191 | 48 {IMGFMT_ABGR, PIX_FMT_ABGR}, |
49 {IMGFMT_RGBA, PIX_FMT_RGBA}, | |
50 {IMGFMT_RGB24, PIX_FMT_RGB24}, | |
30311
8a67140f5fc1
Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents:
30309
diff
changeset
|
51 {IMGFMT_RGB16BE, PIX_FMT_BGR565BE}, |
8a67140f5fc1
Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents:
30309
diff
changeset
|
52 {IMGFMT_RGB16LE, PIX_FMT_BGR565LE}, |
8a67140f5fc1
Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents:
30309
diff
changeset
|
53 {IMGFMT_RGB15BE, PIX_FMT_BGR555BE}, |
8a67140f5fc1
Add big- and little-endian variants of the 15 and 16 bit RGB/BGR formats.
reimar
parents:
30309
diff
changeset
|
54 {IMGFMT_RGB15LE, PIX_FMT_BGR555LE}, |
31082
92f88bb315c5
Add support for 12-bit color mode on framebuffer devices.
cehoyos
parents:
30311
diff
changeset
|
55 {IMGFMT_RGB12BE, PIX_FMT_BGR444BE}, |
92f88bb315c5
Add support for 12-bit color mode on framebuffer devices.
cehoyos
parents:
30311
diff
changeset
|
56 {IMGFMT_RGB12LE, PIX_FMT_BGR444LE}, |
34191 | 57 {IMGFMT_RGB8, PIX_FMT_BGR8}, |
58 {IMGFMT_RGB4, PIX_FMT_BGR4}, | |
59 {IMGFMT_BGR8, PIX_FMT_PAL8}, | |
34414
6f48ca5471b6
fmt-conversion.c: add a remark about the usage of #ifdef directives
siretart
parents:
34404
diff
changeset
|
60 // NB: This works only because PIX_FMT_0RGB32 is a CPP Macro. |
6f48ca5471b6
fmt-conversion.c: add a remark about the usage of #ifdef directives
siretart
parents:
34404
diff
changeset
|
61 // note that most other PIX_FMT values are enums |
34404 | 62 #ifdef PIX_FMT_0RGB32 |
34276 | 63 {IMGFMT_BGR32, PIX_FMT_0RGB32}, |
34512 | 64 {IMGFMT_BGRA, PIX_FMT_BGR0}, |
65 {IMGFMT_RGBA, PIX_FMT_RGB0}, | |
34572 | 66 {IMGFMT_RGB64LE, PIX_FMT_RGBA64LE}, |
67 {IMGFMT_RGB64BE, PIX_FMT_RGBA64BE}, | |
34805
0eba64545a27
Improve Avid Meridien (AVUI) decoding with FFmpeg.
cehoyos
parents:
34572
diff
changeset
|
68 {IMGFMT_422A, PIX_FMT_YUVA422P}, |
34565 | 69 {IMGFMT_444A, PIX_FMT_YUVA444P}, |
34404 | 70 #endif |
34213
7d93d0f72802
fmt_conversion: surround PIX_FMT_GBR24P by #ifdefs to ensure availability
diego
parents:
34191
diff
changeset
|
71 #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51, 20, 1) |
34404 | 72 {IMGFMT_GBR24P, PIX_FMT_GBRP}, |
34923
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
73 {IMGFMT_GBR12PLE, PIX_FMT_GBRP12LE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
74 {IMGFMT_GBR12PBE, PIX_FMT_GBRP12BE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
75 {IMGFMT_GBR14PLE, PIX_FMT_GBRP14LE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
76 {IMGFMT_GBR14PBE, PIX_FMT_GBRP14BE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
77 {IMGFMT_420P14_LE, PIX_FMT_YUV420P14LE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
78 {IMGFMT_420P14_BE, PIX_FMT_YUV420P14BE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
79 {IMGFMT_420P12_LE, PIX_FMT_YUV420P12LE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
80 {IMGFMT_420P12_BE, PIX_FMT_YUV420P12BE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
81 {IMGFMT_422P14_LE, PIX_FMT_YUV422P14LE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
82 {IMGFMT_422P14_BE, PIX_FMT_YUV422P14BE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
83 {IMGFMT_422P12_LE, PIX_FMT_YUV422P12LE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
84 {IMGFMT_422P12_BE, PIX_FMT_YUV422P12BE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
85 {IMGFMT_444P14_LE, PIX_FMT_YUV444P14LE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
86 {IMGFMT_444P14_BE, PIX_FMT_YUV444P14BE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
87 {IMGFMT_444P12_LE, PIX_FMT_YUV444P12LE}, |
eb76937af57e
Support FFmpeg pix_fmts YUV4xxP12*, YUV4xxP14*, GBR12P* and GBR14P*.
cehoyos
parents:
34805
diff
changeset
|
88 {IMGFMT_444P12_BE, PIX_FMT_YUV444P12BE}, |
34932
19212dea7a97
Add missing aequivalents for PIX_FMT_GRAY8A and PIX_FMT_GRAY16*.
cehoyos
parents:
34923
diff
changeset
|
89 {IMGFMT_Y8A, PIX_FMT_GRAY8A}, |
34213
7d93d0f72802
fmt_conversion: surround PIX_FMT_GBR24P by #ifdefs to ensure availability
diego
parents:
34191
diff
changeset
|
90 #endif |
34932
19212dea7a97
Add missing aequivalents for PIX_FMT_GRAY8A and PIX_FMT_GRAY16*.
cehoyos
parents:
34923
diff
changeset
|
91 {IMGFMT_Y16_LE, PIX_FMT_GRAY16LE}, |
19212dea7a97
Add missing aequivalents for PIX_FMT_GRAY8A and PIX_FMT_GRAY16*.
cehoyos
parents:
34923
diff
changeset
|
92 {IMGFMT_Y16_BE, PIX_FMT_GRAY16BE}, |
34191 | 93 {IMGFMT_YUY2, PIX_FMT_YUYV422}, |
94 {IMGFMT_UYVY, PIX_FMT_UYVY422}, | |
95 {IMGFMT_NV12, PIX_FMT_NV12}, | |
96 {IMGFMT_NV21, PIX_FMT_NV21}, | |
97 {IMGFMT_Y800, PIX_FMT_GRAY8}, | |
98 {IMGFMT_Y8, PIX_FMT_GRAY8}, | |
99 {IMGFMT_YVU9, PIX_FMT_YUV410P}, | |
100 {IMGFMT_IF09, PIX_FMT_YUV410P}, | |
101 {IMGFMT_YV12, PIX_FMT_YUV420P}, | |
102 {IMGFMT_I420, PIX_FMT_YUV420P}, | |
103 {IMGFMT_IYUV, PIX_FMT_YUV420P}, | |
104 {IMGFMT_411P, PIX_FMT_YUV411P}, | |
105 {IMGFMT_422P, PIX_FMT_YUV422P}, | |
106 {IMGFMT_444P, PIX_FMT_YUV444P}, | |
107 {IMGFMT_440P, PIX_FMT_YUV440P}, | |
30115
ad61464d02a7
Add support for YUV format with alpha and fix the codecs.conf entry for vp6a
reimar
parents:
30110
diff
changeset
|
108 |
ad61464d02a7
Add support for YUV format with alpha and fix the codecs.conf entry for vp6a
reimar
parents:
30110
diff
changeset
|
109 {IMGFMT_420A, PIX_FMT_YUVA420P}, |
ad61464d02a7
Add support for YUV format with alpha and fix the codecs.conf entry for vp6a
reimar
parents:
30110
diff
changeset
|
110 |
30110 | 111 {IMGFMT_420P16_LE, PIX_FMT_YUV420P16LE}, |
112 {IMGFMT_420P16_BE, PIX_FMT_YUV420P16BE}, | |
33364
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
113 {IMGFMT_420P10_LE, PIX_FMT_YUV420P10LE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
114 {IMGFMT_420P10_BE, PIX_FMT_YUV420P10BE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
115 {IMGFMT_420P9_LE, PIX_FMT_YUV420P9LE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
116 {IMGFMT_420P9_BE, PIX_FMT_YUV420P9BE}, |
30110 | 117 {IMGFMT_422P16_LE, PIX_FMT_YUV422P16LE}, |
118 {IMGFMT_422P16_BE, PIX_FMT_YUV422P16BE}, | |
33364
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
119 {IMGFMT_422P10_LE, PIX_FMT_YUV422P10LE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
120 {IMGFMT_422P10_BE, PIX_FMT_YUV422P10BE}, |
34436 | 121 {IMGFMT_422P9_LE, PIX_FMT_YUV422P9LE}, |
122 {IMGFMT_422P9_BE, PIX_FMT_YUV422P9BE}, | |
30110 | 123 {IMGFMT_444P16_LE, PIX_FMT_YUV444P16LE}, |
124 {IMGFMT_444P16_BE, PIX_FMT_YUV444P16BE}, | |
34028 | 125 {IMGFMT_444P10_LE, PIX_FMT_YUV444P10LE}, |
126 {IMGFMT_444P10_BE, PIX_FMT_YUV444P10BE}, | |
34191 | 127 {IMGFMT_444P9_LE, PIX_FMT_YUV444P9LE}, |
128 {IMGFMT_444P9_BE, PIX_FMT_YUV444P9BE}, | |
28631
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
129 |
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
130 // YUVJ are YUV formats that use the full Y range and not just |
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
131 // 16 - 235 (see colorspaces.txt). |
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
132 // Currently they are all treated the same way. |
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
133 {IMGFMT_YV12, PIX_FMT_YUVJ420P}, |
28526
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
134 {IMGFMT_422P, PIX_FMT_YUVJ422P}, |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
135 {IMGFMT_444P, PIX_FMT_YUVJ444P}, |
30098 | 136 {IMGFMT_440P, PIX_FMT_YUVJ440P}, |
28631
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
137 |
28526
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
138 {IMGFMT_XVMC_MOCO_MPEG2, PIX_FMT_XVMC_MPEG2_MC}, |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
139 {IMGFMT_XVMC_IDCT_MPEG2, PIX_FMT_XVMC_MPEG2_IDCT}, |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
140 {IMGFMT_VDPAU_MPEG1, PIX_FMT_VDPAU_MPEG1}, |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
141 {IMGFMT_VDPAU_MPEG2, PIX_FMT_VDPAU_MPEG2}, |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
142 {IMGFMT_VDPAU_H264, PIX_FMT_VDPAU_H264}, |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
143 {IMGFMT_VDPAU_WMV3, PIX_FMT_VDPAU_WMV3}, |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
144 {IMGFMT_VDPAU_VC1, PIX_FMT_VDPAU_VC1}, |
29843
f6d56a15f1d8
Support VDPAU hardware accelerated decoding of MPEG-4 ASP on capable
cehoyos
parents:
29445
diff
changeset
|
145 {IMGFMT_VDPAU_MPEG4, PIX_FMT_VDPAU_MPEG4}, |
28526
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
146 {0, PIX_FMT_NONE} |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
147 }; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
148 |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
149 enum PixelFormat imgfmt2pixfmt(int fmt) |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
150 { |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
151 int i; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
152 enum PixelFormat pix_fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
153 for (i = 0; conversion_map[i].fmt; i++) |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
154 if (conversion_map[i].fmt == fmt) |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
155 break; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
156 pix_fmt = conversion_map[i].pix_fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
157 if (pix_fmt == PIX_FMT_NONE) |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
158 mp_msg(MSGT_GLOBAL, MSGL_ERR, "Unsupported format %s\n", vo_format_name(fmt)); |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
159 return pix_fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
160 } |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
161 |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
162 int pixfmt2imgfmt(enum PixelFormat pix_fmt) |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
163 { |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
164 int i; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
165 int fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
166 for (i = 0; conversion_map[i].pix_fmt != PIX_FMT_NONE; i++) |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
167 if (conversion_map[i].pix_fmt == pix_fmt) |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
168 break; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
169 fmt = conversion_map[i].fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
170 if (!fmt) |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
171 mp_msg(MSGT_GLOBAL, MSGL_ERR, "Unsupported PixelFormat %i\n", pix_fmt); |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
172 return fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
173 } |
32905
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
174 |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
175 static const struct { |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
176 int fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
177 enum AVSampleFormat sample_fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
178 } samplefmt_conversion_map[] = { |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
179 {AF_FORMAT_U8, AV_SAMPLE_FMT_U8}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
180 {AF_FORMAT_S16_NE, AV_SAMPLE_FMT_S16}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
181 {AF_FORMAT_S32_NE, AV_SAMPLE_FMT_S32}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
182 {AF_FORMAT_FLOAT_NE, AV_SAMPLE_FMT_FLT}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
183 {0, AV_SAMPLE_FMT_NONE} |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
184 }; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
185 |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
186 enum AVSampleFormat affmt2samplefmt(int fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
187 { |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
188 char str[50]; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
189 int i; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
190 enum AVSampleFormat sample_fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
191 for (i = 0; samplefmt_conversion_map[i].fmt; i++) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
192 if (samplefmt_conversion_map[i].fmt == fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
193 break; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
194 sample_fmt = samplefmt_conversion_map[i].sample_fmt; |
32908
c93ae40fb504
Fix copy-and-paste error: Should be AV_SAMPLE_FMT_NONE instead of PIX_FMT_NONE.
reimar
parents:
32905
diff
changeset
|
195 if (sample_fmt == AV_SAMPLE_FMT_NONE) |
32905
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
196 mp_msg(MSGT_GLOBAL, MSGL_ERR, "Unsupported format %s\n", |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
197 af_fmt2str(fmt, str, sizeof(str))); |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
198 return sample_fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
199 } |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
200 |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
201 int samplefmt2affmt(enum AVSampleFormat sample_fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
202 { |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
203 int i; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
204 int fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
205 for (i = 0; samplefmt_conversion_map[i].sample_fmt != AV_SAMPLE_FMT_NONE; i++) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
206 if (samplefmt_conversion_map[i].sample_fmt == sample_fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
207 break; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
208 fmt = samplefmt_conversion_map[i].fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
209 if (!fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
210 mp_msg(MSGT_GLOBAL, MSGL_ERR, "Unsupported AVSampleFormat %i\n", sample_fmt); |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
211 return fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
212 } |