Mercurial > mplayer.hg
annotate fmt-conversion.c @ 34929:c410ef9752a0
Initialize a few more AVFrame fields to avoid FFmpeg errors.
However this really needs to be done via FFmpeg somehow to avoid
issues each time new fields are added, either by exposing
ff_init_buffer_info as public API or by calling get_buffer etc.
through wrappers that take care of the initialization.
author | reimar |
---|---|
date | Sat, 14 Jul 2012 11:37:22 +0000 |
parents | eb76937af57e |
children | 19212dea7a97 |
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}, |
34213
7d93d0f72802
fmt_conversion: surround PIX_FMT_GBR24P by #ifdefs to ensure availability
diego
parents:
34191
diff
changeset
|
89 #endif |
34191 | 90 {IMGFMT_YUY2, PIX_FMT_YUYV422}, |
91 {IMGFMT_UYVY, PIX_FMT_UYVY422}, | |
92 {IMGFMT_NV12, PIX_FMT_NV12}, | |
93 {IMGFMT_NV21, PIX_FMT_NV21}, | |
94 {IMGFMT_Y800, PIX_FMT_GRAY8}, | |
95 {IMGFMT_Y8, PIX_FMT_GRAY8}, | |
96 {IMGFMT_YVU9, PIX_FMT_YUV410P}, | |
97 {IMGFMT_IF09, PIX_FMT_YUV410P}, | |
98 {IMGFMT_YV12, PIX_FMT_YUV420P}, | |
99 {IMGFMT_I420, PIX_FMT_YUV420P}, | |
100 {IMGFMT_IYUV, PIX_FMT_YUV420P}, | |
101 {IMGFMT_411P, PIX_FMT_YUV411P}, | |
102 {IMGFMT_422P, PIX_FMT_YUV422P}, | |
103 {IMGFMT_444P, PIX_FMT_YUV444P}, | |
104 {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
|
105 |
ad61464d02a7
Add support for YUV format with alpha and fix the codecs.conf entry for vp6a
reimar
parents:
30110
diff
changeset
|
106 {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
|
107 |
30110 | 108 {IMGFMT_420P16_LE, PIX_FMT_YUV420P16LE}, |
109 {IMGFMT_420P16_BE, PIX_FMT_YUV420P16BE}, | |
33364
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
110 {IMGFMT_420P10_LE, PIX_FMT_YUV420P10LE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
111 {IMGFMT_420P10_BE, PIX_FMT_YUV420P10BE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
112 {IMGFMT_420P9_LE, PIX_FMT_YUV420P9LE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
113 {IMGFMT_420P9_BE, PIX_FMT_YUV420P9BE}, |
30110 | 114 {IMGFMT_422P16_LE, PIX_FMT_YUV422P16LE}, |
115 {IMGFMT_422P16_BE, PIX_FMT_YUV422P16BE}, | |
33364
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
116 {IMGFMT_422P10_LE, PIX_FMT_YUV422P10LE}, |
e1ee4895e500
Support displaying of 9- and 10-bit pixel formats,
cehoyos
parents:
32908
diff
changeset
|
117 {IMGFMT_422P10_BE, PIX_FMT_YUV422P10BE}, |
34436 | 118 {IMGFMT_422P9_LE, PIX_FMT_YUV422P9LE}, |
119 {IMGFMT_422P9_BE, PIX_FMT_YUV422P9BE}, | |
30110 | 120 {IMGFMT_444P16_LE, PIX_FMT_YUV444P16LE}, |
121 {IMGFMT_444P16_BE, PIX_FMT_YUV444P16BE}, | |
34028 | 122 {IMGFMT_444P10_LE, PIX_FMT_YUV444P10LE}, |
123 {IMGFMT_444P10_BE, PIX_FMT_YUV444P10BE}, | |
34191 | 124 {IMGFMT_444P9_LE, PIX_FMT_YUV444P9LE}, |
125 {IMGFMT_444P9_BE, PIX_FMT_YUV444P9BE}, | |
28631
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
126 |
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
127 // 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
|
128 // 16 - 235 (see colorspaces.txt). |
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
129 // Currently they are all treated the same way. |
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
130 {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
|
131 {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
|
132 {IMGFMT_444P, PIX_FMT_YUVJ444P}, |
30098 | 133 {IMGFMT_440P, PIX_FMT_YUVJ440P}, |
28631
70a43ec47c61
Re-add accidentally discarded comment about YUVJ format.
reimar
parents:
28526
diff
changeset
|
134 |
28526
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
135 {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
|
136 {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
|
137 {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
|
138 {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
|
139 {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
|
140 {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
|
141 {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
|
142 {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
|
143 {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
|
144 }; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
145 |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
146 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
|
147 { |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
148 int i; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
149 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
|
150 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
|
151 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
|
152 break; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
153 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
|
154 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
|
155 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
|
156 return pix_fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
157 } |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
158 |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
159 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
|
160 { |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
161 int i; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
162 int fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
163 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
|
164 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
|
165 break; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
166 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
|
167 if (!fmt) |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
168 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
|
169 return fmt; |
21efa4282730
Create a fmt-conversion.c file so fmt-conversion.h can be included by multiple files.
reimar
parents:
diff
changeset
|
170 } |
32905
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
171 |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
172 static const struct { |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
173 int fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
174 enum AVSampleFormat sample_fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
175 } samplefmt_conversion_map[] = { |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
176 {AF_FORMAT_U8, AV_SAMPLE_FMT_U8}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
177 {AF_FORMAT_S16_NE, AV_SAMPLE_FMT_S16}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
178 {AF_FORMAT_S32_NE, AV_SAMPLE_FMT_S32}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
179 {AF_FORMAT_FLOAT_NE, AV_SAMPLE_FMT_FLT}, |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
180 {0, AV_SAMPLE_FMT_NONE} |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
181 }; |
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 enum AVSampleFormat affmt2samplefmt(int fmt) |
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 char str[50]; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
186 int i; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
187 enum AVSampleFormat sample_fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
188 for (i = 0; samplefmt_conversion_map[i].fmt; i++) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
189 if (samplefmt_conversion_map[i].fmt == fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
190 break; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
191 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
|
192 if (sample_fmt == AV_SAMPLE_FMT_NONE) |
32905
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
193 mp_msg(MSGT_GLOBAL, MSGL_ERR, "Unsupported format %s\n", |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
194 af_fmt2str(fmt, str, sizeof(str))); |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
195 return sample_fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
196 } |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
197 |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
198 int samplefmt2affmt(enum AVSampleFormat 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 int i; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
201 int fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
202 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
|
203 if (samplefmt_conversion_map[i].sample_fmt == sample_fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
204 break; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
205 fmt = samplefmt_conversion_map[i].fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
206 if (!fmt) |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
207 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
|
208 return fmt; |
fd60388d370a
Add conversion functions to and from AVSampleFormat.
reimar
parents:
31082
diff
changeset
|
209 } |