[FFmpeg-cvslog] libx264: handle closed GOP codec flag

Jindrich Makovicka git at videolan.org
Wed May 18 05:59:21 CEST 2011


ffmpeg | branch: master | Jindrich Makovicka <jindrich.makovicka at nangu.tv> | Tue May 10 15:11:45 2011 +0200| [e25c67108a77b2dbf13de1339b5314d07e3ffa02] | committer: Anton Khirnov

libx264: handle closed GOP codec flag

Also update libx264 presets to keep closed gop as default.

Signed-off-by: Jindrich Makovicka <makovick at gmail.com>
Signed-off-by: Anton Khirnov <anton at khirnov.net>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e25c67108a77b2dbf13de1339b5314d07e3ffa02
---

 configure                                      |    4 ++--
 ffpresets/libx264-fast.ffpreset                |    2 +-
 ffpresets/libx264-fast_firstpass.ffpreset      |    2 +-
 ffpresets/libx264-faster.ffpreset              |    2 +-
 ffpresets/libx264-faster_firstpass.ffpreset    |    2 +-
 ffpresets/libx264-lossless_fast.ffpreset       |    2 +-
 ffpresets/libx264-lossless_max.ffpreset        |    2 +-
 ffpresets/libx264-lossless_medium.ffpreset     |    2 +-
 ffpresets/libx264-lossless_slow.ffpreset       |    2 +-
 ffpresets/libx264-lossless_slower.ffpreset     |    2 +-
 ffpresets/libx264-lossless_ultrafast.ffpreset  |    2 +-
 ffpresets/libx264-medium.ffpreset              |    2 +-
 ffpresets/libx264-medium_firstpass.ffpreset    |    2 +-
 ffpresets/libx264-placebo.ffpreset             |    2 +-
 ffpresets/libx264-placebo_firstpass.ffpreset   |    2 +-
 ffpresets/libx264-slow.ffpreset                |    2 +-
 ffpresets/libx264-slow_firstpass.ffpreset      |    2 +-
 ffpresets/libx264-slower.ffpreset              |    2 +-
 ffpresets/libx264-slower_firstpass.ffpreset    |    2 +-
 ffpresets/libx264-superfast.ffpreset           |    2 +-
 ffpresets/libx264-superfast_firstpass.ffpreset |    2 +-
 ffpresets/libx264-ultrafast.ffpreset           |    2 +-
 ffpresets/libx264-ultrafast_firstpass.ffpreset |    2 +-
 ffpresets/libx264-veryfast.ffpreset            |    2 +-
 ffpresets/libx264-veryfast_firstpass.ffpreset  |    2 +-
 ffpresets/libx264-veryslow.ffpreset            |    2 +-
 ffpresets/libx264-veryslow_firstpass.ffpreset  |    2 +-
 libavcodec/libx264.c                           |    2 ++
 28 files changed, 30 insertions(+), 28 deletions(-)

diff --git a/configure b/configure
index d6a5d69..5b81e0b 100755
--- a/configure
+++ b/configure
@@ -2891,8 +2891,8 @@ enabled libvpx     && {
     enabled libvpx_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_enc_init_ver -lvpx ||
                                 die "ERROR: libvpx encoder version must be >=0.9.1"; } }
 enabled libx264    && require  libx264 x264.h x264_encoder_encode -lx264 &&
-                      { check_cpp_condition x264.h "X264_BUILD >= 99" ||
-                        die "ERROR: libx264 version must be >= 0.99."; }
+                      { check_cpp_condition x264.h "X264_BUILD >= 115" ||
+                        die "ERROR: libx264 version must be >= 0.115."; }
 enabled libxavs    && require  libxavs xavs.h xavs_encoder_encode -lxavs
 enabled libxvid    && require  libxvid xvid.h xvid_global -lxvidcore
 enabled mlib       && require  mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
diff --git a/ffpresets/libx264-fast.ffpreset b/ffpresets/libx264-fast.ffpreset
index 0fc1f22..6520133 100644
--- a/ffpresets/libx264-fast.ffpreset
+++ b/ffpresets/libx264-fast.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partb8x8
 me_method=hex
diff --git a/ffpresets/libx264-fast_firstpass.ffpreset b/ffpresets/libx264-fast_firstpass.ffpreset
index cdcbbbf..6fdb4b9 100644
--- a/ffpresets/libx264-fast_firstpass.ffpreset
+++ b/ffpresets/libx264-fast_firstpass.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=-parti8x8-parti4x4-partp8x8-partb8x8
 me_method=dia
diff --git a/ffpresets/libx264-faster.ffpreset b/ffpresets/libx264-faster.ffpreset
index 3156cd8..52efc1a 100644
--- a/ffpresets/libx264-faster.ffpreset
+++ b/ffpresets/libx264-faster.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partb8x8
 me_method=hex
