Skip to content

Commit 332f258

Browse files
committed
change: always notify on firstly psm received
1 parent 448053b commit 332f258

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

libmpeg/source/mpeg-ps-dec.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ struct ps_demuxer_t
4848

4949
struct ps_demuxer_notify_t notify;
5050
void* notify_param;
51-
bool is_notifyed;
51+
uint32_t ver; // psm notify version
5252
};
5353

5454
static void ps_demuxer_notify(struct ps_demuxer_t* ps);
@@ -250,8 +250,9 @@ static int ps_demuxer_header(struct ps_demuxer_t* ps, struct mpeg_bits_t* reader
250250
case PES_SID_PSM:
251251
n = ps->psm.stream_count;
252252
r = psm_read(&ps->psm, reader);
253-
if (n != ps->psm.stream_count || !ps->is_notifyed)
253+
if (n != ps->psm.stream_count || ps->ver != ps->psm.ver)
254254
ps_demuxer_notify(ps); // TODO: check psm stream sid
255+
ps->ver = ps->psm.ver;
255256
break;
256257

257258
case PES_SID_PSD:
@@ -471,7 +472,7 @@ struct ps_demuxer_t* ps_demuxer_create(ps_demuxer_onpacket onpacket, void* param
471472
ps->buffer.ptr = (uint8_t*)(ps + 1);
472473
ps->buffer.cap = N_BUFFER_INIT;
473474

474-
ps->is_notifyed = false;
475+
ps->ver = 0xFFFFFFFF; // fix: guest stream add stream internal, alway notify on firstly
475476
return ps;
476477
}
477478

@@ -510,7 +511,6 @@ static void ps_demuxer_notify(struct ps_demuxer_t* ps)
510511
if (!ps->notify.onstream)
511512
return;
512513

513-
ps->is_notifyed = true;
514514
for (i = 0; i < ps->psm.stream_count; i++)
515515
{
516516
pes = &ps->psm.streams[i];

0 commit comments

Comments
 (0)