annotate fmt-conversion.c @ 34697:ac6b38cd0d45

Rename sub window video window. It was a bad idea to name the video window "sub window" at the time the GUI was written. The term "sub window" does make sense from the programmer's point of view, but it doesn't make any sense at all from the user's point of view, because the sub window simply is the window where the video will be displayed. Moreover, since the term "sub" is generally short for "subtitles", the renaming makes the code much easier to understand.
author ib
date Sat, 03 Mar 2012 16:45:15 +0000
parents 2a372b469420
children 0eba64545a27
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
3552dac79b1a Add some missing libavutil #includes.
diego
parents: 33364
diff changeset
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
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
31 {IMGFMT_ARGB, PIX_FMT_ARGB},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
32 {IMGFMT_BGRA, PIX_FMT_BGRA},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
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
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
40 {IMGFMT_BGR8, PIX_FMT_RGB8},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
41 {IMGFMT_BGR4, PIX_FMT_RGB4},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
42 {IMGFMT_BGR1, PIX_FMT_MONOBLACK},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
43 {IMGFMT_RGB1, PIX_FMT_MONOBLACK},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
44 {IMGFMT_RG4B, PIX_FMT_BGR4_BYTE},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
45 {IMGFMT_BG4B, PIX_FMT_RGB4_BYTE},
29445
3e9db1ac8cf1 Map IMGFMT_RGB48xE to PIX_FMT_RGB48xE.
cehoyos
parents: 29078
diff changeset
46 {IMGFMT_RGB48LE, PIX_FMT_RGB48LE},
3e9db1ac8cf1 Map IMGFMT_RGB48xE to PIX_FMT_RGB48xE.
cehoyos
parents: 29078
diff changeset
47 {IMGFMT_RGB48BE, PIX_FMT_RGB48BE},
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
48 {IMGFMT_ABGR, PIX_FMT_ABGR},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
49 {IMGFMT_RGBA, PIX_FMT_RGBA},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
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
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
57 {IMGFMT_RGB8, PIX_FMT_BGR8},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
58 {IMGFMT_RGB4, PIX_FMT_BGR4},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
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
95f802285711 Allow compilation with Libav
siretart
parents: 34276
diff changeset
62 #ifdef PIX_FMT_0RGB32
34276
ba5fdd2fa980 Support RGB FFV1 videos without transparency.
cehoyos
parents: 34213
diff changeset
63 {IMGFMT_BGR32, PIX_FMT_0RGB32},
34512
01c1e065120e Support 32-bit sunrast playback via FFmpeg.
cehoyos
parents: 34436
diff changeset
64 {IMGFMT_BGRA, PIX_FMT_BGR0},
01c1e065120e Support 32-bit sunrast playback via FFmpeg.
cehoyos
parents: 34436
diff changeset
65 {IMGFMT_RGBA, PIX_FMT_RGB0},
34572
2a372b469420 Support displaying 64bit RGB via OpenGL.
cehoyos
parents: 34565
diff changeset
66 {IMGFMT_RGB64LE, PIX_FMT_RGBA64LE},
2a372b469420 Support displaying 64bit RGB via OpenGL.
cehoyos
parents: 34565
diff changeset
67 {IMGFMT_RGB64BE, PIX_FMT_RGBA64BE},
34565
25acb5f98cb4 Support v408 and AYUV decoding via FFmpeg.
cehoyos
parents: 34512
diff changeset
68 {IMGFMT_444A, PIX_FMT_YUVA444P},
34404
95f802285711 Allow compilation with Libav
siretart
parents: 34276
diff changeset
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
95f802285711 Allow compilation with Libav
siretart
parents: 34276
diff changeset
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
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
73 {IMGFMT_YUY2, PIX_FMT_YUYV422},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
74 {IMGFMT_UYVY, PIX_FMT_UYVY422},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
75 {IMGFMT_NV12, PIX_FMT_NV12},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
76 {IMGFMT_NV21, PIX_FMT_NV21},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
77 {IMGFMT_Y800, PIX_FMT_GRAY8},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
78 {IMGFMT_Y8, PIX_FMT_GRAY8},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
79 {IMGFMT_YVU9, PIX_FMT_YUV410P},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
80 {IMGFMT_IF09, PIX_FMT_YUV410P},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
81 {IMGFMT_YV12, PIX_FMT_YUV420P},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
82 {IMGFMT_I420, PIX_FMT_YUV420P},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
83 {IMGFMT_IYUV, PIX_FMT_YUV420P},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
84 {IMGFMT_411P, PIX_FMT_YUV411P},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
85 {IMGFMT_422P, PIX_FMT_YUV422P},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
86 {IMGFMT_444P, PIX_FMT_YUV444P},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
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
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
91 {IMGFMT_420P16_LE, PIX_FMT_YUV420P16LE},
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
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
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
97 {IMGFMT_422P16_LE, PIX_FMT_YUV422P16LE},
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
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
8a96cf601e57 Add support for 422P9.
reimar
parents: 34414
diff changeset
101 {IMGFMT_422P9_LE, PIX_FMT_YUV422P9LE},
8a96cf601e57 Add support for 422P9.
reimar
parents: 34414
diff changeset
102 {IMGFMT_422P9_BE, PIX_FMT_YUV422P9BE},
30110
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
103 {IMGFMT_444P16_LE, PIX_FMT_YUV444P16LE},
19414a605695 Add support for 16-bit per component YUV formats.
reimar
parents: 30098
diff changeset
104 {IMGFMT_444P16_BE, PIX_FMT_YUV444P16BE},
34028
cf2a4f4cac0e Add 444P10 support.
cehoyos
parents: 33533
diff changeset
105 {IMGFMT_444P10_LE, PIX_FMT_YUV444P10LE},
cf2a4f4cac0e Add 444P10 support.
cehoyos
parents: 33533
diff changeset
106 {IMGFMT_444P10_BE, PIX_FMT_YUV444P10BE},
34191
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
107 {IMGFMT_444P9_LE, PIX_FMT_YUV444P9LE},
47e1375c4d79 Whitespace cosmetics: Align some IMGFMT-lists.
cehoyos
parents: 34189
diff changeset
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
834af9d1e3e9 Add support for 440p colorspace.
reimar
parents: 29843
diff changeset
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 }