From b68e4b16fb0177bc72bc3fbf672f84cc758c4fae Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 8 Oct 2010 22:18:57 +0000 Subject: added .srt file object for decoding subtitles, by Maira Sala, IOhannes m. zmoelnig, and me svn path=/trunk/externals/srt/; revision=14208 --- characterfilter.pd | 64 ++++++++++ srtfile-help.pd | 67 ++++++++++ srtfile.pd | 362 +++++++++++++++++++++++++++++++++++++++++++++++++++++ utf82codenumber.pd | 133 ++++++++++++++++++++ 4 files changed, 626 insertions(+) create mode 100644 characterfilter.pd create mode 100644 srtfile-help.pd create mode 100644 srtfile.pd create mode 100644 utf82codenumber.pd diff --git a/characterfilter.pd b/characterfilter.pd new file mode 100644 index 0000000..0341a55 --- /dev/null +++ b/characterfilter.pd @@ -0,0 +1,64 @@ +#N canvas 0 0 450 300 10; +#X obj 158 46 inlet string; +#X obj 158 273 outlet string; +#X obj 198 104 utf82codenumber; +#N canvas 0 0 450 444 serialize 0; +#X obj 124 232 list split 1; +#X obj 124 149 until; +#X obj 124 187 list append; +#X obj 150 116 t b l; +#X obj 254 232 bang; +#X obj 152 76 t b l b; +#X obj 152 362 outlet stream; +#X obj 150 47 inlet list; +#X obj 287 356 outlet start; +#X obj 40 360 outlet done; +#X connect 0 0 6 0; +#X connect 0 1 2 1; +#X connect 0 2 4 0; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 1 0; +#X connect 3 1 2 1; +#X connect 4 0 1 1; +#X connect 5 0 9 0; +#X connect 5 1 3 0; +#X connect 5 2 8 0; +#X connect 7 0 5 0; +#X restore 158 74 pd serialize; +#N canvas 0 0 450 300 deserialize 0; +#X obj 150 66 inlet stream; +#X obj 282 65 inlet reset; +#X obj 58 63 inlet done; +#X obj 135 265 outlet list; +#X obj 221 156 list prepend; +#X obj 221 179 t l l; +#X obj 140 202 list prepend; +#X obj 267 124 t b b; +#X obj 76 120 t b; +#X connect 0 0 4 0; +#X connect 1 0 7 0; +#X connect 2 0 8 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 5 1 4 1; +#X connect 6 0 3 0; +#X connect 7 0 6 1; +#X connect 7 1 4 1; +#X connect 8 0 6 0; +#X restore 158 245 pd deserialize; +#X obj 198 126 moses 32; +#X obj 198 149 select 10; +#X msg 198 170 10; +#X obj 198 196 t f; +#X connect 0 0 3 0; +#X connect 2 0 5 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 3 2 4 2; +#X connect 4 0 1 0; +#X connect 5 0 6 0; +#X connect 5 1 8 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 4 1; diff --git a/srtfile-help.pd b/srtfile-help.pd new file mode 100644 index 0000000..3203422 --- /dev/null +++ b/srtfile-help.pd @@ -0,0 +1,67 @@ +#N canvas 137 70 690 471 10; +#X obj 61 110 gemwin; +#X msg 61 87 create \, 1; +#X obj 311 326 gemhead; +#X obj 311 346 text3d; +#X obj 208 278 list prepend string; +#X obj 208 298 list trim; +#X floatatom 388 335 5 0 0 0 - - -; +#X obj 175 88 srtfile; +#X msg 281 57 bang; +#X obj 190 136 delay; +#X obj 217 190 list prepend; +#X obj 190 161 t b b; +#X msg 174 57 read test.srt; +#X obj 387 267 loadbang; +#X msg 388 306 5; +#X msg 427 306 font ae_AlBattar.ttf; +#X obj 388 287 t b b; +#X msg 202 30 read /media/disk/subs.srt; +#X obj 275 141 print bababa; +#X obj 289 88 t b b; +#X msg 348 237 string; +#X obj 190 111 t f l; +#X obj 229 136 -; +#X obj 229 159 * -1; +#X obj 243 236 f; +#X obj 281 238 delay; +#X obj 239 323 t a; +#X obj 241 358 print; +#X obj 285 209 print bababa1; +#X obj 217 214 t a b; +#X obj 209 258 characterfilter; +#X connect 1 0 0 0; +#X connect 2 0 3 0; +#X connect 4 0 5 0; +#X connect 5 0 26 0; +#X connect 6 0 3 1; +#X connect 7 0 10 1; +#X connect 7 0 18 0; +#X connect 7 1 21 0; +#X connect 8 0 19 0; +#X connect 9 0 11 0; +#X connect 10 0 28 0; +#X connect 10 0 29 0; +#X connect 11 0 7 0; +#X connect 11 1 10 0; +#X connect 12 0 7 0; +#X connect 13 0 16 0; +#X connect 14 0 6 0; +#X connect 15 0 3 0; +#X connect 16 0 14 0; +#X connect 16 1 15 0; +#X connect 17 0 7 0; +#X connect 19 0 7 0; +#X connect 19 1 20 0; +#X connect 20 0 26 0; +#X connect 21 0 9 0; +#X connect 21 1 22 0; +#X connect 22 0 23 0; +#X connect 23 0 24 1; +#X connect 24 0 25 0; +#X connect 25 0 20 0; +#X connect 26 0 27 0; +#X connect 26 0 3 0; +#X connect 29 0 30 0; +#X connect 29 1 24 0; +#X connect 30 0 4 0; diff --git a/srtfile.pd b/srtfile.pd new file mode 100644 index 0000000..8b76086 --- /dev/null +++ b/srtfile.pd @@ -0,0 +1,362 @@ +#N canvas 145 144 766 516 10; +#X obj 126 18 inlet; +#X text 173 8 open filename; +#X text 177 23 bang; +#X obj 45 430 outlet subtitle; +#X obj 518 428 outlet done; +#N canvas 231 15 793 487 linereader 0; +#X obj 136 17 inlet; +#X obj 159 452 outlet next line; +#X msg 136 111 read \$1 \, rewind; +#X obj 136 92 symbol; +#X obj 159 357 list prepend; +#X obj 246 334 t l l; +#X obj 187 145 until; +#X obj 136 266 t b b b; +#X obj 136 221 route bang; +#X obj 246 311 list prepend; +#N canvas 642 75 450 300 EOL 0; +#X obj 84 48 inlet; +#X obj 165 129 select 10 13; +#X text 157 51 CRLF = 13 10 (w32); +#X msg 205 151 1; +#X msg 245 172 0; +#X obj 165 189 f; +#X obj 165 217 select 1; +#X obj 245 152 t f b; +#X obj 60 244 outlet byte; +#X obj 165 245 outlet EOL; +#X obj 43 113 select 10 13; +#X connect 0 0 10 0; +#X connect 1 0 5 0; +#X connect 1 1 3 0; +#X connect 1 2 7 0; +#X connect 3 0 5 1; +#X connect 4 0 5 1; +#X connect 5 0 6 0; +#X connect 6 0 9 0; +#X connect 7 0 8 0; +#X connect 7 1 4 0; +#X connect 10 0 9 0; +#X connect 10 2 8 0; +#X restore 246 244 pd EOL; +#X obj 136 244 t b b; +#X obj 137 47 route open bang bong; +#X msg 219 81 bang; +#X obj 316 283 t b b; +#X obj 226 290 t b b; +#X obj 430 445 outlet; +#X obj 136 171 ./binfile; +#X connect 0 0 12 0; +#X connect 2 0 17 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 5 0 4 1; +#X connect 5 1 9 1; +#X connect 6 0 17 0; +#X connect 7 0 15 0; +#X connect 7 1 4 0; +#X connect 7 2 6 1; +#X connect 8 0 11 0; +#X connect 8 1 10 0; +#X connect 9 0 5 0; +#X connect 10 0 9 0; +#X connect 10 1 14 0; +#X connect 11 0 7 0; +#X connect 11 1 16 0; +#X connect 12 0 3 0; +#X connect 12 1 6 0; +#X connect 12 2 13 0; +#X connect 13 0 17 0; +#X connect 14 0 7 0; +#X connect 15 0 4 1; +#X connect 15 1 9 1; +#X connect 17 0 8 0; +#X connect 17 2 11 0; +#X restore 148 153 pd linereader; +#N canvas 626 26 639 408 lineid 0; +#X obj 146 47 inlet; +#X obj 124 318 outlet; +#X obj 360 56 inlet reset; +#X obj 146 168 route bang; +#X obj 226 244 i; +#X obj 261 246 + 1; +#X msg 178 210 0; +#X obj 146 190 t b b; +#X obj 124 271 list prepend; +#X obj 213 190 t b b; +#X obj 124 293 list prepend 0; +#X obj 360 94 t b; +#X obj 265 318 outlet done; +#X obj 146 97 t a a; +#X connect 0 0 13 0; +#X connect 2 0 11 0; +#X connect 3 0 7 0; +#X connect 3 1 9 0; +#X connect 4 0 5 0; +#X connect 4 0 10 1; +#X connect 5 0 4 1; +#X connect 6 0 4 1; +#X connect 7 0 12 0; +#X connect 7 1 6 0; +#X connect 8 0 10 0; +#X connect 9 0 8 0; +#X connect 9 1 4 0; +#X connect 10 0 1 0; +#X connect 11 0 6 0; +#X connect 13 0 3 0; +#X connect 13 1 8 1; +#X restore 148 189 pd lineid; +#X obj 208 125 until; +#X obj 148 248 route 0 1; +#X obj 208 210 t b b; +#X obj 378 428 outlet ID; +#N canvas 207 25 634 523 timestamp 0; +#X obj 59 44 inlet bytes; +#X obj 59 184 outlet from; +#X obj 146 183 outlet to; +#X obj 311 47 inlet reset; +#X text 141 13 HH:MM:SS \, sss --> HH:MM:SS \, sss; +#N canvas 523 25 450 526 getdelays 0; +#X obj 53 138 unpack 0 0 0 0 0 0 0 0; +#X obj 53 162 * 60; +#X obj 53 184 +; +#X obj 53 204 * 60; +#X obj 53 225 +; +#X obj 53 247 +; +#X obj 140 162 * 60; +#X obj 140 184 +; +#X obj 140 204 * 60; +#X obj 140 225 +; +#X obj 140 247 +; +#X obj 53 276 * 1000; +#X obj 140 276 * 1000; +#X obj 55 325 -; +#X obj 53 299 t f f; +#X obj 140 325 -; +#X obj 55 356 outlet; +#X obj 140 356 outlet; +#X obj 53 104 inlet timestamps; +#X obj 291 74 inlet set number; +#X obj 291 148 t f; +#X connect 0 0 1 0; +#X connect 0 1 2 1; +#X connect 0 2 4 1; +#X connect 0 3 5 1; +#X connect 0 4 6 0; +#X connect 0 5 7 1; +#X connect 0 6 9 1; +#X connect 0 7 10 1; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 11 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 12 0; +#X connect 11 0 14 0; +#X connect 12 0 15 0; +#X connect 13 0 16 0; +#X connect 14 0 13 1; +#X connect 14 0 15 1; +#X connect 14 1 13 0; +#X connect 15 0 17 0; +#X connect 18 0 0 0; +#X connect 19 0 20 0; +#X connect 20 0 13 1; +#X connect 20 0 15 1; +#X restore 59 150 pd getdelays; +#N canvas 496 75 450 413 bytes2numbers 0; +#X obj 95 23 inlet bytes; +#X obj 95 278 outlet; +#X obj 95 60 string2any; +#X obj 95 82 list; +#X msg 95 107 list \$1 \$3 \$5 \$7; +#X obj 94 130 unpack s 0 s 0; +#N canvas 0 0 450 475 fractional 0; +#X obj 99 42 inlet; +#X obj 99 411 outlet; +#X text 151 43 123; +#X text 155 416 0.123; +#X obj 145 339 *; +#X obj 168 171 log; +#X obj 202 172 log 10; +#X obj 168 193 /; +#X msg 206 152 10; +#X obj 168 214 i; +#X obj 168 152 abs; +#X obj 168 240 + 1; +#X obj 168 313 pow; +#X msg 168 285 10 \$1; +#X obj 168 263 * -1; +#X obj 145 126 t f f b; +#X obj 99 84 route 0; +#X msg 99 118 0; +#X connect 0 0 16 0; +#X connect 4 0 1 0; +#X connect 5 0 7 0; +#X connect 6 0 7 1; +#X connect 7 0 9 0; +#X connect 8 0 6 0; +#X connect 9 0 11 0; +#X connect 10 0 5 0; +#X connect 11 0 14 0; +#X connect 12 0 4 1; +#X connect 13 0 12 0; +#X connect 14 0 13 0; +#X connect 15 0 4 0; +#X connect 15 1 10 0; +#X connect 15 2 8 0; +#X connect 16 0 17 0; +#X connect 16 1 15 0; +#X connect 17 0 1 0; +#X restore 106 166 pd fractional; +#X obj 95 211 pack 0 0 0 0; +#N canvas 0 0 450 475 fractional 0; +#X obj 99 42 inlet; +#X obj 99 411 outlet; +#X text 151 43 123; +#X text 155 416 0.123; +#X obj 99 299 *; +#X obj 122 131 log; +#X obj 99 85 t f f b; +#X obj 156 132 log 10; +#X obj 122 153 /; +#X msg 160 112 10; +#X obj 122 174 i; +#X obj 122 112 abs; +#X obj 122 200 + 1; +#X obj 122 273 pow; +#X msg 122 245 10 \$1; +#X obj 122 223 * -1; +#X connect 0 0 6 0; +#X connect 4 0 1 0; +#X connect 5 0 8 0; +#X connect 6 0 4 0; +#X connect 6 1 11 0; +#X connect 6 2 9 0; +#X connect 7 0 8 1; +#X connect 8 0 10 0; +#X connect 9 0 7 0; +#X connect 10 0 12 0; +#X connect 11 0 5 0; +#X connect 12 0 15 0; +#X connect 13 0 4 1; +#X connect 14 0 13 0; +#X connect 15 0 14 0; +#X restore 216 166 pd fractional; +#X obj 205 211 pack 0 0 0 0; +#X obj 95 249 list append; +#X obj 95 190 symbol2list :; +#X obj 205 190 symbol2list :; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 11 0; +#X connect 5 1 6 0; +#X connect 5 2 12 0; +#X connect 5 3 8 0; +#X connect 6 0 7 3; +#X connect 7 0 10 0; +#X connect 8 0 9 3; +#X connect 9 0 10 1; +#X connect 10 0 1 0; +#X connect 11 0 7 0; +#X connect 12 0 9 0; +#X restore 59 110 pd bytes2numbers; +#X connect 0 0 6 0; +#X connect 3 0 5 1; +#X connect 5 0 1 0; +#X connect 5 1 2 0; +#X connect 6 0 5 0; +#X restore 178 381 pd timestamp; +#X obj 208 308 list split 1; +#N canvas 0 0 450 506 lines2multiline 0; +#X obj 75 47 inlet singleline; +#X obj 75 427 outlet multiline; +#X obj 142 199 list append 10; +#X text 254 197 <-- Gem's linebreak; +#X obj 75 127 route bang; +#X obj 142 259 list prepend; +#X obj 142 280 t l l; +#X obj 75 313 list prepend; +#X obj 75 269 t b; +#X obj 278 51 inlet delimiter; +#X obj 75 98 t a a; +#X obj 75 399 route bang; +#X obj 75 345 t a b b a; +#X connect 0 0 10 0; +#X connect 2 0 5 0; +#X connect 4 0 8 0; +#X connect 4 1 2 0; +#X connect 5 0 6 0; +#X connect 6 0 7 1; +#X connect 6 1 5 1; +#X connect 7 0 12 0; +#X connect 8 0 7 0; +#X connect 9 0 2 1; +#X connect 10 0 4 0; +#X connect 11 1 1 0; +#X connect 12 0 11 0; +#X connect 12 1 7 1; +#X connect 12 2 5 1; +#X restore 248 334 pd lines2multiline; +#X obj 178 429 outlet from to; +#X obj 178 404 pack 0 0; +#X msg 259 360 0; +#X obj 126 45 route read bang; +#X obj 126 67 symbol; +#X msg 126 108 open \$1; +#N canvas 565 53 450 300 checkopen 0; +#X obj 58 29 inlet bang; +#X obj 171 207 outlet bang; +#X obj 58 83 symbol; +#X obj 107 83 symbol; +#X obj 58 102 select select; +#X obj 58 142 print STR-error; +#X obj 58 61 t b b; +#X obj 171 143 t b; +#X obj 285 32 inlet filename; +#X msg 58 122 line requested without prior read!; +#X connect 0 0 6 0; +#X connect 2 0 4 0; +#X connect 3 0 4 1; +#X connect 4 0 9 0; +#X connect 4 1 7 0; +#X connect 6 0 2 0; +#X connect 6 1 3 0; +#X connect 7 0 1 0; +#X connect 8 0 2 1; +#X connect 9 0 5 0; +#X restore 208 99 pd checkopen; +#X obj 126 88 t s b s; +#X connect 0 0 17 0; +#X connect 5 0 6 0; +#X connect 5 1 4 0; +#X connect 6 0 8 0; +#X connect 6 1 9 0; +#X connect 7 0 5 0; +#X connect 8 0 10 0; +#X connect 8 1 11 0; +#X connect 8 2 12 0; +#X connect 9 0 13 0; +#X connect 9 1 7 1; +#X connect 11 0 15 0; +#X connect 11 1 15 1; +#X connect 12 1 13 0; +#X connect 13 0 3 0; +#X connect 15 0 14 0; +#X connect 16 0 11 1; +#X connect 17 0 18 0; +#X connect 17 1 20 0; +#X connect 18 0 21 0; +#X connect 19 0 5 0; +#X connect 20 0 7 0; +#X connect 21 0 19 0; +#X connect 21 1 6 1; +#X connect 21 1 16 0; +#X connect 21 2 20 1; diff --git a/utf82codenumber.pd b/utf82codenumber.pd new file mode 100644 index 0000000..5cd80b5 --- /dev/null +++ b/utf82codenumber.pd @@ -0,0 +1,133 @@ +#N canvas 375 22 649 526 10; +#X obj 181 32 inlet byte; +#X obj 181 476 outlet byte; +#X text 259 108 aux; +#X text 323 111 2byte; +#X text 386 113 3byte; +#X text 446 113 4byte; +#X text 180 112 1byte; +#X obj 181 129 & 127; +#X obj 321 129 & 31; +#X obj 251 129 & 63; +#X obj 390 129 & 15; +#X obj 450 129 & 7; +#X obj 251 150 t f b; +#X msg 207 175 1; +#X obj 181 268 ==; +#X text 220 284 expectedbytes; +#X obj 181 226 i; +#X obj 226 266 t f b; +#X msg 268 266 0; +#X obj 204 371 t l l; +#X obj 181 310 select 1; +#X obj 181 393 list prepend; +#X msg 353 174 2; +#X obj 181 198 t b f; +#X obj 181 151 t f b; +#X obj 321 150 t f b; +#X obj 212 226 + 1; +#X obj 390 153 t f b; +#X msg 422 177 3; +#X obj 450 151 t f b; +#X msg 482 175 4; +#X obj 181 416 t l l; +#N canvas 327 0 461 427 shifter 0; +#X obj 134 59 inlet; +#X obj 134 387 outlet; +#X obj 166 220 list split 1; +#X obj 166 167 until; +#X obj 166 195 list append; +#X obj 266 220 bang; +#X obj 166 246 +; +#X obj 166 299 t f f; +#X obj 166 144 t b l b; +#X msg 215 265 0; +#X obj 166 270 << 6; +#X obj 166 321 >> 6; +#X obj 134 359 f; +#X obj 134 98 t b l; +#X connect 0 0 13 0; +#X connect 2 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 5 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; +#X connect 5 0 3 1; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 7 1 6 1; +#X connect 8 0 3 0; +#X connect 8 1 4 1; +#X connect 8 2 9 0; +#X connect 9 0 6 1; +#X connect 10 0 7 0; +#X connect 11 0 12 1; +#X connect 12 0 1 0; +#X connect 13 0 12 0; +#X connect 13 1 8 0; +#X restore 181 443 pd shifter; +#X obj 203 345 list prepend; +#X obj 243 205 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 356 199 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 419 198 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 486 198 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 181 87 moses 128; +#X obj 251 87 moses 192; +#X obj 321 87 moses 224; +#X obj 390 87 moses 240; +#X obj 181 61 t f; +#X text 272 476 unicode code number; +#X text 265 30 UTF-8 multibyte; +#X connect 0 0 42 0; +#X connect 7 0 24 0; +#X connect 8 0 25 0; +#X connect 9 0 12 0; +#X connect 10 0 27 0; +#X connect 11 0 29 0; +#X connect 12 0 23 0; +#X connect 13 0 17 0; +#X connect 13 0 34 0; +#X connect 14 0 20 0; +#X connect 16 0 14 0; +#X connect 16 0 26 0; +#X connect 17 0 14 1; +#X connect 17 1 18 0; +#X connect 17 1 33 1; +#X connect 18 0 26 0; +#X connect 19 0 21 1; +#X connect 19 1 33 1; +#X connect 20 0 21 0; +#X connect 21 0 31 0; +#X connect 22 0 17 0; +#X connect 22 0 35 0; +#X connect 23 0 16 0; +#X connect 23 1 33 0; +#X connect 24 0 23 0; +#X connect 24 1 13 0; +#X connect 25 0 23 0; +#X connect 25 1 22 0; +#X connect 26 0 16 1; +#X connect 27 0 23 0; +#X connect 27 1 28 0; +#X connect 28 0 17 0; +#X connect 28 0 36 0; +#X connect 29 0 23 0; +#X connect 29 1 30 0; +#X connect 30 0 17 0; +#X connect 30 0 37 0; +#X connect 31 0 32 0; +#X connect 32 0 1 0; +#X connect 33 0 19 0; +#X connect 38 0 7 0; +#X connect 38 1 39 0; +#X connect 39 0 9 0; +#X connect 39 1 40 0; +#X connect 40 0 8 0; +#X connect 40 1 41 0; +#X connect 41 0 10 0; +#X connect 41 1 11 0; +#X connect 42 0 38 0; -- cgit v1.2.1