/*****************************************************************************
* Preamble
*****************************************************************************/
-#include <vlc/vlc.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc_common.h>
+#include <vlc_plugin.h>
#include <vlc_codec.h>
#include <vlc_vout.h>
#include <vlc_sout.h>
-
+#include <vlc_input.h>
#include <ogg/ogg.h>
#include <theora/theora.h>
struct decoder_sys_t
{
/* Module mode */
- vlc_bool_t b_packetizer;
+ bool b_packetizer;
/*
* Input properties
/*
* Decoding properties
*/
- vlc_bool_t b_decoded_first_keyframe;
+ bool b_decoded_first_keyframe;
/*
* Common properties
set_category( CAT_INPUT );
set_subcategory( SUBCAT_INPUT_VCODEC );
set_shortname( "Theora" );
- set_description( _("Theora video decoder") );
+ set_description( N_("Theora video decoder") );
set_capability( "decoder", 100 );
set_callbacks( OpenDecoder, CloseDecoder );
add_shortcut( "theora" );
add_submodule();
- set_description( _("Theora video packetizer") );
+ set_description( N_("Theora video packetizer") );
set_capability( "packetizer", 100 );
set_callbacks( OpenPacketizer, CloseDecoder );
- add_shortcut( "theora" );
add_submodule();
- set_description( _("Theora video encoder") );
+ set_description( N_("Theora video encoder") );
set_capability( "encoder", 150 );
set_callbacks( OpenEncoder, CloseEncoder );
- add_shortcut( "theora" );
# define ENC_CFG_PREFIX "sout-theora-"
add_integer( ENC_CFG_PREFIX "quality", 2, NULL, ENC_QUALITY_TEXT,
- ENC_QUALITY_LONGTEXT, VLC_FALSE );
+ ENC_QUALITY_LONGTEXT, false );
vlc_module_end();
-static const char *ppsz_enc_options[] = {
+static const char *const ppsz_enc_options[] = {
"quality", NULL
};
/* Allocate the memory needed to store the decoder's structure */
if( ( p_dec->p_sys = p_sys =
(decoder_sys_t *)malloc(sizeof(decoder_sys_t)) ) == NULL )
- {
- msg_Err( p_dec, "out of memory" );
- return VLC_EGENERIC;
- }
- p_dec->p_sys->b_packetizer = VLC_FALSE;
+ return VLC_ENOMEM;
+ p_dec->p_sys->b_packetizer = false;
p_sys->i_pts = 0;
- p_sys->b_decoded_first_keyframe = VLC_FALSE;
+ p_sys->b_decoded_first_keyframe = false;
/* Set output properties */
p_dec->fmt_out.i_cat = VIDEO_ES;
if( i_ret == VLC_SUCCESS )
{
- p_dec->p_sys->b_packetizer = VLC_TRUE;
+ p_dec->p_sys->b_packetizer = true;
p_dec->fmt_out.i_codec = VLC_FOURCC( 't', 'h', 'e', 'o' );
}
p_dec->fmt_in.p_extra =
realloc( p_dec->fmt_in.p_extra, p_dec->fmt_in.i_extra +
oggpacket.bytes + 2 );
- p_extra = p_dec->fmt_in.p_extra + p_dec->fmt_in.i_extra;
+ p_extra = ((uint8_t *)p_dec->fmt_in.p_extra) + p_dec->fmt_in.i_extra;
*(p_extra++) = oggpacket.bytes >> 8;
*(p_extra++) = oggpacket.bytes & 0xFF;
}
/* Date management */
- p_sys->i_pts += ( I64C(1000000) * p_sys->ti.fps_denominator /
+ p_sys->i_pts += ( INT64_C(1000000) * p_sys->ti.fps_denominator /
p_sys->ti.fps_numerator ); /* 1 frame per packet */
return p_buf;
/* Check for keyframe */
if( !(p_oggpacket->packet[0] & 0x80) /* data packet */ &&
!(p_oggpacket->packet[0] & 0x40) /* intra frame */ )
- p_sys->b_decoded_first_keyframe = VLC_TRUE;
+ p_sys->b_decoded_first_keyframe = true;
/* If we haven't seen a single keyframe yet, don't let Theora decode
* anything, otherwise we'll get display artifacts. (This is impossible
*psz_value = '\0';
psz_value++;
input_Control( p_input, INPUT_ADD_INFO, _("Theora comment"),
- psz_name, psz_value );
+ psz_name, "%s", psz_value );
}
free( psz_comment );
i++;
for( i_line = 0; i_line < p_pic->p[i_plane].i_visible_lines; i_line++ )
{
- p_dec->p_libvlc->pf_memcpy( p_dst, p_src + i_src_xoffset,
- i_plane ? yuv->uv_width : yuv->y_width );
+ vlc_memcpy( p_dst, p_src + i_src_xoffset,
+ i_plane ? yuv->uv_width : yuv->y_width );
p_src += i_src_stride;
p_dst += i_dst_stride;
}
/*
* Input properties
*/
- vlc_bool_t b_headers;
+ bool b_headers;
/*
* Theora properties
/* Allocate the memory needed to store the decoder's structure */
if( ( p_sys = (encoder_sys_t *)malloc(sizeof(encoder_sys_t)) ) == NULL )
- {
- msg_Err( p_enc, "out of memory" );
- return VLC_EGENERIC;
- }
+ return VLC_ENOMEM;
p_enc->p_sys = p_sys;
p_enc->pf_encode_video = Encode;