Mercurial > mplayer.hg
annotate libmpcodecs/vd_theora.c @ 34757:da38eb1e2069
subassconvert: handle "\r\n" line ends
Previously the code converting text subtitles to ASS format converted newline
characters, and only those, to ASS "new line" markup. If the subtitles
contained "\r\n", the "\r" was thus left in the text. In previous libass
versions the "\r" was not visible, but in the current one it produces an empty
box. Improve the conversion to remove the "\r" in that case. Also treat a lone
"\r" as a newline.
Picked from mplayer2/3e0a2705
author | cboesch |
---|---|
date | Sat, 07 Apr 2012 11:17:09 +0000 |
parents | 1c7446e6c426 |
children | 139f2b064ef9 |
rev | line source |
---|---|
30421
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
1 /* |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
2 * This file is part of MPlayer. |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
3 * |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
4 * MPlayer is free software; you can redistribute it and/or modify |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
6 * the Free Software Foundation; either version 2 of the License, or |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
7 * (at your option) any later version. |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
8 * |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
9 * MPlayer is distributed in the hope that it will be useful, |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
12 * GNU General Public License for more details. |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
13 * |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
14 * You should have received a copy of the GNU General Public License along |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
17 */ |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
18 |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
19 #include <stdio.h> |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
20 #include <stdlib.h> |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
21 #include <stdarg.h> |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
22 #include <assert.h> |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
23 |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
24 #include "config.h" |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
25 #include "mp_msg.h" |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
26 #include "help_mp.h" |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
27 |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
28 #include "vd_internal.h" |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
29 |
30890 | 30 #include "libavutil/intreadwrite.h" |
31 | |
30504
cc27da5d7286
Mark all ad_info_t/vd_info_t structure declarations as const.
diego
parents:
30421
diff
changeset
|
32 static const vd_info_t info = { |
34496 | 33 "Theora/VP3", |
34 "theora", | |
35 "David Kuehling", | |
36 "www.theora.org", | |
37 "Theora project's VP3 codec" | |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
38 }; |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
39 |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
40 LIBVD_EXTERN(theora) |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
41 |
34415 | 42 #include <theora/theoradec.h> |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
43 |
10658
c5e7b34bfc19
Theora-CVS update patch by Martin Drab <drab@kepler.fjfi.cvut.cz>
alex
parents:
10251
diff
changeset
|
44 #define THEORA_NUM_HEADER_PACKETS 3 |
c5e7b34bfc19
Theora-CVS update patch by Martin Drab <drab@kepler.fjfi.cvut.cz>
alex
parents:
10251
diff
changeset
|
45 |
30543
ee0b9c3bbf29
Add support for decoding 4:2:2 and 4:4:4 Theora files.
reimar
parents:
30527
diff
changeset
|
46 typedef struct theora_struct_st { |
34496 | 47 th_setup_info *tsi; |
48 th_dec_ctx *tctx; | |
49 th_comment tc; | |
50 th_info ti; | |
34493
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
51 th_ycbcr_buffer ycbcrbuf; |
30543
ee0b9c3bbf29
Add support for decoding 4:2:2 and 4:4:4 Theora files.
reimar
parents:
30527
diff
changeset
|
52 } theora_struct_t; |
ee0b9c3bbf29
Add support for decoding 4:2:2 and 4:4:4 Theora files.
reimar
parents:
30527
diff
changeset
|
53 |
ee0b9c3bbf29
Add support for decoding 4:2:2 and 4:4:4 Theora files.
reimar
parents:
30527
diff
changeset
|
54 /** Convert Theora pixelformat to the corresponding IMGFMT_ */ |
34496 | 55 static uint32_t theora_pixelformat2imgfmt(th_pixel_fmt fmt) |
56 { | |
57 switch (fmt) { | |
58 case TH_PF_420: return IMGFMT_YV12; | |
59 case TH_PF_422: return IMGFMT_422P; | |
60 case TH_PF_444: return IMGFMT_444P; | |
30543
ee0b9c3bbf29
Add support for decoding 4:2:2 and 4:4:4 Theora files.
reimar
parents:
30527
diff
changeset
|
61 } |
ee0b9c3bbf29
Add support for decoding 4:2:2 and 4:4:4 Theora files.
reimar
parents:
30527
diff
changeset
|
62 return 0; |
ee0b9c3bbf29
Add support for decoding 4:2:2 and 4:4:4 Theora files.
reimar
parents:
30527
diff
changeset
|
63 } |
ee0b9c3bbf29
Add support for decoding 4:2:2 and 4:4:4 Theora files.
reimar
parents:
30527
diff
changeset
|
64 |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
65 // to set/get/query special features/parameters |
34496 | 66 static int control(sh_video_t *sh, int cmd, void *arg, ...) |
67 { | |
30543
ee0b9c3bbf29
Add support for decoding 4:2:2 and 4:4:4 Theora files.
reimar
parents:
30527
diff
changeset
|
68 theora_struct_t *context = sh->context; |
34496 | 69 switch (cmd) { |
14763 | 70 case VDCTRL_QUERY_FORMAT: |
34496 | 71 if (*(int *)arg == theora_pixelformat2imgfmt(context->ti.pixel_fmt)) |
72 return CONTROL_TRUE; | |
73 return CONTROL_FALSE; | |
14763 | 74 } |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
21499
diff
changeset
|
75 |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
76 return CONTROL_UNKNOWN; |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
77 } |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
78 |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
79 /* |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
80 * init driver |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
81 */ |
34496 | 82 static int init(sh_video_t *sh) |
83 { | |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
84 theora_struct_t *context = NULL; |
34496 | 85 uint8_t *extradata = (uint8_t *)(sh->bih + 1); |
86 int extradata_size = sh->bih->biSize - sizeof(*sh->bih); | |
87 int errorCode = 0; | |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
88 ogg_packet op; |
10658
c5e7b34bfc19
Theora-CVS update patch by Martin Drab <drab@kepler.fjfi.cvut.cz>
alex
parents:
10251
diff
changeset
|
89 int i; |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
90 |
34496 | 91 context = calloc(sizeof(theora_struct_t), 1); |
30527 | 92 sh->context = context; |
93 if (!context) | |
94 goto err_out; | |
10658
c5e7b34bfc19
Theora-CVS update patch by Martin Drab <drab@kepler.fjfi.cvut.cz>
alex
parents:
10251
diff
changeset
|
95 |
34415 | 96 th_info_init(&context->ti); |
97 th_comment_init(&context->tc); | |
98 context->tsi = NULL; | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
21499
diff
changeset
|
99 |
30527 | 100 /* Read all header packets, pass them to theora_decode_header. */ |
34496 | 101 for (i = 0; i < THEORA_NUM_HEADER_PACKETS; i++) { |
30890 | 102 if (extradata_size > 2) { |
103 op.bytes = AV_RB16(extradata); | |
104 op.packet = extradata + 2; | |
105 op.b_o_s = 1; | |
106 if (extradata_size < op.bytes + 2) { | |
31188 | 107 mp_msg(MSGT_DECVIDEO, MSGL_ERR, "Theora header too small\n"); |
30890 | 108 goto err_out; |
109 } | |
110 extradata += op.bytes + 2; | |
111 extradata_size -= op.bytes + 2; | |
112 } else { | |
34496 | 113 op.bytes = ds_get_packet(sh->ds, &op.packet); |
30891 | 114 op.b_o_s = 1; |
30890 | 115 } |
116 | |
34496 | 117 if ((errorCode = th_decode_headerin(&context->ti, &context->tc, &context->tsi, &op)) < 0) { |
31188 | 118 mp_msg(MSGT_DECVIDEO, MSGL_ERR, "Broken Theora header; errorCode=%i!\n", errorCode); |
30526
68e260df472b
Just use goto instead of reimplementing it badly with a do { } while (0) and
reimar
parents:
30525
diff
changeset
|
119 goto err_out; |
30527 | 120 } |
121 } | |
10251
95dc2037fb27
just updated vd_theora.c to decode the additional header packets,
arpi
parents:
10094
diff
changeset
|
122 |
30527 | 123 /* now init codec */ |
34496 | 124 context->tctx = th_decode_alloc(&context->ti, context->tsi); |
125 if (!context->tctx) { | |
126 mp_msg(MSGT_DECVIDEO, MSGL_ERR, "Theora decode init failed\n"); | |
30527 | 127 goto err_out; |
128 } | |
34415 | 129 /* free memory used for decoder setup information */ |
130 th_setup_free(context->tsi); | |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
131 |
34496 | 132 if (sh->aspect == 0.0 && context->ti.aspect_denominator != 0) { |
133 sh->aspect = ((double)context->ti.aspect_numerator * context->ti.frame_width) / | |
134 ((double)context->ti.aspect_denominator * context->ti.frame_height); | |
12761
236b49c548a5
Use aspect ratio from Theora context. Patch by j at v2v dot cc
mosu
parents:
10658
diff
changeset
|
135 } |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
21499
diff
changeset
|
136 |
34496 | 137 mp_msg(MSGT_DECVIDEO, MSGL_V, "INFO: Theora video init ok!\n"); |
138 mp_msg(MSGT_DECVIDEO, MSGL_INFO, "Frame %dx%d, Picture %dx%d, Offset [%d,%d]\n", context->ti.frame_width, context->ti.frame_height, context->ti.pic_width, context->ti.pic_height, context->ti.pic_x, context->ti.pic_y); | |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
139 |
34496 | 140 return mpcodecs_config_vo(sh, context->ti.frame_width, context->ti.frame_height, theora_pixelformat2imgfmt(context->ti.pixel_fmt)); |
30526
68e260df472b
Just use goto instead of reimplementing it badly with a do { } while (0) and
reimar
parents:
30525
diff
changeset
|
141 |
68e260df472b
Just use goto instead of reimplementing it badly with a do { } while (0) and
reimar
parents:
30525
diff
changeset
|
142 err_out: |
68e260df472b
Just use goto instead of reimplementing it badly with a do { } while (0) and
reimar
parents:
30525
diff
changeset
|
143 free(context); |
68e260df472b
Just use goto instead of reimplementing it badly with a do { } while (0) and
reimar
parents:
30525
diff
changeset
|
144 sh->context = NULL; |
68e260df472b
Just use goto instead of reimplementing it badly with a do { } while (0) and
reimar
parents:
30525
diff
changeset
|
145 return 0; |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
146 } |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
147 |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
21499
diff
changeset
|
148 /* |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
149 * uninit driver |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
150 */ |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
151 static void uninit(sh_video_t *sh) |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
152 { |
34496 | 153 theora_struct_t *context = sh->context; |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
154 |
34496 | 155 if (context) { |
156 th_info_clear(&context->ti); | |
157 th_comment_clear(&context->tc); | |
158 th_decode_free(context->tctx); | |
159 free(context); | |
160 } | |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
161 } |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
162 |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
163 /* |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
164 * decode frame |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
165 */ |
34496 | 166 static mp_image_t *decode(sh_video_t *sh, void *data, int len, int flags) |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
167 { |
34496 | 168 theora_struct_t *context = sh->context; |
169 int errorCode = 0; | |
170 ogg_packet op; | |
171 mp_image_t *mpi; | |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
172 |
34496 | 173 // no delayed frames |
174 if (!data || !len) | |
175 return NULL; | |
31149
8b1a6a6cda36
Avoid decoding of 0-size packets. This also fixes that the main loop believes
reimar
parents:
31134
diff
changeset
|
176 |
34496 | 177 memset(&op, 0, sizeof(op)); |
178 op.bytes = len; | |
179 op.packet = data; | |
180 op.granulepos = -1; | |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
181 |
34496 | 182 errorCode = th_decode_packetin(context->tctx, &op, NULL); |
183 if (errorCode < 0) { | |
184 mp_msg(MSGT_DECVIDEO, MSGL_ERR, "Theora decode packetin failed: %i \n", | |
185 errorCode); | |
186 return NULL; | |
187 } | |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
188 |
34493
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
189 if (errorCode != TH_DUPFRAME) { |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
190 errorCode = th_decode_ycbcr_out(context->tctx, context->ycbcrbuf); |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
191 if (errorCode != 0) { |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
192 mp_msg(MSGT_DECVIDEO, MSGL_ERR, |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
193 "Theora decode YUVout failed: %i \n", errorCode); |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
194 return NULL; |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
195 } |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
196 } |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
197 |
34493
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
198 mpi = mpcodecs_get_image(sh, MP_IMGTYPE_EXPORT, 0, |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
199 context->ycbcrbuf[0].width, |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
200 context->ycbcrbuf[0].height); |
34496 | 201 if (!mpi) |
202 return NULL; | |
14781 | 203 |
34493
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
204 mpi->planes[0] = context->ycbcrbuf[0].data; |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
205 mpi->stride[0] = context->ycbcrbuf[0].stride; |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
206 mpi->planes[1] = context->ycbcrbuf[1].data; |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
207 mpi->stride[1] = context->ycbcrbuf[1].stride; |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
208 mpi->planes[2] = context->ycbcrbuf[2].data; |
da31318562d9
vd_theora: Skip th_decode_ycbcr_out() for packets representing dropped frames.
diego
parents:
34415
diff
changeset
|
209 mpi->stride[2] = context->ycbcrbuf[2].stride; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
21499
diff
changeset
|
210 |
10094
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
211 return mpi; |
5730f6098f98
theora video decoder, based on patch by David Kuehling <dvdkhlng@gmx.de>
arpi
parents:
diff
changeset
|
212 } |