Commit 2b9dfff8 authored by Laurent Aimar's avatar Laurent Aimar

* all: modified files for video transcoding. Still needed configure.ac.in

parent 412d64b1
...@@ -160,6 +160,7 @@ HEADERS_include = \ ...@@ -160,6 +160,7 @@ HEADERS_include = \
include/darwin_specific.h \ include/darwin_specific.h \
include/codecs.h \ include/codecs.h \
include/error.h \ include/error.h \
include/encoder.h \
include/input_ext-dec.h \ include/input_ext-dec.h \
include/input_ext-intf.h \ include/input_ext-intf.h \
include/input_ext-plugins.h \ include/input_ext-plugins.h \
......
...@@ -36,6 +36,8 @@ EXTRA_DIST = \ ...@@ -36,6 +36,8 @@ EXTRA_DIST = \
demux/mpeg/Modules.am \ demux/mpeg/Modules.am \
demux/util/Modules.am \ demux/util/Modules.am \
demux/wav/Modules.am \ demux/wav/Modules.am \
encoder/Modules.am \
encoder/ffmpeg/Modules.am \
gui/beos/Modules.am \ gui/beos/Modules.am \
gui/familiar/Modules.am \ gui/familiar/Modules.am \
gui/gtk/Modules.am \ gui/gtk/Modules.am \
......
...@@ -5,3 +5,4 @@ SOURCES_glide = modules/video_output/glide.c ...@@ -5,3 +5,4 @@ SOURCES_glide = modules/video_output/glide.c
SOURCES_vout_sdl = modules/video_output/sdl.c SOURCES_vout_sdl = modules/video_output/sdl.c
SOURCES_svgalib = modules/video_output/svgalib.c SOURCES_svgalib = modules/video_output/svgalib.c
SOURCES_wingdi = modules/video_output/wingdi.c SOURCES_wingdi = modules/video_output/wingdi.c
SOURCES_vout_encoder = modules/video_output/encoder.c
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* input_dec.c: Functions for the management of decoders * input_dec.c: Functions for the management of decoders
***************************************************************************** *****************************************************************************
* Copyright (C) 1999-2001 VideoLAN * Copyright (C) 1999-2001 VideoLAN
* $Id: input_dec.c,v 1.55 2003/01/07 21:49:01 fenrir Exp $ * $Id: input_dec.c,v 1.56 2003/01/22 10:44:50 fenrir Exp $
* *
* Authors: Christophe Massiot <massiot@via.ecp.fr> * Authors: Christophe Massiot <massiot@via.ecp.fr>
* *
...@@ -76,20 +76,48 @@ decoder_fifo_t * input_RunDecoder( input_thread_t * p_input, ...@@ -76,20 +76,48 @@ decoder_fifo_t * input_RunDecoder( input_thread_t * p_input,
if( b_sout ) if( b_sout )
{ {
p_fifo->p_module = vlc_bool_t b_reencode = VLC_FALSE;
module_Need( p_fifo, "packetizer", "$packetizer" );
if( p_es->i_cat == AUDIO_ES )
{
char *psz_sout_acodec = config_GetPsz( p_input, "sout-acodec" );
if( psz_sout_acodec != NULL && *psz_sout_acodec != '\0' )
{
msg_Dbg( p_input, "audio reencoding requested -> unsupported" );
b_reencode = VLC_TRUE;
}
}
else if( p_es->i_cat == VIDEO_ES )
{
char *psz_sout_vcodec = config_GetPsz( p_input, "sout-vcodec" );
if( psz_sout_vcodec != NULL && *psz_sout_vcodec != '\0' )
{
msg_Dbg( p_input, "video reencoding requested" );
/* force encoder video output */
config_PutPsz( p_input, "vout", "encoder" );
b_reencode = VLC_TRUE;
} }
} }
/* default Get a suitable decoder module */ if( !b_reencode )
if( p_fifo->p_module == NULL )
{ {
/* we don't want to reencode so search for a packetizer */
p_fifo->p_module =
module_Need( p_fifo, "packetizer", "$packetizer" );
}
else
{
/* get a suitable decoder module to do reencoding*/
p_fifo->p_module = module_Need( p_fifo, "decoder", "$codec" ); p_fifo->p_module = module_Need( p_fifo, "decoder", "$codec" );
} }
#if 0 }
/* Get a suitable module */ }
else
{
/* default Get a suitable decoder module */
p_fifo->p_module = module_Need( p_fifo, "decoder", "$codec" ); p_fifo->p_module = module_Need( p_fifo, "decoder", "$codec" );
#endif }
if( p_fifo->p_module == NULL ) if( p_fifo->p_module == NULL )
{ {
msg_Err( p_fifo, "no suitable decoder module for fourcc `%4.4s'", msg_Err( p_fifo, "no suitable decoder module for fourcc `%4.4s'",
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* libvlc.h: main libvlc header * libvlc.h: main libvlc header
***************************************************************************** *****************************************************************************
* Copyright (C) 1998-2002 VideoLAN * Copyright (C) 1998-2002 VideoLAN
* $Id: libvlc.h,v 1.35 2003/01/11 20:25:36 gitan Exp $ * $Id: libvlc.h,v 1.36 2003/01/22 10:44:50 fenrir Exp $
* *
* Authors: Vincent Seguin <seguin@via.ecp.fr> * Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org> * Samuel Hocevar <sam@zoy.org>
...@@ -25,6 +25,9 @@ ...@@ -25,6 +25,9 @@
#define Nothing here, this is just to prevent update-po from being stupid #define Nothing here, this is just to prevent update-po from being stupid
static char *ppsz_sout_acodec[] = { "", "mpeg1", "mpeg2", "mpeg4", "vorbis", NULL };
static char *ppsz_sout_vcodec[] = { "", "mpeg1", "mpeg2", "mpeg4", NULL };
/***************************************************************************** /*****************************************************************************
* Configuration options for the main program. Each module will also separatly * Configuration options for the main program. Each module will also separatly
* define its own configuration options. * define its own configuration options.
...@@ -262,6 +265,15 @@ ...@@ -262,6 +265,15 @@
"'any' at the end of the list to make sure there is a fallback for the " \ "'any' at the end of the list to make sure there is a fallback for the " \
"types you didn't specify.") "types you didn't specify.")
#define ENCODER_VIDEO_TEXT N_("choose prefered video encoder list")
#define ENCODER_VIDEO_LONGTEXT N_( \
"This allows you to select the order in which vlc will choose its " \
"codecs. " )
#define ENCODER_AUDIO_TEXT N_("choose prefered audio encoder list")
#define ENCODER_AUDIO_LONGTEXT N_( \
"This allows you to select the order in which vlc will choose its " \
"codecs. " )
#define SOUT_TEXT N_("choose a stream output") #define SOUT_TEXT N_("choose a stream output")
#define SOUT_LONGTEXT N_( \ #define SOUT_LONGTEXT N_( \
"Empty if no stream output.") "Empty if no stream output.")
...@@ -271,11 +283,19 @@ ...@@ -271,11 +283,19 @@
"This allows you to choose if the video stream should be redirected to " \ "This allows you to choose if the video stream should be redirected to " \
"the stream output facility when this last one is enabled.") "the stream output facility when this last one is enabled.")
#define SOUT_VCODEC_TEXT N_("video encoding codec" )
#define SOUT_VCODEC_LONGTEXT N_( \
"This allows you to force video encoding")
#define SOUT_AUDIO_TEXT N_("enable audio stream output") #define SOUT_AUDIO_TEXT N_("enable audio stream output")
#define SOUT_AUDIO_LONGTEXT N_( \ #define SOUT_AUDIO_LONGTEXT N_( \
"This allows you to choose if the video stream should be redirected to " \ "This allows you to choose if the video stream should be redirected to " \
"the stream output facility when this last one is enabled.") "the stream output facility when this last one is enabled.")
#define SOUT_ACODEC_TEXT N_("audio encoding codec" )
#define SOUT_ACODEC_LONGTEXT N_( \
"This allows you to force audio encoding")
#define PACKETIZER_TEXT N_("choose prefered packetizer list") #define PACKETIZER_TEXT N_("choose prefered packetizer list")
#define PACKETIZER_LONGTEXT N_( \ #define PACKETIZER_LONGTEXT N_( \
"This allows you to select the order in which vlc will choose its " \ "This allows you to select the order in which vlc will choose its " \
...@@ -478,16 +498,22 @@ vlc_module_begin(); ...@@ -478,16 +498,22 @@ vlc_module_begin();
add_category_hint( N_("Decoders"), NULL ); add_category_hint( N_("Decoders"), NULL );
add_module( "codec", "decoder", NULL, NULL, CODEC_TEXT, CODEC_LONGTEXT ); add_module( "codec", "decoder", NULL, NULL, CODEC_TEXT, CODEC_LONGTEXT );
add_category_hint( N_("Encoders"), NULL );
add_module( "video-encoder", "video encoder", NULL, NULL, ENCODER_VIDEO_TEXT, ENCODER_VIDEO_LONGTEXT );
add_module( "audio-encoder", "audio encoder", NULL, NULL, ENCODER_AUDIO_TEXT, ENCODER_AUDIO_LONGTEXT );
/* Stream output options */ /* Stream output options */
add_category_hint( N_("Stream output"), NULL ); add_category_hint( N_("Stream output"), NULL );
add_string( "sout", NULL, NULL, SOUT_TEXT, SOUT_LONGTEXT );
add_bool( "sout-audio", 1, NULL, SOUT_AUDIO_TEXT, SOUT_AUDIO_LONGTEXT );
add_bool( "sout-video", 1, NULL, SOUT_VIDEO_TEXT, SOUT_VIDEO_LONGTEXT );
add_string_from_list( "sout-acodec", "", ppsz_sout_acodec, NULL, SOUT_ACODEC_TEXT, SOUT_ACODEC_LONGTEXT );
add_string_from_list( "sout-vcodec", "", ppsz_sout_vcodec, NULL, SOUT_VCODEC_TEXT, SOUT_VCODEC_LONGTEXT );
add_module( "packetizer", "packetizer", NULL, NULL, add_module( "packetizer", "packetizer", NULL, NULL,
PACKETIZER_TEXT, PACKETIZER_LONGTEXT ); PACKETIZER_TEXT, PACKETIZER_LONGTEXT );
add_module( "mux", "sout mux", NULL, NULL, MUX_TEXT, MUX_LONGTEXT ); add_module( "mux", "sout mux", NULL, NULL, MUX_TEXT, MUX_LONGTEXT );
add_module( "access_output", "sout access", NULL, NULL, add_module( "access_output", "sout access", NULL, NULL,
ACCESS_OUTPUT_TEXT, ACCESS_OUTPUT_LONGTEXT ); ACCESS_OUTPUT_TEXT, ACCESS_OUTPUT_LONGTEXT );
add_string( "sout", NULL, NULL, SOUT_TEXT, SOUT_LONGTEXT );
add_bool( "sout-video", 1, NULL, SOUT_VIDEO_TEXT, SOUT_VIDEO_LONGTEXT );
add_bool( "sout-audio", 1, NULL, SOUT_AUDIO_TEXT, SOUT_AUDIO_LONGTEXT );
/* CPU options */ /* CPU options */
add_category_hint( N_("CPU"), NULL ); add_category_hint( N_("CPU"), NULL );
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* thread, and destroy a previously oppened video output thread. * thread, and destroy a previously oppened video output thread.
***************************************************************************** *****************************************************************************
* Copyright (C) 2000-2001 VideoLAN * Copyright (C) 2000-2001 VideoLAN
* $Id: video_output.c,v 1.206 2003/01/12 15:38:35 sigmunau Exp $ * $Id: video_output.c,v 1.207 2003/01/22 10:44:50 fenrir Exp $
* *
* Authors: Vincent Seguin <seguin@via.ecp.fr> * Authors: Vincent Seguin <seguin@via.ecp.fr>
* *
...@@ -70,10 +70,22 @@ vout_thread_t * __vout_Request ( vlc_object_t *p_this, vout_thread_t *p_vout, ...@@ -70,10 +70,22 @@ vout_thread_t * __vout_Request ( vlc_object_t *p_this, vout_thread_t *p_vout,
{ {
/* Reattach video output to p_vlc before bailing out */ /* Reattach video output to p_vlc before bailing out */
if( p_vout ) if( p_vout )
{
char *psz_sout = config_GetPsz( p_this, "sout" );
if( !psz_sout || !*psz_sout )
{ {
vlc_object_detach( p_vout ); vlc_object_detach( p_vout );
vlc_object_attach( p_vout, p_this->p_vlc ); vlc_object_attach( p_vout, p_this->p_vlc );
} }
else
{
vlc_object_detach( p_vout );
// vlc_object_release( p_vout );
vout_Destroy( p_vout );
}
if( psz_sout ) free( psz_sout );
}
return NULL; return NULL;
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* vout_pictures.c : picture management functions * vout_pictures.c : picture management functions
***************************************************************************** *****************************************************************************
* Copyright (C) 2000 VideoLAN * Copyright (C) 2000 VideoLAN
* $Id: vout_pictures.c,v 1.33 2003/01/15 13:16:40 sam Exp $ * $Id: vout_pictures.c,v 1.34 2003/01/22 10:44:50 fenrir Exp $
* *
* Authors: Vincent Seguin <seguin@via.ecp.fr> * Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org> * Samuel Hocevar <sam@zoy.org>
...@@ -674,4 +674,5 @@ static void CopyPicture( vout_thread_t * p_vout, ...@@ -674,4 +674,5 @@ static void CopyPicture( vout_thread_t * p_vout,
} }
} }
} }
p_dest->date = p_src->date;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment