Mercurial > mplayer.hg
annotate fmt-conversion.c @ 34634:0ef7177a063b
Fix linking after FFmpeg merge.
Protocols that are available only when librtmp is present
are no longer disabled in the code, so we have to remove
them in our configure.
author | iive |
---|---|
date | Tue, 14 Feb 2012 16:50:42 +0000 |
parents | 2a372b469420 |
children | 0eba64545a27 |
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}, | |
34565 | 68 {IMGFMT_444A, PIX_FMT_YUVA444P}, |
34404 | 69 #endif |
34213
7d93d0f72802
fmt_conversion: surround PIX_FMT_GBR24P by #ifdefs to ensure availability
diego
parents:
34191
diff
changeset
|
70 #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51, 20, 1) |
34404 | 71 {IMGFMT_GBR24P, PIX_FMT_GBRP}, |
34213
7d93d0f72802
fmt_conversion: surround PIX_FMT_GBR24P by #ifdefs to ensure availability
diego
parents:
34191
diff
changeset
|
72 #endif |
34191 | 73 {IMGFMT_YUY2, PIX_FMT_YUYV422}, |
74 {IMGFMT_UYVY, PIX_FMT_UYVY422}, | |
75 {IMGFMT_NV12, PIX_FMT_NV12}, | |
76 {IMGFMT_NV21, PIX_FMT_NV21}, | |
77 {IMGFMT_Y800, PIX_FMT_GRAY8}, | |
78 {IMGFMT_Y8, PIX_FMT_GRAY8}, | |
79 {IMGFMT_YVU9, PIX_FMT_YUV410P}, | |
80 {IMGFMT_IF09, PIX_FMT_YUV410P}, | |
81 {IMGFMT_YV12, PIX_FMT_YUV420P}, | |
82 {IMGFMT_I420, PIX_FMT_YUV420P}, | |
83 {IMGFMT_IYUV, PIX_FMT_YUV420P}, | |
84 {IMGFMT_411P, PIX_FMT_YUV411P}, | |
85 {IMGFMT_422P, PIX_FMT_YUV422P}, | |
86 {IMGFMT_444P, PIX_FMT_YUV444P}, | |
87 {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
|
88 |
ad61464d02a7
Add support for YUV format with alpha and fix the codecs.conf entry for vp6a
reimar
parents:
30110
diff
changeset
|
89 {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
|
90 |
30110 | 91 {IMGFMT_420P16_LE, PIX_FMT_YUV420P16LE}, |
92 {IMGFMT_420P16_BE, PIX_FMT_YUV420P16BE}, | |
33364
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
93 {IMGFMT_420P10_LE, PIX_FMT_YUV420P10LE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
94 {IMGFMT_420P10_BE, PIX_FMT_YUV420P10BE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
95 {IMGFMT_420P9_LE, PIX_FMT_YUV420P9LE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
96 {IMGFMT_420P9_BE, PIX_FMT_YUV420P9BE}, |
30110 | 97 {IMGFMT_422P16_LE, PIX_FMT_YUV422P16LE}, |
98 {IMGFMT_422P16_BE, PIX_FMT_YUV422P16BE}, | |
33364
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
99 {IMGFMT_422P10_LE, PIX_FMT_YUV422P10LE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
100 {IMGFMT_422P10_BE, PIX_FMT_YUV422P10BE}, |
34436 | 101 {IMGFMT_422P9_LE, PIX_FMT_YUV422P9LE}, |
102 {IMGFMT_422P9_BE, PIX_FMT_YUV422P9BE}, | |
30110 | 103 {IMGFMT_444P16_LE, PIX_FMT_YUV444P16LE}, |
104 {IMGFMT_444P16_BE, PIX_FMT_YUV444P16BE}, | |
34028 | 105 {IMGFMT_444P10_LE, PIX_FMT_YUV444P10LE}, |
106 {IMGFMT_444P10_BE, PIX_FMT_YUV444P10BE}, | |
34191 | 107 {IMGFMT_444P9_LE, PIX_FMT_YUV444P9LE}, |
108 {IMGFMT_444P9_BE, PIX_FMT_YUV444P9BE}, | |
28631
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
109 |
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
110 // 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
|
111 // 16 - 235 (see colorspaces.txt). |
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
112 // Currently they are all treated the same way. |
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
113 {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
|
114 {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
|
115 {IMGFMT_444P, PIX_FMT_YUVJ444P}, |
30098 | 116 {IMGFMT_440P, PIX_FMT_YUVJ440P}, |
28631
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
117 |
28526
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
118 {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
|
119 {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
|
120 {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
|
121 {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
|
122 {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
|
123 {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
|
124 {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
|
125 {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
|
126 {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
|
127 }; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
128 |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
129 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
|
130 { |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
131 int i; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
132 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
|
133 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
|
134 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
|
135 break; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
136 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
|
137 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
|
138 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
|
139 return pix_fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
140 } |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
141 |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
142 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
|
143 { |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
144 int i; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
145 int fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
146 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
|
147 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
|
148 break; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
149 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
|
150 if (!fmt) |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
151 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
|
152 return fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
153 } |
32905
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
154 |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
155 static const struct { |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
156 int fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
157 enum AVSampleFormat sample_fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
158 } samplefmt_conversion_map[] = { |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
159 {AF_FORMAT_U8, AV_SAMPLE_FMT_U8}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
160 {AF_FORMAT_S16_NE, AV_SAMPLE_FMT_S16}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
161 {AF_FORMAT_S32_NE, AV_SAMPLE_FMT_S32}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
162 {AF_FORMAT_FLOAT_NE, AV_SAMPLE_FMT_FLT}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
163 {0, AV_SAMPLE_FMT_NONE} |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
164 }; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
165 |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
166 enum AVSampleFormat affmt2samplefmt(int fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
167 { |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
168 char str[50]; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
169 int i; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
170 enum AVSampleFormat sample_fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
171 for (i = 0; samplefmt_conversion_map[i].fmt; i++) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
172 if (samplefmt_conversion_map[i].fmt == fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
173 break; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
174 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
|
175 if (sample_fmt == AV_SAMPLE_FMT_NONE) |
32905
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
176 mp_msg(MSGT_GLOBAL, MSGL_ERR, "Unsupported format %s\n", |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
177 af_fmt2str(fmt, str, sizeof(str))); |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
178 return sample_fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
179 } |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
180 |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
181 int samplefmt2affmt(enum AVSampleFormat sample_fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
182 { |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
183 int i; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
184 int fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
185 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
|
186 if (samplefmt_conversion_map[i].sample_fmt == sample_fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
187 break; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
188 fmt = samplefmt_conversion_map[i].fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
189 if (!fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
190 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
|
191 return fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
192 } |