diff --git a/ffpresets/libx264-faster_firstpass.ffpreset b/ffpresets/libx264-faster_firstpass.ffpreset
index 9bcf18a..41a87fb 100644
--- a/ffpresets/libx264-faster_firstpass.ffpreset
+++ b/ffpresets/libx264-faster_firstpass.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=-parti8x8-parti4x4-partp8x8-partb8x8
 me_method=dia
diff --git a/ffpresets/libx264-lossless_fast.ffpreset b/ffpresets/libx264-lossless_fast.ffpreset
index b7696b5..49b9ed1 100644
--- a/ffpresets/libx264-lossless_fast.ffpreset
+++ b/ffpresets/libx264-lossless_fast.ffpreset
@@ -1,5 +1,5 @@
 coder=0
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=-parti8x8+parti4x4+partp8x8-partp4x4-partb8x8
 me_method=hex
diff --git a/ffpresets/libx264-lossless_max.ffpreset b/ffpresets/libx264-lossless_max.ffpreset
index 75c387f..f32d7b4 100644
--- a/ffpresets/libx264-lossless_max.ffpreset
+++ b/ffpresets/libx264-lossless_max.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partp4x4-partb8x8
 me_method=esa
diff --git a/ffpresets/libx264-lossless_medium.ffpreset b/ffpresets/libx264-lossless_medium.ffpreset
index 116e334..0b84612 100644
--- a/ffpresets/libx264-lossless_medium.ffpreset
+++ b/ffpresets/libx264-lossless_medium.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=-parti8x8+parti4x4+partp8x8+partp4x4-partb8x8
 me_method=hex
diff --git a/ffpresets/libx264-lossless_slow.ffpreset b/ffpresets/libx264-lossless_slow.ffpreset
index 0d496f6..857d3d1 100644
--- a/ffpresets/libx264-lossless_slow.ffpreset
+++ b/ffpresets/libx264-lossless_slow.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partp4x4-partb8x8
 me_method=umh
diff --git a/ffpresets/libx264-lossless_slower.ffpreset b/ffpresets/libx264-lossless_slower.ffpreset
index 672e0cd..ef0609f 100644
--- a/ffpresets/libx264-lossless_slower.ffpreset
+++ b/ffpresets/libx264-lossless_slower.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partp4x4-partb8x8
 me_method=umh
diff --git a/ffpresets/libx264-lossless_ultrafast.ffpreset b/ffpresets/libx264-lossless_ultrafast.ffpreset
index a2eda65..4cc84f1 100644
--- a/ffpresets/libx264-lossless_ultrafast.ffpreset
+++ b/ffpresets/libx264-lossless_ultrafast.ffpreset
@@ -1,5 +1,5 @@
 coder=0
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=-parti8x8-parti4x4-partp8x8-partp4x4-partb8x8
 me_method=dia
diff --git a/ffpresets/libx264-medium.ffpreset b/ffpresets/libx264-medium.ffpreset
index 3c90ec5..6859952 100644
--- a/ffpresets/libx264-medium.ffpreset
+++ b/ffpresets/libx264-medium.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partb8x8
 me_method=hex
diff --git a/ffpresets/libx264-medium_firstpass.ffpreset b/ffpresets/libx264-medium_firstpass.ffpreset
index 2ad0a9c..ca304ee 100644
--- a/ffpresets/libx264-medium_firstpass.ffpreset
+++ b/ffpresets/libx264-medium_firstpass.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=-parti8x8-parti4x4-partp8x8-partb8x8
 me_method=dia
diff --git a/ffpresets/libx264-placebo.ffpreset b/ffpresets/libx264-placebo.ffpreset
index 9f4719f..7923a76 100644
--- a/ffpresets/libx264-placebo.ffpreset
+++ b/ffpresets/libx264-placebo.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partp4x4+partb8x8
 me_method=tesa
diff --git a/ffpresets/libx264-placebo_firstpass.ffpreset b/ffpresets/libx264-placebo_firstpass.ffpreset
index 9f4719f..7923a76 100644
--- a/ffpresets/libx264-placebo_firstpass.ffpreset
+++ b/ffpresets/libx264-placebo_firstpass.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partp4x4+partb8x8
 me_method=tesa
diff --git a/ffpresets/libx264-slow.ffpreset b/ffpresets/libx264-slow.ffpreset
index dabe0ae..fcbef4b 100644
--- a/ffpresets/libx264-slow.ffpreset
+++ b/ffpresets/libx264-slow.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partb8x8
 me_method=umh
diff --git a/ffpresets/libx264-slow_firstpass.ffpreset b/ffpresets/libx264-slow_firstpass.ffpreset
index 4af64db..74f87b0 100644
--- a/ffpresets/libx264-slow_firstpass.ffpreset
+++ b/ffpresets/libx264-slow_firstpass.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=-parti8x8-parti4x4-partp8x8-partb8x8
 me_method=dia
