|
Loading...
|
mplayer-dev-eng@mplayerhq.hu
[Prev] Thread [Next] | [Prev] Date [Next]
Re: [MPlayer-dev-eng] [PATCH] vobsub missing subs ubitux Sun Apr 18 09:02:43 2010
According to what Uoti Urpala said to me on IRC, it would be a problem to keep static state variable in case of having many instances of the parser in parallel. So here is a second version of the patch using the mpeg context struct. Regards, -- ubitux
Index: vobsub.c
===================================================================
--- vobsub.c (revision 31044)
+++ vobsub.c (working copy)
@@ -285,6 +285,8 @@
unsigned char *packet;
unsigned int packet_reserve;
unsigned int packet_size;
+ int padding_was_here;
+ int merge;
} mpeg_t;
static mpeg_t *mpeg_open(const char *filename)
@@ -297,6 +299,8 @@
res->packet = NULL;
res->packet_size = 0;
res->packet_reserve = 0;
+ res->padding_was_here = 1;
+ res->merge = 0;
res->stream = rar_open(filename, "rb");
err = res->stream == NULL;
if (err)
@@ -368,10 +372,13 @@
return -1;
} else
abort();
+ if (!mpeg->padding_was_here)
+ mpeg->merge = 1;
break;
case 0xbd: /* packet */
if (rar_read(buf, 2, 1, mpeg->stream) != 1)
return -1;
+ mpeg->padding_was_here = 0;
len = buf[0] << 8 | buf[1];
idx = mpeg_tell(mpeg);
c = rar_getc(mpeg->stream);
@@ -454,6 +461,7 @@
len = buf[0] << 8 | buf[1];
if (len > 0 && rar_seek(mpeg->stream, len, SEEK_CUR))
return -1;
+ mpeg->padding_was_here = 1;
break;
default:
if (0xc0 <= buf[3] && buf[3] < 0xf0) {
@@ -1026,6 +1034,11 @@
last_pts_diff = pkt->pts100 -
mpg->pts;
else
pkt->pts100 = mpg->pts;
+ if (mpg->merge) {
+ packet_t *last =
&queue->packets[queue->current_index - 1];
+ pkt->pts100 = last->pts100;
+ mpg->merge = 0;
+ }
/* FIXME: should not use mpg_sub
internal informations, make a copy */
pkt->data = mpg->packet;
pkt->size = mpg->packet_size;
_______________________________________________ MPlayer-dev-eng mailing list [EMAIL PROTECTED] https://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
- [MPlayer-dev-eng] [PATCH] vobsub missing subs ubitux 2010/04/13
- Re: [MPlayer-dev-eng] [PATCH] vobsub missing subs ubitux 2010/04/13
- Re: [MPlayer-dev-eng] [PATCH] vobsub missing subs Rob McMullen 2010/04/13
- Re: [MPlayer-dev-eng] [PATCH] vobsub missing subs Carl Eugen Hoyos 2010/04/14
- Re: [MPlayer-dev-eng] [PATCH] vobsub missing subs ubitux 2010/04/14
- Re: [MPlayer-dev-eng] [PATCH] vobsub missing subs ubitux 2010/04/18 <=
- Re: [MPlayer-dev-eng] [PATCH] vobsub missing subs Ivan Kalvachev 2010/04/22
- Re: [MPlayer-dev-eng] [PATCH] vobsub missing subs Ivan Kalvachev 2010/04/27
- Re: [MPlayer-dev-eng] [PATCH] vobsub missing subs ubitux 2010/04/27