aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--multimedia/vlc/Makefile18
-rw-r--r--multimedia/vlc/files/patch-modules_codec_x264.c187
2 files changed, 186 insertions, 19 deletions
diff --git a/multimedia/vlc/Makefile b/multimedia/vlc/Makefile
index 45fdc7597e80..743d1d65e3cf 100644
--- a/multimedia/vlc/Makefile
+++ b/multimedia/vlc/Makefile
@@ -707,8 +707,8 @@ pre-install:
${MKDIR} ${FAKEDIR}
${TOUCH} -f ${PLIST}
.if !defined(WITHOUT_WXGTK)
- ${ECHO_CMD} "share/gnome/applications/vlc.desktop" >> ${PLIST}
- ${ECHO_CMD} "share/gnome/pixmaps/vlc.png" >> ${PLIST}
+ ${ECHO_CMD} "share/applications/vlc.desktop" >> ${PLIST}
+ ${ECHO_CMD} "share/pixmaps/vlc.png" >> ${PLIST}
.endif
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET} prefix=${FAKEDIR}
@@ -743,17 +743,19 @@ pre-install:
cd ${FAKEDIR}/mozilla && ${FIND} -s * | \
${SED} -e 's|^|lib/browser_plugins/|' >> ${PLIST}
.endif
+ ${ECHO_CMD} "@unexec ${RMDIR} %D/share/applications 2>/dev/null || ${TRUE}" >> ${PLIST}
+ ${ECHO_CMD} "@unexec ${RMDIR} %D/share/pixmaps 2>/dev/null || ${TRUE}" >> ${PLIST}
do-install:
.if !defined(WITHOUT_WXGTK)
- if [ ! -d ${PREFIX}/share/gnome/applications ]; then \
- ${MKDIR} ${PREFIX}/share/gnome/applications ; \
+ if [ ! -d ${PREFIX}/share/applications ]; then \
+ ${MKDIR} ${PREFIX}/share/applications ; \
fi
- ${INSTALL_DATA} ${FILESDIR}/vlc.desktop ${PREFIX}/share/gnome/applications
- if [ ! -d ${PREFIX}/share/gnome/pixmaps ]; then \
- ${MKDIR} ${PREFIX}/share/gnome/pixmaps ; \
+ ${INSTALL_DATA} ${FILESDIR}/vlc.desktop ${PREFIX}/share/applications
+ if [ ! -d ${PREFIX}/share/pixmaps ]; then \
+ ${MKDIR} ${PREFIX}/share/pixmaps ; \
fi
- ${INSTALL_DATA} ${FAKEDIR}/share/vlc/vlc48x48.png ${PREFIX}/share/gnome/pixmaps/vlc.png
+ ${INSTALL_DATA} ${FAKEDIR}/share/vlc/vlc48x48.png ${PREFIX}/share/pixmaps/vlc.png
.endif
@${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|' \
${FAKEDIR}/bin/vlc-config
diff --git a/multimedia/vlc/files/patch-modules_codec_x264.c b/multimedia/vlc/files/patch-modules_codec_x264.c
index bcc5caf376b7..07697fce1a2a 100644
--- a/multimedia/vlc/files/patch-modules_codec_x264.c
+++ b/multimedia/vlc/files/patch-modules_codec_x264.c
@@ -1,19 +1,34 @@
--- modules/codec/x264.c.orig Thu Nov 11 13:50:16 2004
-+++ modules/codec/x264.c Thu Apr 21 08:45:37 2005
++++ modules/codec/x264.c Sat May 21 16:14:56 2005
@@ -2,7 +2,7 @@
* x264.c: h264 video encoder
*****************************************************************************
* Copyright (C) 2004 VideoLAN
- * $Id: x264.c 9280 2004-11-11 12:31:27Z zorglub $
-+ * $Id: x264.c 10206 2005-03-08 13:15:56Z gbazin $
++ * $Id: x264.c 10990 2005-05-13 11:13:05Z gbazin $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
-@@ -62,17 +62,19 @@
+@@ -62,22 +62,43 @@
#define ANALYSE_TEXT N_("Analyse mode")
#define ANALYSE_LONGTEXT N_( "This selects the analysing mode.")
-#define KEYINT_TEXT N_("Sets maximum interval between I frames")
++#define TOLERANCE_TEXT N_("Bitrate tolerance")
++#define TOLERANCE_LONGTEXT N_( "Sets the allowed variance in average " \
++ "bitrate.")
++
++#define VBV_MAXRATE_TEXT N_("Maximum local bitrate")
++#define VBV_MAXRATE_LONGTEXT N_( "Sets a maximum local bitrate in kbits/s.")
++
++#define VBV_BUFSIZE_TEXT N_("Averaging period for the maximum local bitrate")
++#define VBV_BUFSIZE_LONGTEXT N_( "Sets an averaging preiod for the maximum " \
++ "local bitrate, in kbits/s.")
++
++#define VBV_INIT_TEXT N_("Initial buffer occupancy")
++#define VBV_INIT_LONGTEXT N_( "Sets the initial buffer occupancy as a " \
++ "fraction of the buffer size.")
++
+#define KEYINT_TEXT N_("Sets maximum interval between IDR-frames")
#define KEYINT_LONGTEXT N_( "Larger values save bits, thus improve quality "\
"for a given bitrate, at the cost of seeking precision." )
@@ -34,7 +49,45 @@
#define BFRAMES_TEXT N_("B frames")
#define BFRAMES_LONGTEXT N_( "Number of consecutive B-Frames between I and " \
-@@ -125,8 +129,8 @@
+ "P-frames." )
+
++#define BPYRAMID_TEXT N_("B pyramid")
++#define BPYRAMID_LONGTEXT N_( "Allows B-frames to be used as references for " \
++ "predicting other frames." )
++
+ #define FRAMEREF_TEXT N_("Number of previous frames used as predictors.")
+ #define FRAMEREF_LONGTEXT N_( "This is effective in Anime, but seems to " \
+ "make little difference in live-action source material. Some decoders " \
+@@ -92,6 +113,11 @@
+ "-1 disables scene-cut detection, so I-frames are be inserted only every "\
+ "other keyint frames, which probably leads to ugly encoding artifacts." )
+
++#define SUBPEL_TEXT N_("Sub-pixel refinement quality.")
++#define SUBPEL_LONGTEXT N_( "This parameter controls quality versus speed " \
++ "tradeoffs involved in the motion estimation decision process " \
++ "(lower = quicker and higher = better quality)." )
++
+ static char *enc_analyse_list[] =
+ { "", "all", "normal", "fast", "none" };
+ static char *enc_analyse_list_text[] =
+@@ -122,16 +150,33 @@
+ ANALYSE_LONGTEXT, VLC_FALSE );
+ change_string_list( enc_analyse_list, enc_analyse_list_text, 0 );
+
++ add_float( SOUT_CFG_PREFIX "tolerance", 1.0, NULL, TOLERANCE_TEXT,
++ TOLERANCE_LONGTEXT, VLC_FALSE );
++ change_float_range( 0, 100 );
++
++ add_integer( SOUT_CFG_PREFIX "vbv-maxrate", 0, NULL, VBV_MAXRATE_TEXT,
++ VBV_MAXRATE_LONGTEXT, VLC_FALSE );
++
++ add_integer( SOUT_CFG_PREFIX "vbv-bufsize", 0, NULL, VBV_BUFSIZE_TEXT,
++ VBV_BUFSIZE_LONGTEXT, VLC_FALSE );
++
++ add_float( SOUT_CFG_PREFIX "vbv-init", 0.9, NULL, VBV_INIT_TEXT,
++ VBV_INIT_LONGTEXT, VLC_FALSE );
++ change_float_range( 0, 1 );
++
add_integer( SOUT_CFG_PREFIX "keyint", 250, NULL, KEYINT_TEXT,
KEYINT_LONGTEXT, VLC_FALSE );
@@ -45,16 +98,98 @@
add_integer( SOUT_CFG_PREFIX "bframes", 0, NULL, BFRAMES_TEXT,
BFRAMES_LONGTEXT, VLC_FALSE );
-@@ -147,7 +151,7 @@
+ change_integer_range( 0, 16 );
+
++ add_bool( SOUT_CFG_PREFIX "bpyramid", 0, NULL, BPYRAMID_TEXT,
++ BPYRAMID_LONGTEXT, VLC_FALSE );
++
+ add_integer( SOUT_CFG_PREFIX "frameref", 1, NULL, FRAMEREF_TEXT,
+ FRAMEREF_LONGTEXT, VLC_FALSE );
+ change_integer_range( 1, 15 );
+@@ -140,6 +185,10 @@
+ SCENE_LONGTEXT, VLC_FALSE );
+ change_integer_range( -1, 100 );
+
++ add_integer( SOUT_CFG_PREFIX "subpel", 5, NULL, SUBPEL_TEXT,
++ SUBPEL_LONGTEXT, VLC_FALSE );
++ change_integer_range( 1, 5 );
++
+ vlc_module_end();
+
+ /*****************************************************************************
+@@ -147,7 +196,8 @@
*****************************************************************************/
static const char *ppsz_sout_options[] = {
"qp", "qp-min", "qp-max", "cabac", "loopfilter", "analyse",
- "keyint", "idrint", "bframes", "frameref", "scenecut", NULL
-+ "keyint", "keyint-min", "bframes", "frameref", "scenecut", NULL
++ "keyint", "keyint-min", "bframes", "bpyramid", "frameref", "scenecut",
++ "subpel", "tolerance", "vbv-maxrate", "vbv-bufsize", "vbv-init", NULL
};
static block_t *Encode( encoder_t *, picture_t * );
-@@ -236,10 +240,19 @@
+@@ -180,10 +230,19 @@
+ if( p_enc->fmt_in.video.i_width % 16 != 0 ||
+ p_enc->fmt_in.video.i_height % 16!= 0 )
+ {
+- msg_Warn( p_enc, "invalid size %ix%i",
+- p_enc->fmt_in.video.i_width,
+- p_enc->fmt_in.video.i_height );
+- return VLC_EGENERIC;
++ msg_Warn( p_enc, "size is not a multiple of 16 (%ix%i)",
++ p_enc->fmt_in.video.i_width, p_enc->fmt_in.video.i_height );
++
++ if( p_enc->fmt_in.video.i_width < 16 ||
++ p_enc->fmt_in.video.i_height < 16 )
++ {
++ msg_Err( p_enc, "video is too small to be cropped" );
++ return VLC_EGENERIC;
++ }
++
++ msg_Warn( p_enc, "cropping video to %ix%i",
++ p_enc->fmt_in.video.i_width >> 4 << 4,
++ p_enc->fmt_in.video.i_height >> 4 << 4 );
+ }
+
+ sout_CfgParse( p_enc, SOUT_CFG_PREFIX, ppsz_sout_options, p_enc->p_cfg );
+@@ -196,8 +255,8 @@
+ p_enc->p_sys = p_sys = malloc( sizeof( encoder_sys_t ) );
+
+ x264_param_default( &p_sys->param );
+- p_sys->param.i_width = p_enc->fmt_in.video.i_width;
+- p_sys->param.i_height = p_enc->fmt_in.video.i_height;
++ p_sys->param.i_width = p_enc->fmt_in.video.i_width >> 4 << 4;
++ p_sys->param.i_height = p_enc->fmt_in.video.i_height >> 4 << 4;
+
+ var_Get( p_enc, SOUT_CFG_PREFIX "qp-min", &val );
+ if( val.i_int >= 1 && val.i_int <= 51 ) i_qmin = val.i_int;
+@@ -224,9 +283,26 @@
+ #if X264_BUILD >= 0x000a
+ p_sys->param.rc.b_cbr = 1;
+ p_sys->param.rc.i_bitrate = p_enc->fmt_out.i_bitrate / 1000;
++
++#if X264_BUILD >= 24
++ var_Get( p_enc, SOUT_CFG_PREFIX "tolerance", &val );
++ p_sys->param.rc.f_rate_tolerance = val.f_float;
++
++ var_Get( p_enc, SOUT_CFG_PREFIX "vbv-maxrate", &val );
++ p_sys->param.rc.i_vbv_max_bitrate = val.i_int;
++
++ var_Get( p_enc, SOUT_CFG_PREFIX "vbv-bufsize", &val );
++ p_sys->param.rc.i_vbv_buffer_size = val.i_int;
++ if( !val.i_int )
++ p_sys->param.rc.i_vbv_buffer_size = p_sys->param.rc.i_bitrate;
++
++ var_Get( p_enc, SOUT_CFG_PREFIX "vbv-init", &val );
++ p_sys->param.rc.f_vbv_buffer_init = val.f_float;
++#else
+ p_sys->param.rc.i_rc_buffer_size = p_sys->param.rc.i_bitrate;
+ p_sys->param.rc.i_rc_init_buffer = p_sys->param.rc.i_bitrate / 4;
+ #endif
++#endif
+ }
+
+ var_Get( p_enc, SOUT_CFG_PREFIX "cabac", &val );
+@@ -236,14 +312,28 @@
p_sys->param.b_deblocking_filter = val.b_bool;
var_Get( p_enc, SOUT_CFG_PREFIX "keyint", &val );
@@ -75,15 +210,45 @@
var_Get( p_enc, SOUT_CFG_PREFIX "bframes", &val );
if( val.i_int >= 0 && val.i_int <= 16 ) p_sys->param.i_bframe = val.i_int;
-@@ -273,6 +286,7 @@
+
++#if X264_BUILD >= 22
++ var_Get( p_enc, SOUT_CFG_PREFIX "bpyramid", &val );
++ p_sys->param.b_bframe_pyramid = val.b_bool;
++#endif
++
+ var_Get( p_enc, SOUT_CFG_PREFIX "frameref", &val );
+ if( val.i_int > 0 && val.i_int <= 15 )
+ p_sys->param.i_frame_reference = val.i_int;
+@@ -254,6 +344,12 @@
+ p_sys->param.i_scenecut_threshold = val.i_int;
+ #endif
+
++#if X264_BUILD >= 22
++ var_Get( p_enc, SOUT_CFG_PREFIX "subpel", &val );
++ if( val.i_int >= 1 && val.i_int <= 5 )
++ p_sys->param.analyse.i_subpel_refine = val.i_int;
++#endif
++
+ var_Get( p_enc, SOUT_CFG_PREFIX "analyse", &val );
+ if( !strcmp( val.psz_string, "none" ) )
+ {
+@@ -270,9 +366,14 @@
+ }
+ else if( !strcmp( val.psz_string, "all" ) )
+ {
++#ifndef X264_ANALYSE_BSUB16x16
++# define X264_ANALYSE_BSUB16x16 0
++#endif
p_sys->param.analyse.inter =
- X264_ANALYSE_I4x4 | X264_ANALYSE_PSUB16x16 | X264_ANALYSE_PSUB8x8;
+- X264_ANALYSE_I4x4 | X264_ANALYSE_PSUB16x16 | X264_ANALYSE_PSUB8x8;
++ X264_ANALYSE_I4x4 | X264_ANALYSE_PSUB16x16 | X264_ANALYSE_PSUB8x8 |
++ X264_ANALYSE_BSUB16x16;
}
+ if( val.psz_string ) free( val.psz_string );
if( p_enc->fmt_in.video.i_aspect > 0 )
{
-@@ -347,12 +361,10 @@
+@@ -347,12 +448,10 @@
static block_t *Encode( encoder_t *p_enc, picture_t *p_pict )
{
encoder_sys_t *p_sys = p_enc->p_sys;
@@ -98,7 +263,7 @@
/* init pic */
memset( &pic, 0, sizeof( x264_picture_t ) );
-@@ -364,7 +376,11 @@
+@@ -364,7 +463,11 @@
pic.img.i_stride[i] = p_pict->p[i].i_pitch;
}