diff --git a/ffpresets/libx264-slower.ffpreset b/ffpresets/libx264-slower.ffpreset
index 239ee68..741d21f 100644
--- a/ffpresets/libx264-slower.ffpreset
+++ b/ffpresets/libx264-slower.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partp4x4+partb8x8
 me_method=umh
diff --git a/ffpresets/libx264-slower_firstpass.ffpreset b/ffpresets/libx264-slower_firstpass.ffpreset
index 4b5b420..0be886a 100644
--- a/ffpresets/libx264-slower_firstpass.ffpreset
+++ b/ffpresets/libx264-slower_firstpass.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=-parti8x8-parti4x4-partp8x8-partb8x8
 me_method=dia
diff --git a/ffpresets/libx264-superfast.ffpreset b/ffpresets/libx264-superfast.ffpreset
index fb2ab8c..7f0f50b 100644
--- a/ffpresets/libx264-superfast.ffpreset
+++ b/ffpresets/libx264-superfast.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4-partp8x8-partb8x8
 me_method=dia
diff --git a/ffpresets/libx264-superfast_firstpass.ffpreset b/ffpresets/libx264-superfast_firstpass.ffpreset
index 55ff9a2..87b4f29 100644
--- a/ffpresets/libx264-superfast_firstpass.ffpreset
+++ b/ffpresets/libx264-superfast_firstpass.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=-parti8x8-parti4x4-partp8x8-partb8x8
 me_method=dia
diff --git a/ffpresets/libx264-ultrafast.ffpreset b/ffpresets/libx264-ultrafast.ffpreset
index 28dc0eb..561191e 100644
--- a/ffpresets/libx264-ultrafast.ffpreset
+++ b/ffpresets/libx264-ultrafast.ffpreset
@@ -1,5 +1,5 @@
 coder=0
-flags=-loop
+flags=-loop+cgop
 cmp=+chroma
 partitions=-parti8x8-parti4x4-partp8x8-partb8x8
 me_method=dia
diff --git a/ffpresets/libx264-ultrafast_firstpass.ffpreset b/ffpresets/libx264-ultrafast_firstpass.ffpreset
index 28dc0eb..561191e 100644
--- a/ffpresets/libx264-ultrafast_firstpass.ffpreset
+++ b/ffpresets/libx264-ultrafast_firstpass.ffpreset
@@ -1,5 +1,5 @@
 coder=0
-flags=-loop
+flags=-loop+cgop
 cmp=+chroma
 partitions=-parti8x8-parti4x4-partp8x8-partb8x8
 me_method=dia
diff --git a/ffpresets/libx264-veryfast.ffpreset b/ffpresets/libx264-veryfast.ffpreset
index bfa3d8f..d8c7f7a 100644
--- a/ffpresets/libx264-veryfast.ffpreset
+++ b/ffpresets/libx264-veryfast.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partb8x8
 me_method=hex
diff --git a/ffpresets/libx264-veryfast_firstpass.ffpreset b/ffpresets/libx264-veryfast_firstpass.ffpreset
index ac2332d..7b2a1e9 100644
--- a/ffpresets/libx264-veryfast_firstpass.ffpreset
+++ b/ffpresets/libx264-veryfast_firstpass.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=-parti8x8-parti4x4-partp8x8-partb8x8
 me_method=dia
diff --git a/ffpresets/libx264-veryslow.ffpreset b/ffpresets/libx264-veryslow.ffpreset
index e07aeb8..8233365 100644
--- a/ffpresets/libx264-veryslow.ffpreset
+++ b/ffpresets/libx264-veryslow.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=+parti8x8+parti4x4+partp8x8+partp4x4+partb8x8
 me_method=umh
diff --git a/ffpresets/libx264-veryslow_firstpass.ffpreset b/ffpresets/libx264-veryslow_firstpass.ffpreset
index e17c04b..2bbf473 100644
--- a/ffpresets/libx264-veryslow_firstpass.ffpreset
+++ b/ffpresets/libx264-veryslow_firstpass.ffpreset
@@ -1,5 +1,5 @@
 coder=1
-flags=+loop
+flags=+loop+cgop
 cmp=+chroma
 partitions=-parti8x8-parti4x4-partp8x8-partb8x8
 me_method=dia
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index bf5cbc5..e5fac00 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -298,6 +298,8 @@ static av_cold int X264_init(AVCodecContext *avctx)
 
     x4->params.b_interlaced   = avctx->flags & CODEC_FLAG_INTERLACED_DCT;
 
+    x4->params.b_open_gop     = !(avctx->flags & CODEC_FLAG_CLOSED_GOP);
+
     x4->params.i_slice_count  = avctx->slices;
 
     x4->params.vui.b_fullrange = avctx->pix_fmt == PIX_FMT_YUVJ420P;



More information about the ffmpeg-cvslog mailing list