h263/p encoder: add 'structured_slices' private option.
authorAnton Khirnov <anton@khirnov.net>
Sat, 27 Aug 2011 08:16:14 +0000 (10:16 +0200)
committerAnton Khirnov <anton@khirnov.net>
Wed, 31 Aug 2011 11:28:26 +0000 (13:28 +0200)
Deprecate CODEC_FLAG_H263P_SLICE_STRUCT

libavcodec/avcodec.h
libavcodec/mpegvideo_enc.c
libavcodec/options.c

index c22c98f59023eefa29e886f590205afc735838c9..950e32f2388379d7cc503ca4a14cc0fb45290cdb 100644 (file)
@@ -609,7 +609,9 @@ typedef struct RcOverride{
 #define CODEC_FLAG_OBMC           0x00000001 ///< OBMC
 #endif
 #define CODEC_FLAG_LOOP_FILTER    0x00000800 ///< loop filter
+#if FF_API_MPEGVIDEO_GLOBAL_OPTS
 #define CODEC_FLAG_H263P_SLICE_STRUCT 0x10000000
+#endif
 #define CODEC_FLAG_INTERLACED_ME  0x20000000 ///< interlaced motion estimation
 #define CODEC_FLAG_SVCD_SCAN_OFFSET 0x40000000 ///< Will reserve space for SVCD scan offset user data.
 #define CODEC_FLAG_CLOSED_GOP     0x80000000
index 9623bb8265d9f81f6830af526f6e87e5786ac733..809ede1d9a391cddbcdc27ea943c5bd29ef32394 100644 (file)
@@ -612,12 +612,13 @@ av_cold int MPV_encode_init(AVCodecContext *avctx)
             s->umvplus = 1;
         if (avctx->flags & CODEC_FLAG_H263P_AIV)
             s->alt_inter_vlc = 1;
+        if (avctx->flags & CODEC_FLAG_H263P_SLICE_STRUCT)
+            s->h263_slice_structured = 1;
 #endif
         s->h263_aic= (avctx->flags & CODEC_FLAG_AC_PRED) ? 1:0;
         s->modified_quant= s->h263_aic;
         s->loop_filter= (avctx->flags & CODEC_FLAG_LOOP_FILTER) ? 1:0;
         s->unrestricted_mv= s->obmc || s->loop_filter || s->umvplus;
-        s->h263_slice_structured= (s->flags & CODEC_FLAG_H263P_SLICE_STRUCT) ? 1:0;
 
         /* /Fx */
         /* These are just to be sure */
@@ -3787,6 +3788,7 @@ int dct_quantize_c(MpegEncContext *s,
 #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
 static const AVOption h263_options[] = {
     { "obmc",         "use overlapped block motion compensation.", OFFSET(obmc), FF_OPT_TYPE_INT, { 0 }, 0, 1, VE },
+    { "structured_slices","Write slice start position at every GOB header instead of just GOB number.", OFFSET(h263_slice_structured), FF_OPT_TYPE_INT, { 0 }, 0, 1, VE},
     { NULL },
 };
 
@@ -3814,6 +3816,7 @@ static const AVOption h263p_options[] = {
     { "umv",        "Use unlimited motion vectors.",    OFFSET(umvplus), FF_OPT_TYPE_INT, { 0 }, 0, 1, VE },
     { "aiv",        "Use alternative inter VLC.",       OFFSET(alt_inter_vlc), FF_OPT_TYPE_INT, { 0 }, 0, 1, VE },
     { "obmc",       "use overlapped block motion compensation.", OFFSET(obmc), FF_OPT_TYPE_INT, { 0 }, 0, 1, VE },
+    { "structured_slices", "Write slice start position at every GOB header instead of just GOB number.", OFFSET(h263_slice_structured), FF_OPT_TYPE_INT, { 0 }, 0, 1, VE},
     { NULL },
 };
 static const AVClass h263p_class = {
index 8ac3d959fe00510a7c0e996650fb3e6fb0e10616..5035d9f32fc7f3b40efe90243e5c24a76dc3298f 100644 (file)
@@ -112,8 +112,8 @@ static const AVOption options[]={
 {"qprd", "use rate distortion optimization for qp selection", 0, FF_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_QP_RD }, INT_MIN, INT_MAX, V|E, "flags"},
 #if FF_API_MPEGVIDEO_GLOBAL_OPTS
 {"aiv", "h263 alternative inter vlc", 0, FF_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_H263P_AIV }, INT_MIN, INT_MAX, V|E, "flags"},
-#endif
 {"slice", NULL, 0, FF_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_H263P_SLICE_STRUCT }, INT_MIN, INT_MAX, V|E, "flags"},
+#endif
 {"ilme", "interlaced motion estimation", 0, FF_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_INTERLACED_ME }, INT_MIN, INT_MAX, V|E, "flags"},
 {"scan_offset", "will reserve space for svcd scan offset user data", 0, FF_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_SVCD_SCAN_OFFSET }, INT_MIN, INT_MAX, V|E, "flags"},
 {"cgop", "closed gop", 0, FF_OPT_TYPE_CONST, {.dbl = CODEC_FLAG_CLOSED_GOP }, INT_MIN, INT_MAX, V|E, "flags"},