[FFmpeg-devel] [PATCH] lavf/srtdec: rewrite parsing logic

Clément Bœsch u at pkh.me
Thu Dec 24 13:11:49 CET 2015


Fixes Ticket #5032
---
 libavformat/srtdec.c                     |  165 ++-
 tests/fate/subtitles.mak                 |    6 +
 tests/ref/fate/sub-srt-madness-timeshift |   36 +
 tests/ref/fate/sub-srt-rrn-remux         | 2113 ++++++++++++++++++++++++++++++
 4 files changed, 2270 insertions(+), 50 deletions(-)
 create mode 100644 tests/ref/fate/sub-srt-madness-timeshift
 create mode 100644 tests/ref/fate/sub-srt-rrn-remux

diff --git a/libavformat/srtdec.c b/libavformat/srtdec.c
index f08ed1d..2dc06e5 100644
--- a/libavformat/srtdec.c
+++ b/libavformat/srtdec.c
@@ -58,28 +58,65 @@ static int srt_probe(AVProbeData *p)
     return 0;
 }
 
-static int64_t get_pts(const char **buf, int *duration,
-                       int32_t *x1, int32_t *y1, int32_t *x2, int32_t *y2)
+struct event_info {
+    int32_t x1, x2, y1, y2;
+    int duration;
+    int64_t pts;
+    int64_t pos;
+};
+
+static int get_event_info(const char *line, struct event_info *ei)
 {
-    int i;
-
-    for (i=0; i<2; i++) {
-        int hh1, mm1, ss1, ms1;
-        int hh2, mm2, ss2, ms2;
-        if (sscanf(*buf, "%d:%2d:%2d%*1[,.]%3d --> %d:%2d:%2d%*1[,.]%3d"
-                   "%*[ ]X1:%u X2:%u Y1:%u Y2:%u",
-                   &hh1, &mm1, &ss1, &ms1,
-                   &hh2, &mm2, &ss2, &ms2,
-                   x1, x2, y1, y2) >= 8) {
-            int64_t start = (hh1*3600LL + mm1*60LL + ss1) * 1000LL + ms1;
-            int64_t end   = (hh2*3600LL + mm2*60LL + ss2) * 1000LL + ms2;
-            *duration = end - start;
-            *buf += ff_subtitles_next_line(*buf);
-            return start;
+    int hh1, mm1, ss1, ms1;
+    int hh2, mm2, ss2, ms2;
+
+    ei->x1 = ei->x2 = ei->y1 = ei->y2 = ei->duration = -1;
+    ei->pts = AV_NOPTS_VALUE;
+    ei->pos = -1;
+    if (sscanf(line, "%d:%2d:%2d%*1[,.]%3d --> %d:%2d:%2d%*1[,.]%3d"
+               "%*[ ]X1:%u X2:%u Y1:%u Y2:%u",
+               &hh1, &mm1, &ss1, &ms1,
+               &hh2, &mm2, &ss2, &ms2,
+               &ei->x1, &ei->x2, &ei->y1, &ei->y2) >= 8) {
+        const int64_t start = (hh1*3600LL + mm1*60LL + ss1) * 1000LL + ms1;
+        const int64_t end   = (hh2*3600LL + mm2*60LL + ss2) * 1000LL + ms2;
+        ei->duration = end - start;
+        ei->pts = start;
+        return 0;
+    }
+    return -1;
+}
+
+static int add_event(FFDemuxSubtitlesQueue *q, AVBPrint *buf, char *line_cache,
+                     struct event_info *ei, int append_cache)
+{
+    if (append_cache && line_cache[0])
+        av_bprintf(buf, "%s\n", line_cache);
+    line_cache[0] = 0;
+
+    while (buf->len > 0 && strchr("\r\n", buf->str[buf->len - 1]))
+        buf->str[--buf->len] = 0;
+
+    if (buf->len) {
+        AVPacket *sub = ff_subtitles_queue_insert(q, buf->str, buf->len, 0);
+        if (!sub)
+            return AVERROR(ENOMEM);
+        av_bprint_clear(buf);
+        sub->pos = ei->pos;
+        sub->pts = ei->pts;
+        sub->duration = ei->duration;
+        if (ei->x1 != -1) {
+            uint8_t *p = av_packet_new_side_data(sub, AV_PKT_DATA_SUBTITLE_POSITION, 16);
+            if (p) {
+                AV_WL32(p,      ei->x1);
+                AV_WL32(p +  4, ei->y1);
+                AV_WL32(p +  8, ei->x2);
+                AV_WL32(p + 12, ei->y2);
+            }
         }
-        *buf += ff_subtitles_next_line(*buf);
     }
-    return AV_NOPTS_VALUE;
+
+    return 0;
 }
 
 static int srt_read_header(AVFormatContext *s)
@@ -88,6 +125,9 @@ static int srt_read_header(AVFormatContext *s)
     AVBPrint buf;
     AVStream *st = avformat_new_stream(s, NULL);
     int res = 0;
+    char line[4096], line_cache[4096];
+    int has_event_info = 0;
+    struct event_info ei;
     FFTextReader tr;
     ff_text_init_avio(s, &tr, s->pb);
 
@@ -99,43 +139,68 @@ static int srt_read_header(AVFormatContext *s)
 
     av_bprint_init(&buf, 0, AV_BPRINT_SIZE_UNLIMITED);
 
+    line_cache[0] = 0;
+
     while (!ff_text_eof(&tr)) {
-        ff_subtitles_read_text_chunk(&tr, &buf);
-
-        if (buf.len) {
-            int64_t pos = ff_text_pos(&tr);
-            int64_t pts;
-            int duration;
-            const char *ptr = buf.str;
-            int32_t x1 = -1, y1 = -1, x2 = -1, y2 = -1;
-            AVPacket *sub;
-
-            pts = get_pts(&ptr, &duration, &x1, &y1, &x2, &y2);
-            if (pts != AV_NOPTS_VALUE) {
-                int len = buf.len - (ptr - buf.str);
-                if (len <= 0)
-                    continue;
-                sub = ff_subtitles_queue_insert(&srt->q, ptr, len, 0);
-                if (!sub) {
-                    res = AVERROR(ENOMEM);
+        struct event_info tmp_ei;
+        const int64_t pos = ff_text_pos(&tr);
+        ptrdiff_t len = ff_subtitles_read_line(&tr, line, sizeof(line));
+
+        if (len < 0)
+            break;
+
+        if (!len || !line[0])
+            continue;
+
+        if (get_event_info(line, &tmp_ei) < 0) {
+            char *pline;
+
+            if (!has_event_info)
+                continue;
+
+            if (line_cache[0]) {
+                /* We got some cache and a new line so we assume the cached
+                 * line was actually part of the payload */
+                av_bprintf(&buf, "%s\n", line_cache);
+                line_cache[0] = 0;
+            }
+
+            /* If the line doesn't start with a number, we assume it's part of
+             * the payload, otherwise is likely an event number preceding the
+             * timing information... but we can't be sure of this yet, so we
+             * cache it */
+            if (strtol(line, &pline, 10) < 0 || line == pline) {
+                av_bprintf(&buf, "%s\n", line);
+            } else {
+                strcpy(line_cache, line);
+                continue;
+            }
+
+        } else {
+            if (has_event_info) {
+                /* We have the information of previous event, append it to the
+                 * queue. We insert the cached line if and only if the payload
+                 * is empty */
+                res = add_event(&srt->q, &buf, line_cache, &ei, !buf.len);
+                if (res < 0)
                     goto end;
-                }
-                sub->pos = pos;
-                sub->pts = pts;
-                sub->duration = duration;
-                if (x1 != -1) {
-                    uint8_t *p = av_packet_new_side_data(sub, AV_PKT_DATA_SUBTITLE_POSITION, 16);
-                    if (p) {
-                        AV_WL32(p,      x1);
-                        AV_WL32(p +  4, y1);
-                        AV_WL32(p +  8, x2);
-                        AV_WL32(p + 12, y2);
-                    }
-                }
+            } else {
+                has_event_info = 1;
             }
+            tmp_ei.pos = pos;
+            ei = tmp_ei;
         }
     }
 
+    /* Append last event. Here we force the cache to be flushed, because a
+     * trailing number might be geniune (for example a copyright date) and not
+     * the event index of an inexistant event */
+    if (has_event_info) {
+        res = add_event(&srt->q, &buf, line_cache, &ei, 1);
+        if (res < 0)
+            goto end;
+    }
+
     ff_subtitles_queue_finalize(s, &srt->q);
 
 end:
diff --git a/tests/fate/subtitles.mak b/tests/fate/subtitles.mak
index 267c09e..6337ffd 100644
--- a/tests/fate/subtitles.mak
+++ b/tests/fate/subtitles.mak
@@ -52,6 +52,12 @@ fate-sub-sami2: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/SAMI_multilang_twea
 FATE_SUBTITLES_ASS-$(call DEMDEC, SRT, SUBRIP) += fate-sub-srt
 fate-sub-srt: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt
 
+FATE_SUBTITLES-$(call ALLYES, SRT_DEMUXER SUBRIP_DECODER SRT_MUXER) += fate-sub-srt-rrn-remux
+fate-sub-srt-rrn-remux: CMD = fmtstdout srt -i $(TARGET_SAMPLES)/sub/ticket5032-rrn.srt -c:s copy
+
+FATE_SUBTITLES-$(call ALLYES, SRT_DEMUXER SUBRIP_DECODER SRT_MUXER) += fate-sub-srt-madness-timeshift
+fate-sub-srt-madness-timeshift: CMD = fmtstdout srt -itsoffset 3.14 -i $(TARGET_SAMPLES)/sub/madness.srt -c:s copy
+
 FATE_SUBTITLES_ASS-$(call DEMDEC, STL, STL) += fate-sub-stl
 fate-sub-stl: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/STL_capability_tester.stl
 
diff --git a/tests/ref/fate/sub-srt-madness-timeshift b/tests/ref/fate/sub-srt-madness-timeshift
new file mode 100644
index 0000000..13a3085
--- /dev/null
+++ b/tests/ref/fate/sub-srt-madness-timeshift
@@ -0,0 +1,36 @@
+1
+00:00:04,251 --> 00:00:05,362
+okay, let's make things easy
+
+2
+00:00:05,160 --> 00:00:05,263
+31 i'm a number but the only payload so please keep me :)
+
+3
+00:00:06,473 --> 00:00:07,584
+hello
+5
+don't forget me.
+
+4
+00:00:08,695 --> 00:00:09,806
+no.
+let's add some fun
+
+5
+00:00:10,917 --> 00:00:12,028
+let's do it in reverse bc wtf not
+45 yes this is a number but i'm actually part of the sub
+
+6
+00:00:12,028 --> 00:00:13,139
+1
+0
+next is negative, not a chapnum ;)
+-1
+
+7
+00:00:13,241 --> 00:00:13,263
+credits
+2015
+
diff --git a/tests/ref/fate/sub-srt-rrn-remux b/tests/ref/fate/sub-srt-rrn-remux
new file mode 100644
index 0000000..1cb66d2
--- /dev/null
+++ b/tests/ref/fate/sub-srt-rrn-remux
@@ -0,0 +1,2113 @@
+1
+00:00:01,000 --> 00:00:04,074
+Subtitles downloaded from Podnapisi.NET
+
+2
+00:00:17,317 --> 00:00:19,551
+Wooldoor: who's it gonna
+be?! Who's it gonna be?!
+
+3
+00:00:19,552 --> 00:00:21,053
+Wheeeeee!
+
+4
+00:00:21,054 --> 00:00:23,122
+Wooldoor:
+the producers decided
+to surprise one of us
+
+5
+00:00:23,123 --> 00:00:24,990
+With a visit from
+a family member.
+
+6
+00:00:24,991 --> 00:00:26,191
+I hope it's someone
+from my family
+
+7
+00:00:26,192 --> 00:00:27,493
+Like flagfred cheesewheel,
+
+8
+00:00:27,494 --> 00:00:30,262
+Lintsue brickshade,
+or prom-queen dumpsterbaby.
+
+9
+00:00:30,263 --> 00:00:32,197
+[speaking japanese]
+
+10
+00:00:38,905 --> 00:00:41,407
+Look, everyone!
+Someone's coming!
+
+11
+00:00:41,408 --> 00:00:43,575
+Clara: the second I saw
+the horse and carriage,
+
+12
+00:00:43,576 --> 00:00:47,079
+I just knew it had
+to be someone from
+my kingdom.
+
+13
+00:00:47,080 --> 00:00:50,683
+But when I saw it was
+the short carriage,
+my heart sank.
+
+14
+00:00:50,684 --> 00:00:53,786
+Why?! Why did she
+have to come?!
+
+15
+00:00:55,221 --> 00:00:56,588
+Oh, fuck me.
+
+16
+00:00:56,589 --> 00:00:58,223
+[garbled speech]
+
+17
+00:00:58,224 --> 00:01:03,362
+Um, everyone, this is
+my special cousin bleh.
+
+18
+00:01:03,363 --> 00:01:04,530
+Foxxy: no one knew clara
+
+19
+00:01:04,531 --> 00:01:07,132
+Had a mentally-challenged
+cousin, but it was cool.
+
+20
+00:01:07,133 --> 00:01:10,269
+The foxxy five used to perform
+for special needs kids,
+
+21
+00:01:10,270 --> 00:01:14,306
+And those people got
+hearts as big as they
+oversized foreheads.
+
+22
+00:01:14,307 --> 00:01:18,610
+<i>"I am sam is a well-written
+and exceptionally well-acted
+tearjerker,"</i>
+
+23
+00:01:18,611 --> 00:01:21,213
+<i>Raves adam nayman
+of eye weekly.</i>
+
+24
+00:01:23,149 --> 00:01:25,250
+What the shoebazzle
+was that?
+
+25
+00:01:25,251 --> 00:01:29,755
+<i>She, um, only
+quotes reviews from
+the movie I am sam.</i>
+
+26
+00:01:29,756 --> 00:01:31,690
+Huh?
+Hmm.
+
+27
+00:01:31,691 --> 00:01:33,525
+Well, this has
+been fun. Bye!
+
+28
+00:01:35,195 --> 00:01:38,397
+Well, i've never seen
+someone that slow
+go that fast.
+
+29
+00:01:38,398 --> 00:01:40,132
+Oh, yeah! Give it up!
+
+30
+00:01:40,133 --> 00:01:41,066
+Yeah!
+
+31
+00:01:45,705 --> 00:01:47,639
+[speaking japanese]
+
+32
+00:01:55,215 --> 00:01:59,952
+Oh, poor ling-ling.
+He's so disappointed
+his father didn't show.
+
+33
+00:01:59,953 --> 00:02:01,387
+Oh!
+
+34
+00:02:01,388 --> 00:02:04,590
+Oh, sweetie,
+i'm so sorry your
+father's not coming.
+
+35
+00:02:04,591 --> 00:02:08,127
+We still love ya!
+Don't we, toot?!
+
+36
+00:02:08,128 --> 00:02:10,963
+Fine!
+
+37
+00:02:10,964 --> 00:02:12,197
+[kiss]
+
+38
+00:02:12,198 --> 00:02:16,035
+Ling-ling,
+you taste so weird.
+
+39
+00:02:17,470 --> 00:02:19,204
+[giggling]
+
+40
+00:02:19,205 --> 00:02:21,140
+[giggling]
+
+41
+00:02:22,208 --> 00:02:25,177
+Let's go, bleh.
+The coast is clear.
+
+42
+00:02:25,178 --> 00:02:27,746
+But after this,
+no more potty breaks.
+
+43
+00:02:27,747 --> 00:02:30,082
+<i>"I am sam plays like
+a made-for-tv weep--"</i>
+
+44
+00:02:30,083 --> 00:02:31,316
+Shh!
+
+45
+00:02:31,317 --> 00:02:33,786
+I know it seemed
+like I was ashamed
+of my cousin,
+
+46
+00:02:33,787 --> 00:02:35,921
+But nothing could be
+further from the truth.
+
+47
+00:02:35,922 --> 00:02:39,591
+Aah!
+Foxxy:
+hey, clara!
+
+48
+00:02:39,592 --> 00:02:41,060
+What's up, girlfriend?
+
+49
+00:02:41,061 --> 00:02:43,062
+You know,
+none of us have
+really had a chance
+
+50
+00:02:43,063 --> 00:02:44,763
+To hang out
+with bleh yet.
+
+51
+00:02:44,764 --> 00:02:47,232
+Bleh? What's a bleh?
+
+52
+00:02:47,233 --> 00:02:49,835
+Is that one of your
+jive words like
+"emancipation"?
+
+53
+00:02:49,836 --> 00:02:51,603
+No, bleh your cousin.
+
+54
+00:02:51,604 --> 00:02:55,808
+Uh, clara?
+Why is the lamp drooling?
+
+55
+00:02:55,809 --> 00:02:59,044
+I guess to remind us
+to conserve electricity.
+
+56
+00:02:59,045 --> 00:03:03,248
+Clara, there is
+no reason to be
+embarrassed by your cousin.
+
+57
+00:03:03,249 --> 00:03:06,085
+Embarrassed?
+I'm not embarrassed.
+
+58
+00:03:06,086 --> 00:03:09,321
+Stop pretending
+bleh is a lamp.
+
+59
+00:03:09,322 --> 00:03:11,824
+She is not a lamp,
+clara.
+
+60
+00:03:11,825 --> 00:03:15,160
+She is a real person
+with real feelings.
+
+61
+00:03:15,161 --> 00:03:17,096
+Foxxy was probably right.
+
+62
+00:03:17,097 --> 00:03:18,864
+Damn that ms. Know-it-all!
+
+63
+00:03:18,865 --> 00:03:21,400
+I should have killed her
+when I had the chance.
+
+64
+00:03:21,401 --> 00:03:22,835
+Give me your hand!
+
+65
+00:03:22,836 --> 00:03:24,603
+First, give me the ring!
+
+66
+00:03:24,604 --> 00:03:27,206
+[kisses]
+
+67
+00:03:27,207 --> 00:03:29,208
+Xandir:
+it just didn't make sense.
+
+68
+00:03:29,209 --> 00:03:30,709
+When we licked ling-ling
+last time,
+
+69
+00:03:30,710 --> 00:03:31,877
+We got all [bleep]ed up.
+
+70
+00:03:31,878 --> 00:03:33,479
+But this time, nothing happened.
+
+71
+00:03:33,480 --> 00:03:35,047
+Well, we got a little aroused,
+
+72
+00:03:35,048 --> 00:03:36,982
+But not [bleep]ed up.
+
+73
+00:03:36,983 --> 00:03:38,517
+Uhh! What's the deal-e-o?
+
+74
+00:03:38,518 --> 00:03:40,085
+I don't feel
+anything. You?
+
+75
+00:03:40,086 --> 00:03:41,086
+Nothing.
+
+76
+00:03:41,087 --> 00:03:42,755
+[kisses]
+
+77
+00:03:42,756 --> 00:03:45,858
+Hmm. Maybe we have to
+eat ling-ling.
+
+78
+00:03:45,859 --> 00:03:47,326
+Why is it when
+something doesn't work,
+
+79
+00:03:47,327 --> 00:03:49,228
+Your first reaction
+is to eat it?
+
+80
+00:03:49,229 --> 00:03:52,631
+What?! What
+are you doing?
+
+81
+00:03:52,632 --> 00:03:55,067
+I couldn't find
+the remote.
+
+82
+00:03:55,068 --> 00:03:56,735
+You know,
+there is one person
+
+83
+00:03:56,736 --> 00:03:58,203
+Who can figure this out.
+
+84
+00:03:58,204 --> 00:03:59,705
+The professor!
+The professor!
+
+85
+00:03:59,706 --> 00:04:01,674
+[hums]
+
+86
+00:04:01,675 --> 00:04:02,675
+Ooh!
+
+87
+00:04:02,676 --> 00:04:03,876
+Aha!
+[whistle blows]
+
+88
+00:04:03,877 --> 00:04:05,577
+Got it.
+Hit the lights.
+
+89
+00:04:09,416 --> 00:04:11,717
+Here you see
+the african camel toad.
+
+90
+00:04:11,718 --> 00:04:13,118
+It secretes
+a hallucinogen
+
+91
+00:04:13,119 --> 00:04:14,153
+Whenever it's scared.
+
+92
+00:04:14,154 --> 00:04:15,320
+Ahh!
+
+93
+00:04:15,321 --> 00:04:17,423
+Yeah, that's--oh,
+I didn't know that.
+
+94
+00:04:17,424 --> 00:04:21,360
+When "cool" kids feel
+like catching a "buzz,"
+
+95
+00:04:21,361 --> 00:04:25,064
+They scare the amphibian
+and then lick its skin.
+
+96
+00:04:25,065 --> 00:04:27,166
+All the cool kids,
+you say?
+
+97
+00:04:27,167 --> 00:04:31,036
+Now take ling-ling,
+the asian trading card
+battle monster.
+
+98
+00:04:31,037 --> 00:04:32,638
+It creates a similar
+hallucinogen
+
+99
+00:04:32,639 --> 00:04:34,807
+Whenever it's
+disappointed.
+
+100
+00:04:34,808 --> 00:04:37,443
+Ahh!
+Oh, I want to
+be cool!
+
+101
+00:04:37,444 --> 00:04:40,946
+So, ling-ling
+was experiencing
+disappointment
+
+102
+00:04:40,947 --> 00:04:42,614
+Due to its
+father's absence,
+
+103
+00:04:42,615 --> 00:04:44,183
+Then, upon kissing
+ling-ling,
+
+104
+00:04:44,184 --> 00:04:47,186
+You became...[wacky
+noises] technically
+speaking.
+
+105
+00:04:47,187 --> 00:04:53,692
+So, only when ling-ling
+is disappointed, eh? Hmm.
+
+106
+00:04:55,662 --> 00:04:59,932
+[screaming]
+[alarm]
+[siren]
+
+107
+00:04:59,933 --> 00:05:02,067
+[bagpipes playing]
+
+108
+00:05:02,068 --> 00:05:03,635
+[harps playing]
+
+109
+00:05:03,636 --> 00:05:05,938
+[crickets chirping]
+
+110
+00:05:05,939 --> 00:05:09,942
+Oh! Don't look,
+but corky at 3:00.
+
+111
+00:05:09,943 --> 00:05:13,045
+Foxxy: it looked like I got
+through to the princess.
+
+112
+00:05:13,046 --> 00:05:15,881
+Clara would see that
+there ain't no reason
+to be ashamed of bleh.
+
+113
+00:05:15,882 --> 00:05:17,316
+We all adults.
+
+114
+00:05:17,317 --> 00:05:19,985
+Dude, let's egg
+the trainable.
+
+115
+00:05:19,986 --> 00:05:21,854
+Mind if we
+join you guys?
+
+116
+00:05:21,855 --> 00:05:24,189
+No, no, no.
+Of course not.
+
+117
+00:05:24,190 --> 00:05:25,891
+Don't be stupid.
+
+118
+00:05:25,892 --> 00:05:28,027
+[both snicker]
+
+119
+00:05:43,176 --> 00:05:44,543
+[eggshells crack]
+
+120
+00:05:48,915 --> 00:05:52,217
+Man, clara's cousin
+is so hot!
+
+121
+00:05:52,218 --> 00:05:55,454
+<i>Damn! She's like
+retarded hot!</i>
+
+122
+00:06:01,127 --> 00:06:03,595
+[whimpers] sam! Aah!
+
+123
+00:06:05,432 --> 00:06:06,365
+Clara: i'm really glad
+I brought bleh
+
+124
+00:06:06,366 --> 00:06:08,367
+Down to hang out
+with everyone.
+
+125
+00:06:08,368 --> 00:06:10,803
+They treated her
+like she was one
+of the gang.
+
+126
+00:06:10,804 --> 00:06:12,771
+I hadn't seen bleh
+have this much fun
+
+127
+00:06:12,772 --> 00:06:15,207
+<i>Since they cancelled
+the pretty, shiny
+object show.</i>
+
+128
+00:06:15,208 --> 00:06:18,210
+You sure you don't
+want to stay and
+play a few rounds?
+
+129
+00:06:18,211 --> 00:06:21,280
+Nah, it's getting late,
+and we don't want to
+intrude on guy time.
+
+130
+00:06:21,281 --> 00:06:22,648
+'night!
+
+131
+00:06:22,649 --> 00:06:25,751
+<i>"I am sam works magic
+'cause of penn,"</i>
+
+132
+00:06:25,752 --> 00:06:28,153
+<i>Raves lou lumenick
+of the new york post.</i>
+
+133
+00:06:28,154 --> 00:06:30,022
+I go first.
+Whee!
+
+134
+00:06:30,023 --> 00:06:32,291
+Holy shit!
+
+135
+00:06:32,292 --> 00:06:34,293
+She is so hot!
+
+136
+00:06:34,294 --> 00:06:36,161
+Oh, spanky.
+
+137
+00:06:36,162 --> 00:06:38,564
+What? Oh. Ok.
+
+138
+00:06:38,565 --> 00:06:39,498
+[kiss]
+
+139
+00:06:40,700 --> 00:06:42,568
+Oh, that bleh, man.
+
+140
+00:06:42,569 --> 00:06:45,037
+I would totally dip
+my wick in that.
+
+141
+00:06:45,038 --> 00:06:47,906
+Listen, dude. No matter
+how hot she is,
+
+142
+00:06:47,907 --> 00:06:50,009
+You would not
+punch holes in a sped.
+
+143
+00:06:50,010 --> 00:06:51,210
+Oh, hell,
+yeah, I would.
+
+144
+00:06:51,211 --> 00:06:52,544
+I mean, she's
+the perfect girl.
+
+145
+00:06:52,545 --> 00:06:54,480
+All the sweater meat
+of a regular chick
+
+146
+00:06:54,481 --> 00:06:56,181
+And half
+the pillow talk.
+
+147
+00:06:58,385 --> 00:06:59,752
+[kiss]
+
+148
+00:06:59,753 --> 00:07:01,987
+Man, you're all talk.
+
+149
+00:07:01,988 --> 00:07:04,757
+Look, I got 20 large
+that says you won't
+sleep with her.
+
+150
+00:07:04,758 --> 00:07:07,659
+Make it 50
+and you're on.
+
+151
+00:07:07,660 --> 00:07:10,262
+Oh, ha ha!
+Wheeeeeee!
+
+152
+00:07:10,263 --> 00:07:13,198
+Hey, if you're gonna
+be gay about this,
+you can't play.
+
+153
+00:07:13,199 --> 00:07:14,333
+Sorry.
+
+154
+00:07:15,402 --> 00:07:16,635
+[kiss]
+
+155
+00:07:16,636 --> 00:07:20,205
+Fine. 50 bucks says you
+won't have sex with bleh.
+
+156
+00:07:20,206 --> 00:07:22,207
+Easy money.
+
+157
+00:07:22,208 --> 00:07:24,076
+Captain hero is
+gonna show you guys
+
+158
+00:07:24,077 --> 00:07:26,679
+What being a real man
+is all about.
+
+159
+00:07:26,680 --> 00:07:28,681
+All: triple kiss!
+
+160
+00:07:28,682 --> 00:07:30,516
+[kisses]
+
+161
+00:07:37,657 --> 00:07:41,293
+[snarls]
+
+162
+00:07:41,294 --> 00:07:43,228
+[speaking japanese]
+
+163
+00:07:48,601 --> 00:07:52,571
+¶ ling-ling
+into battle go ¶
+
+164
+00:07:52,572 --> 00:07:55,140
+¶ fulfill destiny
+of the soul ¶
+
+165
+00:07:55,141 --> 00:07:56,542
+¶ all the children sing ¶
+
+166
+00:07:56,543 --> 00:08:00,045
+Kids: ¶ kill,
+kill, kill, kill,
+die, die, die ¶
+
+167
+00:08:00,046 --> 00:08:01,580
+¶ kill, kill,
+kill, kill... ¶
+
+168
+00:08:01,581 --> 00:08:04,583
+Wait, ling-ling.
+It's just us.
+
+169
+00:08:04,584 --> 00:08:08,087
+We're not really
+a 3-headed, acid-spitting
+needle monster.
+
+170
+00:08:08,088 --> 00:08:11,190
+[speaking japanese]
+
+171
+00:08:11,191 --> 00:08:12,825
+Oh.
+
+172
+00:08:12,826 --> 00:08:14,960
+Oh, no, ling-ling.
+
+173
+00:08:14,961 --> 00:08:16,228
+Instead of
+cheering you up,
+
+174
+00:08:16,229 --> 00:08:21,367
+We accidentally
+disappointed you.
+
+175
+00:08:21,368 --> 00:08:24,069
+Oh, poor baby.
+
+176
+00:08:24,070 --> 00:08:25,471
+Triple kiss!
+
+177
+00:08:25,472 --> 00:08:27,373
+Oh! Hee hee!
+[kisses]
+
+178
+00:08:27,374 --> 00:08:31,310
+[sighing and giggling]
+
+179
+00:08:38,184 --> 00:08:39,585
+[knocks]
+
+180
+00:08:39,586 --> 00:08:41,420
+Clara:
+I found it a bit odd
+
+181
+00:08:41,421 --> 00:08:44,023
+That captain hero
+wanted to take bleh
+out on a date,
+
+182
+00:08:44,024 --> 00:08:45,691
+And it was
+my responsibility
+
+183
+00:08:45,692 --> 00:08:48,127
+To make sure his
+intentions were pure.
+
+184
+00:08:48,128 --> 00:08:50,329
+So, captain hero, is it?
+
+185
+00:08:50,330 --> 00:08:52,464
+Oh. Heh heh! Yeah?
+
+186
+00:08:52,465 --> 00:08:53,966
+Coming to take
+my little bleh out
+
+187
+00:08:53,967 --> 00:08:55,634
+For a night
+on the town, eh?
+
+188
+00:08:55,635 --> 00:08:57,770
+You know, I don't
+know what'd I do
+
+189
+00:08:57,771 --> 00:08:59,805
+If anything happened
+to my little bleh.
+
+190
+00:08:59,806 --> 00:09:02,341
+Yes, ma'am.
+I mean, no, ma'am.
+
+191
+00:09:02,342 --> 00:09:04,943
+Son, do you know
+what it's like
+
+192
+00:09:04,944 --> 00:09:08,147
+To kill a man with
+your bare hands?
+
+193
+00:09:08,148 --> 00:09:09,748
+I do.
+
+194
+00:09:09,749 --> 00:09:10,883
+I...
+
+195
+00:09:10,884 --> 00:09:12,151
+Oh!
+
+196
+00:09:12,152 --> 00:09:13,986
+Here's bleh now!
+
+197
+00:09:13,987 --> 00:09:16,155
+¶ there she is... ¶
+
+198
+00:09:16,156 --> 00:09:19,825
+Wow! You look...
+Stunning.
+
+199
+00:09:19,826 --> 00:09:25,497
+<i>"I am sam's dakota
+fanning is worth the
+price of admission."</i>
+
+200
+00:09:25,498 --> 00:09:27,700
+[blow dart]
+
+201
+00:09:27,701 --> 00:09:29,501
+Ow! What the hell?!
+
+202
+00:09:29,502 --> 00:09:31,904
+A little
+added protection.
+
+203
+00:09:31,905 --> 00:09:34,807
+You'll get the antidote
+when I get my bleh back.
+
+204
+00:09:34,808 --> 00:09:39,311
+[all giggling]
+
+205
+00:09:39,312 --> 00:09:42,748
+Hey, ling-ling,
+you excited for
+christmas?
+
+206
+00:09:42,749 --> 00:09:45,317
+Too bad there's
+no such thing
+as santa claus!
+
+207
+00:09:45,318 --> 00:09:46,985
+I bet you're
+disappointed.
+
+208
+00:09:46,986 --> 00:09:48,153
+Oh.
+
+209
+00:09:48,154 --> 00:09:50,889
+[laughs]
+
+210
+00:09:50,890 --> 00:09:53,659
+Hey, look what
+I found in your ear!
+
+211
+00:09:53,660 --> 00:09:55,427
+Is it a quarter?
+
+212
+00:09:55,428 --> 00:09:58,330
+Oh, no!
+It's a tumor!
+
+213
+00:09:58,331 --> 00:09:59,765
+Oh.
+
+214
+00:09:59,766 --> 00:10:02,601
+[slurps]
+
+215
+00:10:02,602 --> 00:10:04,370
+[giggles]
+
+216
+00:10:04,371 --> 00:10:09,008
+Hey, ling-ling,
+you excited for
+christmas?
+
+217
+00:10:09,009 --> 00:10:11,443
+Oh, no!
+It's a tumor!
+
+218
+00:10:11,444 --> 00:10:12,845
+Oh.
+
+219
+00:10:12,846 --> 00:10:16,181
+[slurps]
+
+220
+00:10:16,182 --> 00:10:19,418
+¶ girly, girly,
+girly, girly... ¶
+
+221
+00:10:19,419 --> 00:10:23,689
+[bleh shouts happily
+and incoherently]
+
+222
+00:10:23,690 --> 00:10:25,357
+Captain hero:
+yes, I was confident
+
+223
+00:10:25,358 --> 00:10:28,327
+That by the end of the
+night, i'd have another
+notch on my utility belt
+
+224
+00:10:28,328 --> 00:10:30,095
+And 50 bucks in my pocket.
+
+225
+00:10:30,096 --> 00:10:33,565
+Then I realized
+something. Bleh...
+
+226
+00:10:33,566 --> 00:10:35,034
+She was really special,
+
+227
+00:10:35,035 --> 00:10:36,635
+But not like in
+a retarded way,
+
+228
+00:10:36,636 --> 00:10:39,004
+In a traditionally
+special way.
+
+229
+00:10:39,005 --> 00:10:44,943
+¶ did you ever know
+that you're my hero? ¶
+
+230
+00:10:44,944 --> 00:10:46,245
+Oh!
+
+231
+00:10:46,246 --> 00:10:47,546
+Ok!
+
+232
+00:10:47,547 --> 00:10:53,352
+¶ you're everything
+I wish I could be ¶
+
+233
+00:10:53,353 --> 00:10:56,088
+¶ I could fly higher
+than an eagle ¶
+
+234
+00:10:56,089 --> 00:10:57,556
+[both giggle]
+
+235
+00:10:57,557 --> 00:10:59,558
+Sam.
+
+236
+00:10:59,559 --> 00:11:02,761
+I don't like
+these things.
+They scare me!
+
+237
+00:11:02,762 --> 00:11:05,631
+¶ beneath my wings ¶
+
+238
+00:11:05,632 --> 00:11:09,468
+Eeeeeeh! Aah! Sam!
+¶ oh, oh, fly ¶
+
+239
+00:11:09,469 --> 00:11:14,340
+¶ so high
+against the sky ¶
+
+240
+00:11:14,341 --> 00:11:16,942
+¶ so high I almost... ¶
+
+241
+00:11:16,943 --> 00:11:20,646
+Bleh, you are the wind
+beneath my wings.
+
+242
+00:11:20,647 --> 00:11:22,681
+"contrived, manipulative,
+
+243
+00:11:22,682 --> 00:11:28,721
+<i>And shamelessly
+sentimental," raves peter
+travers from rolling stone.</i>
+
+244
+00:11:34,627 --> 00:11:37,596
+Hey, ling-ling,
+I got a penny.
+No, I don't.
+
+245
+00:11:37,597 --> 00:11:39,198
+[licks dry fur]
+
+246
+00:11:39,199 --> 00:11:40,866
+[rattles]
+
+247
+00:11:40,867 --> 00:11:41,867
+[bam bam]
+
+248
+00:11:41,868 --> 00:11:43,702
+[licks dry fur]
+
+249
+00:11:43,703 --> 00:11:46,138
+Whoa, guys. Guys!
+
+250
+00:11:46,139 --> 00:11:47,840
+Ling-ling is
+totally kicked!
+
+251
+00:11:47,841 --> 00:11:48,841
+What?!
+
+252
+00:11:48,842 --> 00:11:50,209
+[pants]
+
+253
+00:11:50,210 --> 00:11:52,978
+[licks dry fur]
+
+254
+00:11:52,979 --> 00:11:54,747
+Don't hold out
+on me, man.
+
+255
+00:11:54,748 --> 00:11:57,449
+I need my fix.
+Come on! Please,
+man, come on!
+
+256
+00:11:57,450 --> 00:11:59,618
+What do you want?
+I'll do anything!
+
+257
+00:11:59,619 --> 00:12:01,253
+I'll suck your dick!
+
+258
+00:12:03,156 --> 00:12:04,556
+Ooh! Ooh, sam!
+
+259
+00:12:04,557 --> 00:12:05,991
+Hee hee!
+Shh!
+
+260
+00:12:05,992 --> 00:12:08,861
+Are you crazy?
+They'll hear us!
+
+261
+00:12:08,862 --> 00:12:11,764
+Captain hero:
+bleh and I got home way
+past midnight.
+
+262
+00:12:11,765 --> 00:12:15,701
+I was like, we are gonna
+get in so much trouble!
+
+263
+00:12:15,702 --> 00:12:19,672
+So, this was
+really fantastic.
+
+264
+00:12:19,673 --> 00:12:23,842
+Um, I,
+uh...Good night.
+
+265
+00:12:23,843 --> 00:12:24,777
+[kiss]
+
+266
+00:12:25,879 --> 00:12:27,513
+¶ girly, girly,
+girly, girly... ¶
+
+267
+00:12:27,514 --> 00:12:29,415
+Ahh!
+
+268
+00:12:29,416 --> 00:12:32,951
+Hey, super stud.
+Did you sleep
+with her?
+
+269
+00:12:32,952 --> 00:12:34,453
+Dude, back off!
+
+270
+00:12:34,454 --> 00:12:36,922
+I did not, as you
+so crudely put it...
+
+271
+00:12:36,923 --> 00:12:38,857
+"nail her
+in the stink tube."
+
+272
+00:12:38,858 --> 00:12:40,592
+It's not like that.
+
+273
+00:12:40,593 --> 00:12:42,961
+So you kids are
+taking it slow?
+
+274
+00:12:42,962 --> 00:12:43,996
+See what I did
+there? I--
+
+275
+00:12:43,997 --> 00:12:45,998
+You just don't get it,
+spanky.
+
+276
+00:12:45,999 --> 00:12:47,299
+Nobody gets it!
+
+277
+00:12:47,300 --> 00:12:48,467
+[wails]
+
+278
+00:12:48,468 --> 00:12:50,069
+[door slams]
+
+279
+00:12:50,070 --> 00:12:51,470
+Captain hero:
+I was lying in bed,
+
+280
+00:12:51,471 --> 00:12:54,273
+Replaying the date over
+and over in my head,
+
+281
+00:12:54,274 --> 00:12:56,842
+When there was a knock
+at the door.
+[knocks]
+
+282
+00:12:56,843 --> 00:12:57,776
+Who's there?
+
+283
+00:12:58,845 --> 00:13:01,080
+Bleh! What are you--
+
+284
+00:13:02,415 --> 00:13:04,983
+Listen, bleh,
+i'm not that kind of guy.
+
+285
+00:13:04,984 --> 00:13:05,984
+[pulls pants down]
+
+286
+00:13:05,985 --> 00:13:08,153
+Oh, my!
+
+287
+00:13:08,154 --> 00:13:12,057
+Oh, no, no, no...
+
+288
+00:13:12,058 --> 00:13:14,293
+Leave the helmet on.
+
+289
+00:13:17,330 --> 00:13:18,697
+Ahh.
+
+290
+00:13:18,698 --> 00:13:21,433
+Clara: that morning,
+I woke up feeling great.
+
+291
+00:13:21,434 --> 00:13:24,269
+Everyone had accepted
+me and my cousin,
+
+292
+00:13:24,270 --> 00:13:25,971
+And that was swell.
+
+293
+00:13:25,972 --> 00:13:29,875
+Oh, what a glorious day,
+isn't it, bleh?
+
+294
+00:13:29,876 --> 00:13:31,877
+Bleh?
+
+295
+00:13:31,878 --> 00:13:33,612
+Bleh?!
+
+296
+00:13:33,613 --> 00:13:37,683
+Captain hero!
+Clara, it's not
+what you think!
+
+297
+00:13:37,684 --> 00:13:38,684
+[gibberish]
+
+298
+00:13:38,685 --> 00:13:40,552
+Get up! Get up
+right now!
+
+299
+00:13:40,553 --> 00:13:43,856
+<i>"I am sam reduces penn to
+a mugging embarrassment,"</i>
+
+300
+00:13:43,857 --> 00:13:46,091
+<i>Raves mike clark
+of usa today.</i>
+
+301
+00:13:46,092 --> 00:13:47,860
+I don't care.
+Let's go!
+
+302
+00:13:47,861 --> 00:13:49,561
+Yeeeh...
+
+303
+00:13:49,562 --> 00:13:52,297
+Go back to your
+cage right now!
+
+304
+00:13:52,298 --> 00:13:55,434
+Spanky: well,
+look who's doing
+the limp of shame!
+
+305
+00:13:55,435 --> 00:13:57,169
+You bastard!
+
+306
+00:13:57,170 --> 00:13:59,338
+Captain hero:
+clara totally overreacted.
+
+307
+00:13:59,339 --> 00:14:00,639
+I mean, bleh was an adult,
+
+308
+00:14:00,640 --> 00:14:02,374
+And completely capable
+of making her own decisions.
+
+309
+00:14:02,375 --> 00:14:03,809
+Or not.
+
+310
+00:14:03,810 --> 00:14:06,945
+Still, I needed to
+sit clara down and
+explain what happened.
+
+311
+00:14:06,946 --> 00:14:09,948
+Clara, I never expected
+this to happen.
+
+312
+00:14:09,949 --> 00:14:14,720
+It's just that I have
+real feelings for her.
+
+313
+00:14:14,721 --> 00:14:17,389
+Well...
+
+314
+00:14:17,390 --> 00:14:20,025
+¶ there she is ¶
+
+315
+00:14:20,026 --> 00:14:23,295
+¶ she's a girl ¶
+
+316
+00:14:23,296 --> 00:14:25,497
+If that is the truth--
+
+317
+00:14:25,498 --> 00:14:26,932
+It is.
+
+318
+00:14:26,933 --> 00:14:28,967
+Then i'm truly happy
+for the two of you.
+
+319
+00:14:28,968 --> 00:14:31,170
+You're a good man,
+captain hero.
+
+320
+00:14:31,171 --> 00:14:33,005
+I knew I could
+trust you.
+
+321
+00:14:33,006 --> 00:14:35,107
+Here's the antidote.
+
+322
+00:14:35,108 --> 00:14:36,342
+[gulp]
+
+323
+00:14:36,343 --> 00:14:38,977
+Well, nice work,
+captain hero.
+
+324
+00:14:38,978 --> 00:14:41,980
+Here's the $50
+I bet you to have
+sex with bleh.
+
+325
+00:14:41,981 --> 00:14:42,981
+[gasps]
+
+326
+00:14:42,982 --> 00:14:44,049
+Yeeeeeh!
+
+327
+00:14:44,050 --> 00:14:45,184
+Oh, um, I mean, uh...
+
+328
+00:14:45,185 --> 00:14:49,655
+Here is the $50
+captain hero won off me
+
+329
+00:14:49,656 --> 00:14:52,291
+Because I bet him
+he would not have sex
+
+330
+00:14:52,292 --> 00:14:53,926
+With your
+special cousin bleh.
+
+331
+00:14:53,927 --> 00:14:56,128
+But he did, in fact,
+have sex with her.
+
+332
+00:14:56,129 --> 00:14:58,564
+Oh, yes, he did.
+For $50.
+
+333
+00:14:58,565 --> 00:15:01,133
+Oh, man. Saved it.
+
+334
+00:15:01,134 --> 00:15:07,539
+Captain hero, I forbid you
+to see my cousin ever again!
+
+335
+00:15:07,540 --> 00:15:08,774
+Uhh!
+
+336
+00:15:08,775 --> 00:15:10,676
+I would have been
+more pissed at spanky,
+
+337
+00:15:10,677 --> 00:15:13,679
+But you know,
+I just won $50!
+
+338
+00:15:13,680 --> 00:15:16,382
+[cash register bell]
+ah! Who's your daddy?
+
+339
+00:15:16,383 --> 00:15:19,485
+Ooh, I like the big one
+and that one over there
+
+340
+00:15:19,486 --> 00:15:20,986
+And...Ooh!
+
+341
+00:15:20,987 --> 00:15:25,057
+Yeah. Hell, yeah!
+[girls talking and laughing]
+
+342
+00:15:25,058 --> 00:15:26,925
+Ehhhh.
+
+343
+00:15:26,926 --> 00:15:28,394
+Ehhhh.
+
+344
+00:15:28,395 --> 00:15:30,362
+Ehhhh.
+
+345
+00:15:30,363 --> 00:15:32,164
+Oh, look at
+poor ling-ling.
+
+346
+00:15:32,165 --> 00:15:33,932
+We've licked
+the life out of it.
+
+347
+00:15:33,933 --> 00:15:35,234
+What should we do?
+
+348
+00:15:35,235 --> 00:15:36,235
+Poke it harder.
+
+349
+00:15:36,236 --> 00:15:37,236
+Uhh!
+
+350
+00:15:37,237 --> 00:15:38,237
+[gasps]
+
+351
+00:15:38,238 --> 00:15:39,571
+Look at me!
+
+352
+00:15:39,572 --> 00:15:42,608
+I've become the very
+thing I hate most.
+
+353
+00:15:42,609 --> 00:15:44,576
+A guy who pokes things
+with sticks?
+
+354
+00:15:44,577 --> 00:15:49,181
+Oh, we've abused ling-ling
+to the point where the
+little guy is just numb.
+
+355
+00:15:49,182 --> 00:15:50,649
+And for what?
+
+356
+00:15:50,650 --> 00:15:52,551
+To catch a buzz?!
+
+357
+00:15:52,552 --> 00:15:55,654
+I guess being cool
+just isn't worth it.
+
+358
+00:15:55,655 --> 00:15:59,024
+["what you already know"
+jingle plays]
+
+359
+00:15:59,025 --> 00:16:01,293
+Come on. We've got to
+make this right!
+
+360
+00:16:02,529 --> 00:16:04,396
+Sorry, wooldoor.
+You stay here
+
+361
+00:16:04,397 --> 00:16:06,899
+Until all that ling-ling
+is out of your system.
+
+362
+00:16:06,900 --> 00:16:10,135
+It's gonna be
+the hardest thing
+you've ever done.
+
+363
+00:16:10,136 --> 00:16:11,136
+Toodles!
+
+364
+00:16:11,137 --> 00:16:13,405
+[slam]
+
+365
+00:16:13,406 --> 00:16:15,474
+Aah! I can't take it!
+
+366
+00:16:15,475 --> 00:16:18,477
+[wacky noises]
+
+367
+00:16:21,047 --> 00:16:24,416
+Ha ha ha ha ha ha!
+Wooldoor: I can't take it!
+
+368
+00:16:24,417 --> 00:16:26,285
+Aaaaaaaaaaaaaaaah!
+
+369
+00:16:26,286 --> 00:16:29,154
+Captain hero:
+oh, sure, the money
+helped dull the pain,
+
+370
+00:16:29,155 --> 00:16:33,692
+But later, you know, when
+the stores are all closed,
+
+371
+00:16:33,693 --> 00:16:35,294
+Who do I have
+to share it with?
+
+372
+00:16:35,295 --> 00:16:41,433
+Bleh? No. Not anymore.
+Not anymore.
+
+373
+00:16:41,434 --> 00:16:43,635
+It just wasn't
+worth it, spanky!
+
+374
+00:16:43,636 --> 00:16:46,705
+Bleh, she--
+she was special.
+
+375
+00:16:46,706 --> 00:16:48,807
+What are you--
+what are you saying?
+
+376
+00:16:48,808 --> 00:16:52,678
+Oh, spanky,
+I love her.
+
+377
+00:16:53,880 --> 00:16:59,018
+Then go to her.
+
+378
+00:16:59,019 --> 00:17:00,719
+Xandir:
+we knew what we had done
+to ling-ling was wrong.
+
+379
+00:17:00,720 --> 00:17:02,488
+Hopefully, this was gonna
+
+380
+00:17:02,489 --> 00:17:03,622
+Make it up to that lovable,
+
+381
+00:17:03,623 --> 00:17:06,258
+Fortune cookie cat thing.
+
+382
+00:17:06,259 --> 00:17:11,096
+Ling-ling, there's
+a special warrior
+here to see you.
+
+383
+00:17:11,097 --> 00:17:15,567
+[japanese song playing]
+
+384
+00:17:15,568 --> 00:17:17,503
+[speaking japanese]
+
+385
+00:17:19,739 --> 00:17:21,674
+[speaking japanese]
+
+386
+00:17:33,086 --> 00:17:35,654
+Toot:
+sure, we have our issues,
+
+387
+00:17:35,655 --> 00:17:39,224
+But really, this is
+a house drawn together
+
+388
+00:17:39,225 --> 00:17:40,659
+With love.
+
+389
+00:17:40,660 --> 00:17:43,595
+[speaking japanese]
+
+390
+00:18:05,752 --> 00:18:07,753
+Yah!
+Uhh!
+
+391
+00:18:07,754 --> 00:18:10,189
+[slurping]
+
+392
+00:18:10,190 --> 00:18:12,991
+All right, clara,
+where is she?!
+
+393
+00:18:12,992 --> 00:18:15,828
+Hah! You're too late,
+captain jerko!
+
+394
+00:18:15,829 --> 00:18:18,630
+She left for the front door
+well over 2 minutes ago!
+
+395
+00:18:18,631 --> 00:18:21,066
+You'll never catch her!
+Never!
+
+396
+00:18:21,067 --> 00:18:23,202
+Oh. Oh, well.
+
+397
+00:18:23,203 --> 00:18:24,903
+I guess it wasn't
+meant to be.
+
+398
+00:18:24,904 --> 00:18:26,939
+Easy come, easy go.
+
+399
+00:18:26,940 --> 00:18:28,807
+Well, i'll be
+seeing you, clara.
+
+400
+00:18:28,808 --> 00:18:31,143
+Wait! Damn you!
+I've got to try!
+
+401
+00:18:31,144 --> 00:18:32,578
+Yahh!
+
+402
+00:18:34,447 --> 00:18:36,448
+Captain hero: bleh!
+Wait! I'm coming!
+
+403
+00:18:36,449 --> 00:18:37,950
+Dude, where are you--uhh!
+
+404
+00:18:37,951 --> 00:18:39,518
+Watch it, pig!
+
+405
+00:18:39,519 --> 00:18:41,086
+Go get her, man.
+
+406
+00:18:41,087 --> 00:18:42,087
+Uhh!
+
+407
+00:18:42,088 --> 00:18:43,355
+Watch it,
+hot black girl!
+
+408
+00:18:43,356 --> 00:18:45,157
+Go get her, man.
+
+409
+00:18:45,158 --> 00:18:49,895
+[muzak playing]
+
+410
+00:18:49,896 --> 00:18:56,168
+[blissful sighs and moans]
+
+411
+00:18:56,169 --> 00:18:57,770
+Oh, come on!
+
+412
+00:19:00,206 --> 00:19:05,444
+Bleh! Bleh!
+Bleh! Bleh!
+
+413
+00:19:05,445 --> 00:19:06,812
+Oh.
+
+414
+00:19:06,813 --> 00:19:08,747
+Bleh! Bleh, wait!
+
+415
+00:19:08,748 --> 00:19:11,350
+Listen, I don't know
+what clara told you,
+
+416
+00:19:11,351 --> 00:19:14,453
+But I love you.
+
+417
+00:19:14,454 --> 00:19:16,555
+Yehhhhhhhh.
+
+418
+00:19:18,458 --> 00:19:20,192
+[splat]
+
+419
+00:19:20,193 --> 00:19:22,127
+"one of the year's
+10 best!"
+
+420
+00:19:22,128 --> 00:19:25,631
+"delivers in ways
+you never expected!"
+
+421
+00:19:25,632 --> 00:19:29,134
+Yes, well, maybe
+it wouldn't work out.
+
+422
+00:19:29,135 --> 00:19:31,637
+I mean, we come
+from different worlds.
+
+423
+00:19:31,638 --> 00:19:33,772
+I come from
+planet zebulon
+
+424
+00:19:33,773 --> 00:19:36,909
+And you come from
+a mom who drank when
+she was pregnant.
+
+425
+00:19:36,910 --> 00:19:40,446
+Well, farewell,
+my sweet.
+
+426
+00:19:40,447 --> 00:19:41,947
+Mwah!
+
+427
+00:19:41,948 --> 00:19:44,983
+Mnnnh deh
+nnnh.
+
+428
+00:19:44,984 --> 00:19:47,186
+Yeah! She kissed him!
+
+429
+00:19:47,187 --> 00:19:49,488
+She kissed him!
+
+430
+00:19:49,489 --> 00:19:51,657
+Ha ha! Ha ha!
+
+431
+00:19:51,658 --> 00:19:55,994
+Bleh, you nailed
+the dry-mouth
+from reality tv show!
+
+432
+00:19:55,995 --> 00:19:59,264
+Well, I guess I owe you
+that 50 bucks now.
+
+433
+00:19:59,265 --> 00:20:02,801
+Oh! 50 bucks! Yeah!
+
+434
+00:20:02,802 --> 00:20:06,438
+[cash register bell]
+ooh, yeah,
+who's your daddy?
+
+435
+00:20:06,439 --> 00:20:09,908
+I like the big one
+and I like the one
+over there. Ooh!
+
+436
+00:20:09,909 --> 00:20:13,245
+Yeah. Hell, yeah!
+[girls talking and laughing]
+
+437
+00:20:13,246 --> 00:20:14,880
+Bleh: sam, bye-bye!
+
+438
+00:20:14,881 --> 00:20:16,048
+Bye-bye, sam!
+
+439
+00:20:16,049 --> 00:20:18,150
+[choked up] bye.
+
+440
+00:20:19,786 --> 00:20:21,854
+Good-bye.
+
+441
+00:20:23,189 --> 00:20:24,823
+You ok, man?
+
+442
+00:20:24,824 --> 00:20:28,560
+I...Don't know
+if i'll ever be ok.
+
+443
+00:20:28,561 --> 00:20:30,062
+Yeah, i'm sorry.
+
+444
+00:20:30,063 --> 00:20:32,031
+Hey, you want to go
+grab a beer,
+
+445
+00:20:32,032 --> 00:20:34,533
+Spin it, and kiss
+whoever it points to?
+
+446
+00:20:34,534 --> 00:20:39,271
+No. Not now, spanky.
+Not now.
+
+447
+00:20:43,543 --> 00:20:44,543
+How about now?
+
+448
+00:20:44,544 --> 00:20:45,811
+Yeah. Ok.
+
+449
+00:20:45,812 --> 00:20:51,550
+¶ girly, girly,
+girly, girly girl ¶
+
+450
+00:20:51,551 --> 00:20:53,052
+¶ girl ¶
+
+451
+00:20:53,053 --> 00:20:55,954
+¶ girly, girly girl-- ¶
+
-- 
2.6.4



More information about the ffmpeg-devel mailing list