Re: [FFmpeg-devel] [PATCH v3] dvdvideo: add DVD-Video demuxer, powered by libdvdnav and libdvdread

2024-01-23 Thread Marth64
Thank you Stefano, I will send updated version soon with also several bug
fixes and improvements.

On Tue, Jan 23, 2024 at 18:17 Stefano Sabatini  wrote:

> On date Wednesday 2024-01-10 21:46:38 -0600, Marth64 wrote:
> > Fixes for several authoring styles/discs.
> > ffmpeg CLI may report wrong output time and show progress strangely for
> some discs.
> > This is not reproducible prior to `fftools/ffmpeg: convert to a threaded
> architecture`
> > But, I am looking into it.
> >
> > Signed-off-by: Marth64 
> > ---
> >  Changelog |1 +
> >  configure |8 +
> >  libavformat/Makefile  |1 +
> >  libavformat/allformats.c  |1 +
> >  libavformat/avlanguage.c  |   10 +-
> >  libavformat/dvdvideodec.c | 1001 +
> >  6 files changed, 1020 insertions(+), 2 deletions(-)
> >  create mode 100644 libavformat/dvdvideodec.c
> >
> > diff --git a/Changelog b/Changelog
> > index 5b2899d05b..1b377fed2f 100644
> > --- a/Changelog
> > +++ b/Changelog
> > @@ -18,6 +18,7 @@ version :
> >  - lavu/eval: introduce randomi() function in expressions
> >  - VVC decoder
> >  - fsync filter
> > +- DVD-Video demuxer, powered by libdvdnav and libdvdread
> >
> >  version 6.1:
> >  - libaribcaption decoder
> > diff --git a/configure b/configure
> > index e87a09ce83..1f21f4f1c2 100755
> > --- a/configure
> > +++ b/configure
> > @@ -227,6 +227,8 @@ External library support:
> >--enable-libdavs2enable AVS2 decoding via libdavs2 [no]
> >--enable-libdc1394   enable IIDC-1394 grabbing using libdc1394
> > and libraw1394 [no]
> > +  --enable-libdvdnav   enable libdvdnav, needed for DVD demuxing
> [no]
> > +  --enable-libdvdread   enable libdvdread, needed for DVD demuxing
> [no]
> >--enable-libfdk-aac  enable AAC de/encoding via libfdk-aac [no]
> >--enable-libfliteenable flite (voice synthesis) support via
> libflite [no]
> >--enable-libfontconfig   enable libfontconfig, useful for drawtext
> filter [no]
> > @@ -1806,6 +1808,8 @@ EXTERNAL_LIBRARY_GPL_LIST="
> >  frei0r
> >  libcdio
> >  libdavs2
> > +libdvdnav
> > +libdvdread
> >  librubberband
> >  libvidstab
> >  libx264
> > @@ -3519,6 +3523,8 @@ dts_demuxer_select="dca_parser"
> >  dtshd_demuxer_select="dca_parser"
> >  dv_demuxer_select="dvprofile"
> >  dv_muxer_select="dvprofile"
> > +dvdvideo_demuxer_select="mpegps_demuxer"
> > +dvdvideo_demuxer_deps="libdvdnav libdvdread"
> >  dxa_demuxer_select="riffdec"
> >  eac3_demuxer_select="ac3_parser"
> >  evc_demuxer_select="evc_frame_merge_bsf evc_parser"
> > @@ -6760,6 +6766,8 @@ enabled libdav1d  && require_pkg_config
> libdav1d "dav1d >= 0.5.0" "dav1d
> >  enabled libdavs2  && require_pkg_config libdavs2 "davs2 >=
> 1.6.0" davs2.h davs2_decoder_open
> >  enabled libdc1394 && require_pkg_config libdc1394 libdc1394-2
> dc1394/dc1394.h dc1394_new
> >  enabled libdrm&& check_pkg_config libdrm libdrm xf86drm.h
> drmGetVersion
> > +enabled libdvdnav && require_pkg_config libdvdnav "dvdnav >=
> 6.1.1" dvdnav/dvdnav.h dvdnav_open2
> > +enabled libdvdread&& require_pkg_config libdvdread "dvdread >=
> 6.1.2" dvdread/dvd_reader.h DVDOpen2 -ldvdread
> >  enabled libfdk_aac&& { check_pkg_config libfdk_aac fdk-aac
> "fdk-aac/aacenc_lib.h" aacEncOpen ||
> > { require libfdk_aac
> fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac &&
> >   warn "using libfdk without
> pkg-config"; } }
> > diff --git a/libavformat/Makefile b/libavformat/Makefile
> > index 581e378d95..3c1cb21fe2 100644
> > --- a/libavformat/Makefile
> > +++ b/libavformat/Makefile
> > @@ -192,6 +192,7 @@ OBJS-$(CONFIG_DTS_MUXER) += rawenc.o
> >  OBJS-$(CONFIG_DV_MUXER)  += dvenc.o
> >  OBJS-$(CONFIG_DVBSUB_DEMUXER)+= dvbsub.o rawdec.o
> >  OBJS-$(CONFIG_DVBTXT_DEMUXER)+= dvbtxt.o rawdec.o
> > +OBJS-$(CONFIG_DVDVIDEO_DEMUXER)  += dvdvideodec.o
> >  OBJS-$(CONFIG_DXA_DEMUXER)   += dxa.o
> >  OBJS-$(CONFIG_EA_CDATA_DEMUXER)  += eacdata.o
> >  OBJS-$(CONFIG_EA_DEMUXER)+= electronicarts.o
> > diff --git a/libavformat/allformats.c b/libavformat/allformats.c
> > index ce6be5f04d..ea88d4c094 100644
> > --- a/libavformat/allformats.c
> > +++ b/libavformat/allformats.c
> > @@ -150,6 +150,7 @@ extern const AVInputFormat  ff_dv_demuxer;
> >  extern const FFOutputFormat ff_dv_muxer;
> >  extern const AVInputFormat  ff_dvbsub_demuxer;
> >  extern const AVInputFormat  ff_dvbtxt_demuxer;
> > +extern const AVInputFormat  ff_dvdvideo_demuxer;
> >  extern const AVInputFormat  ff_dxa_demuxer;
> >  extern const AVInputFormat  ff_ea_demuxer;
> >  extern const AVInputFormat  ff_ea_cdata_demuxer;
> > diff --git a/libavformat/avlanguage.c b/libavformat/avlanguage.c
> > index 782a58adb2..202d9aa835 100644
>
> > --- 

Re: [FFmpeg-devel] [PATCH v3] dvdvideo: add DVD-Video demuxer, powered by libdvdnav and libdvdread

2024-01-23 Thread Stefano Sabatini
On date Wednesday 2024-01-10 21:46:38 -0600, Marth64 wrote:
> Fixes for several authoring styles/discs.
> ffmpeg CLI may report wrong output time and show progress strangely for some 
> discs.
> This is not reproducible prior to `fftools/ffmpeg: convert to a threaded 
> architecture`
> But, I am looking into it.
> 
> Signed-off-by: Marth64 
> ---
>  Changelog |1 +
>  configure |8 +
>  libavformat/Makefile  |1 +
>  libavformat/allformats.c  |1 +
>  libavformat/avlanguage.c  |   10 +-
>  libavformat/dvdvideodec.c | 1001 +
>  6 files changed, 1020 insertions(+), 2 deletions(-)
>  create mode 100644 libavformat/dvdvideodec.c
> 
> diff --git a/Changelog b/Changelog
> index 5b2899d05b..1b377fed2f 100644
> --- a/Changelog
> +++ b/Changelog
> @@ -18,6 +18,7 @@ version :
>  - lavu/eval: introduce randomi() function in expressions
>  - VVC decoder
>  - fsync filter
> +- DVD-Video demuxer, powered by libdvdnav and libdvdread
>  
>  version 6.1:
>  - libaribcaption decoder
> diff --git a/configure b/configure
> index e87a09ce83..1f21f4f1c2 100755
> --- a/configure
> +++ b/configure
> @@ -227,6 +227,8 @@ External library support:
>--enable-libdavs2enable AVS2 decoding via libdavs2 [no]
>--enable-libdc1394   enable IIDC-1394 grabbing using libdc1394
> and libraw1394 [no]
> +  --enable-libdvdnav   enable libdvdnav, needed for DVD demuxing [no]
> +  --enable-libdvdread   enable libdvdread, needed for DVD demuxing [no]
>--enable-libfdk-aac  enable AAC de/encoding via libfdk-aac [no]
>--enable-libfliteenable flite (voice synthesis) support via 
> libflite [no]
>--enable-libfontconfig   enable libfontconfig, useful for drawtext filter 
> [no]
> @@ -1806,6 +1808,8 @@ EXTERNAL_LIBRARY_GPL_LIST="
>  frei0r
>  libcdio
>  libdavs2
> +libdvdnav
> +libdvdread
>  librubberband
>  libvidstab
>  libx264
> @@ -3519,6 +3523,8 @@ dts_demuxer_select="dca_parser"
>  dtshd_demuxer_select="dca_parser"
>  dv_demuxer_select="dvprofile"
>  dv_muxer_select="dvprofile"
> +dvdvideo_demuxer_select="mpegps_demuxer"
> +dvdvideo_demuxer_deps="libdvdnav libdvdread"
>  dxa_demuxer_select="riffdec"
>  eac3_demuxer_select="ac3_parser"
>  evc_demuxer_select="evc_frame_merge_bsf evc_parser"
> @@ -6760,6 +6766,8 @@ enabled libdav1d  && require_pkg_config 
> libdav1d "dav1d >= 0.5.0" "dav1d
>  enabled libdavs2  && require_pkg_config libdavs2 "davs2 >= 1.6.0" 
> davs2.h davs2_decoder_open
>  enabled libdc1394 && require_pkg_config libdc1394 libdc1394-2 
> dc1394/dc1394.h dc1394_new
>  enabled libdrm&& check_pkg_config libdrm libdrm xf86drm.h 
> drmGetVersion
> +enabled libdvdnav && require_pkg_config libdvdnav "dvdnav >= 6.1.1" 
> dvdnav/dvdnav.h dvdnav_open2
> +enabled libdvdread&& require_pkg_config libdvdread "dvdread >= 
> 6.1.2" dvdread/dvd_reader.h DVDOpen2 -ldvdread
>  enabled libfdk_aac&& { check_pkg_config libfdk_aac fdk-aac 
> "fdk-aac/aacenc_lib.h" aacEncOpen ||
> { require libfdk_aac fdk-aac/aacenc_lib.h 
> aacEncOpen -lfdk-aac &&
>   warn "using libfdk without pkg-config"; } }
> diff --git a/libavformat/Makefile b/libavformat/Makefile
> index 581e378d95..3c1cb21fe2 100644
> --- a/libavformat/Makefile
> +++ b/libavformat/Makefile
> @@ -192,6 +192,7 @@ OBJS-$(CONFIG_DTS_MUXER) += rawenc.o
>  OBJS-$(CONFIG_DV_MUXER)  += dvenc.o
>  OBJS-$(CONFIG_DVBSUB_DEMUXER)+= dvbsub.o rawdec.o
>  OBJS-$(CONFIG_DVBTXT_DEMUXER)+= dvbtxt.o rawdec.o
> +OBJS-$(CONFIG_DVDVIDEO_DEMUXER)  += dvdvideodec.o
>  OBJS-$(CONFIG_DXA_DEMUXER)   += dxa.o
>  OBJS-$(CONFIG_EA_CDATA_DEMUXER)  += eacdata.o
>  OBJS-$(CONFIG_EA_DEMUXER)+= electronicarts.o
> diff --git a/libavformat/allformats.c b/libavformat/allformats.c
> index ce6be5f04d..ea88d4c094 100644
> --- a/libavformat/allformats.c
> +++ b/libavformat/allformats.c
> @@ -150,6 +150,7 @@ extern const AVInputFormat  ff_dv_demuxer;
>  extern const FFOutputFormat ff_dv_muxer;
>  extern const AVInputFormat  ff_dvbsub_demuxer;
>  extern const AVInputFormat  ff_dvbtxt_demuxer;
> +extern const AVInputFormat  ff_dvdvideo_demuxer;
>  extern const AVInputFormat  ff_dxa_demuxer;
>  extern const AVInputFormat  ff_ea_demuxer;
>  extern const AVInputFormat  ff_ea_cdata_demuxer;
> diff --git a/libavformat/avlanguage.c b/libavformat/avlanguage.c
> index 782a58adb2..202d9aa835 100644

> --- a/libavformat/avlanguage.c
> +++ b/libavformat/avlanguage.c
> @@ -29,7 +29,7 @@ typedef struct LangEntry {
>  uint16_t next_equivalent;
>  } LangEntry;
>  
> -static const uint16_t lang_table_counts[] = { 484, 20, 184 };
> +static const uint16_t lang_table_counts[] = { 484, 20, 190 };
>  static const uint16_t lang_table_offsets[] = { 0, 

Re: [FFmpeg-devel] [PATCH v3] dvdvideo: add DVD-Video demuxer, powered by libdvdnav and libdvdread

2024-01-10 Thread Marth64
Also deleted more redundant code in v3^

On Wed, Jan 10, 2024 at 9:48 PM Marth64  wrote:

> Fixes for several authoring styles/discs.
> ffmpeg CLI may report wrong output time and show progress strangely for
> some discs.
> This is not reproducible prior to `fftools/ffmpeg: convert to a threaded
> architecture`
> But, I am looking into it.
>
> Signed-off-by: Marth64 
> ---
>  Changelog |1 +
>  configure |8 +
>  libavformat/Makefile  |1 +
>  libavformat/allformats.c  |1 +
>  libavformat/avlanguage.c  |   10 +-
>  libavformat/dvdvideodec.c | 1001 +
>  6 files changed, 1020 insertions(+), 2 deletions(-)
>  create mode 100644 libavformat/dvdvideodec.c
>
> diff --git a/Changelog b/Changelog
> index 5b2899d05b..1b377fed2f 100644
> --- a/Changelog
> +++ b/Changelog
> @@ -18,6 +18,7 @@ version :
>  - lavu/eval: introduce randomi() function in expressions
>  - VVC decoder
>  - fsync filter
> +- DVD-Video demuxer, powered by libdvdnav and libdvdread
>
>  version 6.1:
>  - libaribcaption decoder
> diff --git a/configure b/configure
> index e87a09ce83..1f21f4f1c2 100755
> --- a/configure
> +++ b/configure
> @@ -227,6 +227,8 @@ External library support:
>--enable-libdavs2enable AVS2 decoding via libdavs2 [no]
>--enable-libdc1394   enable IIDC-1394 grabbing using libdc1394
> and libraw1394 [no]
> +  --enable-libdvdnav   enable libdvdnav, needed for DVD demuxing [no]
> +  --enable-libdvdread   enable libdvdread, needed for DVD demuxing
> [no]
>--enable-libfdk-aac  enable AAC de/encoding via libfdk-aac [no]
>--enable-libfliteenable flite (voice synthesis) support via
> libflite [no]
>--enable-libfontconfig   enable libfontconfig, useful for drawtext
> filter [no]
> @@ -1806,6 +1808,8 @@ EXTERNAL_LIBRARY_GPL_LIST="
>  frei0r
>  libcdio
>  libdavs2
> +libdvdnav
> +libdvdread
>  librubberband
>  libvidstab
>  libx264
> @@ -3519,6 +3523,8 @@ dts_demuxer_select="dca_parser"
>  dtshd_demuxer_select="dca_parser"
>  dv_demuxer_select="dvprofile"
>  dv_muxer_select="dvprofile"
> +dvdvideo_demuxer_select="mpegps_demuxer"
> +dvdvideo_demuxer_deps="libdvdnav libdvdread"
>  dxa_demuxer_select="riffdec"
>  eac3_demuxer_select="ac3_parser"
>  evc_demuxer_select="evc_frame_merge_bsf evc_parser"
> @@ -6760,6 +6766,8 @@ enabled libdav1d  && require_pkg_config
> libdav1d "dav1d >= 0.5.0" "dav1d
>  enabled libdavs2  && require_pkg_config libdavs2 "davs2 >= 1.6.0"
> davs2.h davs2_decoder_open
>  enabled libdc1394 && require_pkg_config libdc1394 libdc1394-2
> dc1394/dc1394.h dc1394_new
>  enabled libdrm&& check_pkg_config libdrm libdrm xf86drm.h
> drmGetVersion
> +enabled libdvdnav && require_pkg_config libdvdnav "dvdnav >=
> 6.1.1" dvdnav/dvdnav.h dvdnav_open2
> +enabled libdvdread&& require_pkg_config libdvdread "dvdread >=
> 6.1.2" dvdread/dvd_reader.h DVDOpen2 -ldvdread
>  enabled libfdk_aac&& { check_pkg_config libfdk_aac fdk-aac
> "fdk-aac/aacenc_lib.h" aacEncOpen ||
> { require libfdk_aac fdk-aac/aacenc_lib.h
> aacEncOpen -lfdk-aac &&
>   warn "using libfdk without pkg-config";
> } }
> diff --git a/libavformat/Makefile b/libavformat/Makefile
> index 581e378d95..3c1cb21fe2 100644
> --- a/libavformat/Makefile
> +++ b/libavformat/Makefile
> @@ -192,6 +192,7 @@ OBJS-$(CONFIG_DTS_MUXER) += rawenc.o
>  OBJS-$(CONFIG_DV_MUXER)  += dvenc.o
>  OBJS-$(CONFIG_DVBSUB_DEMUXER)+= dvbsub.o rawdec.o
>  OBJS-$(CONFIG_DVBTXT_DEMUXER)+= dvbtxt.o rawdec.o
> +OBJS-$(CONFIG_DVDVIDEO_DEMUXER)  += dvdvideodec.o
>  OBJS-$(CONFIG_DXA_DEMUXER)   += dxa.o
>  OBJS-$(CONFIG_EA_CDATA_DEMUXER)  += eacdata.o
>  OBJS-$(CONFIG_EA_DEMUXER)+= electronicarts.o
> diff --git a/libavformat/allformats.c b/libavformat/allformats.c
> index ce6be5f04d..ea88d4c094 100644
> --- a/libavformat/allformats.c
> +++ b/libavformat/allformats.c
> @@ -150,6 +150,7 @@ extern const AVInputFormat  ff_dv_demuxer;
>  extern const FFOutputFormat ff_dv_muxer;
>  extern const AVInputFormat  ff_dvbsub_demuxer;
>  extern const AVInputFormat  ff_dvbtxt_demuxer;
> +extern const AVInputFormat  ff_dvdvideo_demuxer;
>  extern const AVInputFormat  ff_dxa_demuxer;
>  extern const AVInputFormat  ff_ea_demuxer;
>  extern const AVInputFormat  ff_ea_cdata_demuxer;
> diff --git a/libavformat/avlanguage.c b/libavformat/avlanguage.c
> index 782a58adb2..202d9aa835 100644
> --- a/libavformat/avlanguage.c
> +++ b/libavformat/avlanguage.c
> @@ -29,7 +29,7 @@ typedef struct LangEntry {
>  uint16_t next_equivalent;
>  } LangEntry;
>
> -static const uint16_t lang_table_counts[] = { 484, 20, 184 };
> +static const uint16_t lang_table_counts[] = { 484, 20, 190 };
>  static const uint16_t 

[FFmpeg-devel] [PATCH v3] dvdvideo: add DVD-Video demuxer, powered by libdvdnav and libdvdread

2024-01-10 Thread Marth64
Fixes for several authoring styles/discs.
ffmpeg CLI may report wrong output time and show progress strangely for some 
discs.
This is not reproducible prior to `fftools/ffmpeg: convert to a threaded 
architecture`
But, I am looking into it.

Signed-off-by: Marth64 
---
 Changelog |1 +
 configure |8 +
 libavformat/Makefile  |1 +
 libavformat/allformats.c  |1 +
 libavformat/avlanguage.c  |   10 +-
 libavformat/dvdvideodec.c | 1001 +
 6 files changed, 1020 insertions(+), 2 deletions(-)
 create mode 100644 libavformat/dvdvideodec.c

diff --git a/Changelog b/Changelog
index 5b2899d05b..1b377fed2f 100644
--- a/Changelog
+++ b/Changelog
@@ -18,6 +18,7 @@ version :
 - lavu/eval: introduce randomi() function in expressions
 - VVC decoder
 - fsync filter
+- DVD-Video demuxer, powered by libdvdnav and libdvdread
 
 version 6.1:
 - libaribcaption decoder
diff --git a/configure b/configure
index e87a09ce83..1f21f4f1c2 100755
--- a/configure
+++ b/configure
@@ -227,6 +227,8 @@ External library support:
   --enable-libdavs2enable AVS2 decoding via libdavs2 [no]
   --enable-libdc1394   enable IIDC-1394 grabbing using libdc1394
and libraw1394 [no]
+  --enable-libdvdnav   enable libdvdnav, needed for DVD demuxing [no]
+  --enable-libdvdread   enable libdvdread, needed for DVD demuxing [no]
   --enable-libfdk-aac  enable AAC de/encoding via libfdk-aac [no]
   --enable-libfliteenable flite (voice synthesis) support via libflite 
[no]
   --enable-libfontconfig   enable libfontconfig, useful for drawtext filter 
[no]
@@ -1806,6 +1808,8 @@ EXTERNAL_LIBRARY_GPL_LIST="
 frei0r
 libcdio
 libdavs2
+libdvdnav
+libdvdread
 librubberband
 libvidstab
 libx264
@@ -3519,6 +3523,8 @@ dts_demuxer_select="dca_parser"
 dtshd_demuxer_select="dca_parser"
 dv_demuxer_select="dvprofile"
 dv_muxer_select="dvprofile"
+dvdvideo_demuxer_select="mpegps_demuxer"
+dvdvideo_demuxer_deps="libdvdnav libdvdread"
 dxa_demuxer_select="riffdec"
 eac3_demuxer_select="ac3_parser"
 evc_demuxer_select="evc_frame_merge_bsf evc_parser"
@@ -6760,6 +6766,8 @@ enabled libdav1d  && require_pkg_config libdav1d 
"dav1d >= 0.5.0" "dav1d
 enabled libdavs2  && require_pkg_config libdavs2 "davs2 >= 1.6.0" 
davs2.h davs2_decoder_open
 enabled libdc1394 && require_pkg_config libdc1394 libdc1394-2 
dc1394/dc1394.h dc1394_new
 enabled libdrm&& check_pkg_config libdrm libdrm xf86drm.h 
drmGetVersion
+enabled libdvdnav && require_pkg_config libdvdnav "dvdnav >= 6.1.1" 
dvdnav/dvdnav.h dvdnav_open2
+enabled libdvdread&& require_pkg_config libdvdread "dvdread >= 6.1.2" 
dvdread/dvd_reader.h DVDOpen2 -ldvdread
 enabled libfdk_aac&& { check_pkg_config libfdk_aac fdk-aac 
"fdk-aac/aacenc_lib.h" aacEncOpen ||
{ require libfdk_aac fdk-aac/aacenc_lib.h 
aacEncOpen -lfdk-aac &&
  warn "using libfdk without pkg-config"; } }
diff --git a/libavformat/Makefile b/libavformat/Makefile
index 581e378d95..3c1cb21fe2 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -192,6 +192,7 @@ OBJS-$(CONFIG_DTS_MUXER) += rawenc.o
 OBJS-$(CONFIG_DV_MUXER)  += dvenc.o
 OBJS-$(CONFIG_DVBSUB_DEMUXER)+= dvbsub.o rawdec.o
 OBJS-$(CONFIG_DVBTXT_DEMUXER)+= dvbtxt.o rawdec.o
+OBJS-$(CONFIG_DVDVIDEO_DEMUXER)  += dvdvideodec.o
 OBJS-$(CONFIG_DXA_DEMUXER)   += dxa.o
 OBJS-$(CONFIG_EA_CDATA_DEMUXER)  += eacdata.o
 OBJS-$(CONFIG_EA_DEMUXER)+= electronicarts.o
diff --git a/libavformat/allformats.c b/libavformat/allformats.c
index ce6be5f04d..ea88d4c094 100644
--- a/libavformat/allformats.c
+++ b/libavformat/allformats.c
@@ -150,6 +150,7 @@ extern const AVInputFormat  ff_dv_demuxer;
 extern const FFOutputFormat ff_dv_muxer;
 extern const AVInputFormat  ff_dvbsub_demuxer;
 extern const AVInputFormat  ff_dvbtxt_demuxer;
+extern const AVInputFormat  ff_dvdvideo_demuxer;
 extern const AVInputFormat  ff_dxa_demuxer;
 extern const AVInputFormat  ff_ea_demuxer;
 extern const AVInputFormat  ff_ea_cdata_demuxer;
diff --git a/libavformat/avlanguage.c b/libavformat/avlanguage.c
index 782a58adb2..202d9aa835 100644
--- a/libavformat/avlanguage.c
+++ b/libavformat/avlanguage.c
@@ -29,7 +29,7 @@ typedef struct LangEntry {
 uint16_t next_equivalent;
 } LangEntry;
 
-static const uint16_t lang_table_counts[] = { 484, 20, 184 };
+static const uint16_t lang_table_counts[] = { 484, 20, 190 };
 static const uint16_t lang_table_offsets[] = { 0, 484, 504 };
 
 static const LangEntry lang_table[] = {
@@ -539,7 +539,7 @@ static const LangEntry lang_table[] = {
 /*0501*/ { "slk",  647 },
 /*0502*/ { "sqi",  652 },
 /*0503*/ { "zho",  686 },
-/*- AV_LANG_ISO639_1 entries (184) -*/
+/*- AV_LANG_ISO639_1