X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fcodec%2Fffmpeg%2Fffmpeg.h;h=451c4d11117cc30fdaa351542667c154516a92dd;hb=6ee1e193fd896ab9a4729fde14f009d9ce629815;hp=c6cdcc6f6ae2c74b769eec8f523d5f2ac0d7251b;hpb=33bf3f9a1d3a0a112c2244a4cd73a09df698ec8f;p=vlc diff --git a/modules/codec/ffmpeg/ffmpeg.h b/modules/codec/ffmpeg/ffmpeg.h index c6cdcc6f6a..451c4d1111 100644 --- a/modules/codec/ffmpeg/ffmpeg.h +++ b/modules/codec/ffmpeg/ffmpeg.h @@ -1,7 +1,7 @@ /***************************************************************************** * ffmpeg.h: decoder using the ffmpeg library ***************************************************************************** - * Copyright (C) 2001 VideoLAN + * Copyright (C) 2001 the VideoLAN team * $Id$ * * Authors: Laurent Aimar @@ -18,16 +18,10 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#include "codecs.h" /* BITMAPINFOHEADER */ - -#if LIBAVCODEC_BUILD >= 4663 -# define LIBAVCODEC_PP -#else -# undef LIBAVCODEC_PP -#endif +#include /* BITMAPINFOHEADER */ struct picture_t; struct AVFrame; @@ -35,19 +29,22 @@ struct AVCodecContext; struct AVCodec; void E_(InitLibavcodec)( vlc_object_t * ); -int E_(GetFfmpegCodec) ( vlc_fourcc_t, int *, int *, char ** ); -int E_(GetVlcFourcc) ( int, int *, vlc_fourcc_t *, char ** ); +void E_(LibavcodecCallback)( void *p_opaque, int i_level, + const char *psz_format, va_list va ); +int E_(GetFfmpegCodec) ( vlc_fourcc_t, int *, int *, const char ** ); +int E_(GetVlcFourcc) ( int, int *, vlc_fourcc_t *, const char ** ); int E_(GetFfmpegChroma)( vlc_fourcc_t ); +vlc_fourcc_t E_(GetVlcChroma)( int ); /* Video decoder module */ -int E_( InitVideoDec )( decoder_t *, AVCodecContext *, AVCodec *, - int, char * ); +int E_( InitVideoDec )( decoder_t *, struct AVCodecContext *, struct AVCodec *, + int, const char * ); void E_( EndVideoDec ) ( decoder_t * ); picture_t *E_( DecodeVideo ) ( decoder_t *, block_t ** ); /* Audio decoder module */ -int E_( InitAudioDec )( decoder_t *, AVCodecContext *, AVCodec *, - int, char * ); +int E_( InitAudioDec )( decoder_t *, struct AVCodecContext *, struct AVCodec *, + int, const char * ); void E_( EndAudioDec ) ( decoder_t * ); aout_buffer_t *E_( DecodeAudio ) ( decoder_t *, block_t ** ); @@ -67,51 +64,100 @@ void E_(CloseAudioEncoder)( vlc_object_t * ); int E_(OpenDemux) ( vlc_object_t * ); void E_(CloseDemux)( vlc_object_t * ); +/* Mux module */ +int E_(OpenMux) ( vlc_object_t * ); +void E_(CloseMux)( vlc_object_t * ); + +/* Video filter module */ +int E_(OpenFilter)( vlc_object_t * ); +int E_(OpenCropPadd)( vlc_object_t * ); +void E_(CloseFilter)( vlc_object_t * ); +int E_(OpenDeinterlace)( vlc_object_t * ); +void E_(CloseDeinterlace)( vlc_object_t * ); +int E_(OpenScaler)( vlc_object_t * ); +void E_(CloseScaler)( vlc_object_t * ); + /* Postprocessing module */ void *E_(OpenPostproc)( decoder_t *, vlc_bool_t * ); int E_(InitPostproc)( decoder_t *, void *, int, int, int ); -int E_(PostprocPict)( decoder_t *, void *, picture_t *, AVFrame * ); +int E_(PostprocPict)( decoder_t *, void *, picture_t *, struct AVFrame * ); void E_(ClosePostproc)( decoder_t *, void * ); /***************************************************************************** * Module descriptor help strings *****************************************************************************/ #define DR_TEXT N_("Direct rendering") +/* FIXME Does somebody who knows what it does, explain */ +#define DR_LONGTEXT N_("Direct rendering") #define ERROR_TEXT N_("Error resilience") #define ERROR_LONGTEXT N_( \ - "ffmpeg can make error resiliences. \n" \ - "Nevertheless, with a buggy encoder (like ISO MPEG-4 encoder from M$) " \ - "this will produce a lot of errors.\n" \ - "Valid range is -1 to 99 (-1 disables all errors resiliences).") + "Ffmpeg can do error resilience.\n" \ + "However, with a buggy encoder (such as the ISO MPEG-4 encoder from M$) " \ + "this can produce a lot of errors.\n" \ + "Valid values range from 0 to 4 (0 disables all errors resilience).") #define BUGS_TEXT N_("Workaround bugs") #define BUGS_LONGTEXT N_( \ - "Try to fix some bugs\n" \ + "Try to fix some bugs:\n" \ "1 autodetect\n" \ "2 old msmpeg4\n" \ "4 xvid interlaced\n" \ "8 ump4 \n" \ "16 no padding\n" \ "32 ac vlc\n" \ - "64 Qpel chroma") + "64 Qpel chroma.\n" \ + "This must be the sum of the values. For example, to fix \"ac vlc\" and " \ + "\"ump4\", enter 40.") #define HURRYUP_TEXT N_("Hurry up") #define HURRYUP_LONGTEXT N_( \ - "Allow the decoder to partially decode or skip frame(s) " \ + "The decoder can partially decode or skip frame(s) " \ "when there is not enough time. It's useful with low CPU power " \ "but it can produce distorted pictures.") +#define SKIP_FRAME_TEXT N_("Skip frame (default=0)") +#define SKIP_FRAME_LONGTEXT N_( \ + "Force skipping of frames to speed up decoding " \ + "(-1=None, 0=Default, 1=B-frames, 2=P-frames, 3=B+P frames, 4=all frames)." ) + +#define SKIP_IDCT_TEXT N_("Skip idct (default=0)") +#define SKIP_IDCT_LONGTEXT N_( \ + "Force skipping of idct to speed up decoding for frame types" \ + "(-1=None, 0=Default, 1=B-frames, 2=P-frames, 3=B+P frames, 4=all frames)." ) + #define PP_Q_TEXT N_("Post processing quality") #define PP_Q_LONGTEXT N_( \ "Quality of post processing. Valid range is 0 to 6\n" \ "Higher levels require considerable more CPU power, but produce " \ "better looking pictures." ) -#define LIBAVCODEC_PP_TEXT N_("ffmpeg postproc filter chains") +#define DEBUG_TEXT N_( "Debug mask" ) +#define DEBUG_LONGTEXT N_( "Set ffmpeg debug mask" ) + +/* TODO: Use a predefined list, with 0,1,2,4,7 */ +#define VISMV_TEXT N_( "Visualize motion vectors" ) +#define VISMV_LONGTEXT N_( \ + "You can overlay the motion vectors (arrows showing how the images move) "\ + "on the image. This value is a mask, based on these values:\n"\ + "1 - visualize forward predicted MVs of P frames\n" \ + "2 - visualize forward predicted MVs of B frames\n" \ + "4 - visualize backward predicted MVs of B frames\n" \ + "To visualize all vectors, the value should be 7." ) + +#define LOWRES_TEXT N_( "Low resolution decoding" ) +#define LOWRES_LONGTEXT N_( "Only decode a low resolution version of " \ + "the video. This requires less processing power" ) + +#define SKIPLOOPF_TEXT N_( "Skip the loop filter for H.264 decoding" ) +#define SKIPLOOPF_LONGTEXT N_( "Skipping the loop filter (aka deblocking) " \ + "usually has a detrimental effect on quality. However it provides a big " \ + "speedup for high definition streams." ) + +#define LIBAVCODEC_PP_TEXT N_("FFmpeg post processing filter chains") /* FIXME (cut/past from ffmpeg */ #define LIBAVCODEC_PP_LONGTEXT \ -"[: