Message ID | 20240303022912.2105313-1-marth64@proxyid.net |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] avformat/dvdvideodec: fix -pgc and -pg options | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On date Saturday 2024-03-02 20:29:13 -0600, Marth64 wrote: > In merged DVD patch, -pgc and -pg options were broken. While these are > rather advanced options, they are the only means to get content for > some strangely authored discs. > > Signed-off-by: Marth64 <marth64@proxyid.net> > --- > libavformat/dvdvideodec.c | 23 +++++++++++++---------- > 1 file changed, 13 insertions(+), 10 deletions(-) Will apply, thanks.
On date Monday 2024-03-04 10:24:42 +0100, Stefano Sabatini wrote: > On date Saturday 2024-03-02 20:29:13 -0600, Marth64 wrote: > > In merged DVD patch, -pgc and -pg options were broken. While these are > > rather advanced options, they are the only means to get content for > > some strangely authored discs. > > > > Signed-off-by: Marth64 <marth64@proxyid.net> > > --- > > libavformat/dvdvideodec.c | 23 +++++++++++++---------- > > 1 file changed, 13 insertions(+), 10 deletions(-) > > Will apply, thanks. Not really: $ git am patches/0001-lavf-dvvideodec-fix-opts.patch --reject Applying: avformat/dvdvideodec: fix -pgc and -pg options Checking patch libavformat/dvdvideodec.c... Hunk #1 succeeded at 507 (offset -1 lines). Hunk #2 succeeded at 1255 (offset -12 lines). error: while searching for: (ret = dvdvideo_subp_stream_add_all(s)) < 0) return ret; if (!c->opt_preindex) return dvdvideo_chapters_setup_simple(s); return ret; error: patch failed: libavformat/dvdvideodec.c:1288 Applying patch libavformat/dvdvideodec.c with 1 reject... Hunk #1 applied cleanly. Hunk #2 applied cleanly. Rejected hunk #3.
Looks like v2 made it in. All good here. Thanks, Stefano ! On Mon, Mar 4, 2024 at 3:43 AM Stefano Sabatini <stefasab@gmail.com> wrote: > On date Monday 2024-03-04 10:24:42 +0100, Stefano Sabatini wrote: > > On date Saturday 2024-03-02 20:29:13 -0600, Marth64 wrote: > > > In merged DVD patch, -pgc and -pg options were broken. While these are > > > rather advanced options, they are the only means to get content for > > > some strangely authored discs. > > > > > > Signed-off-by: Marth64 <marth64@proxyid.net> > > > --- > > > libavformat/dvdvideodec.c | 23 +++++++++++++---------- > > > 1 file changed, 13 insertions(+), 10 deletions(-) > > > > Will apply, thanks. > > Not really: > $ git am patches/0001-lavf-dvvideodec-fix-opts.patch --reject > Applying: avformat/dvdvideodec: fix -pgc and -pg options > Checking patch libavformat/dvdvideodec.c... > Hunk #1 succeeded at 507 (offset -1 lines). > Hunk #2 succeeded at 1255 (offset -12 lines). > error: while searching for: > (ret = dvdvideo_subp_stream_add_all(s)) < 0) > return ret; > > if (!c->opt_preindex) > return dvdvideo_chapters_setup_simple(s); > > return ret; > > error: patch failed: libavformat/dvdvideodec.c:1288 > Applying patch libavformat/dvdvideodec.c with 1 reject... > Hunk #1 applied cleanly. > Hunk #2 applied cleanly. > Rejected hunk #3. >
diff --git a/libavformat/dvdvideodec.c b/libavformat/dvdvideodec.c index 3355010356..d53aef07ff 100644 --- a/libavformat/dvdvideodec.c +++ b/libavformat/dvdvideodec.c @@ -508,11 +508,12 @@ static int dvdvideo_play_next_ps_block(AVFormatContext *s, DVDVideoPlaybackState state->celln, e_cell->cellN, is_cell_promising); if (!state->in_ps && !state->in_pgc) { - if (cur_title == c->opt_title && - cur_ptt == c->opt_chapter_start && - cur_pgcn == state->pgcn && - cur_pgn == state->entry_pgn && + if (cur_title == c->opt_title && + (c->opt_pgc || cur_ptt == c->opt_chapter_start) && + cur_pgcn == state->pgcn && + cur_pgn == state->entry_pgn && is_cell_promising) { + state->in_pgc = 1; } @@ -1266,19 +1267,21 @@ static int dvdvideo_read_header(AVFormatContext *s) } if (c->opt_pgc) { - if (c->opt_pg == 0) + if (c->opt_pg == 0) { av_log(s, AV_LOG_ERROR, "Invalid coordinates. If -pgc is set, -pg must be set too.\n"); - else if (c->opt_chapter_start > 1 || c->opt_chapter_end > 0 || c->opt_preindex) + + return AVERROR(EINVAL); + } else if (c->opt_chapter_start > 1 || c->opt_chapter_end > 0 || c->opt_preindex) { av_log(s, AV_LOG_ERROR, "-pgc is not compatible with the -preindex or " "-chapter_start/-chapter_end options\n"); - - return AVERROR(EINVAL); + return AVERROR(EINVAL); + } } if ((ret = dvdvideo_ifo_open(s)) < 0) return ret; - if (c->opt_preindex && (ret = dvdvideo_chapters_setup_preindex(s)) < 0) + if (!c->opt_pgc && c->opt_preindex && (ret = dvdvideo_chapters_setup_preindex(s)) < 0) return ret; if ((ret = dvdvideo_play_open(s, &c->play_state)) < 0 || @@ -1288,7 +1291,7 @@ static int dvdvideo_read_header(AVFormatContext *s) (ret = dvdvideo_subp_stream_add_all(s)) < 0) return ret; - if (!c->opt_preindex) + if (!c->opt_pgc && !c->opt_preindex) return dvdvideo_chapters_setup_simple(s); return ret;
In merged DVD patch, -pgc and -pg options were broken. While these are rather advanced options, they are the only means to get content for some strangely authored discs. Signed-off-by: Marth64 <marth64@proxyid.net> --- libavformat/dvdvideodec.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-)