if( !p_fmt_out->i_chroma )
p_fmt_out->i_chroma = p_image->p_dec->fmt_out.video.i_chroma;
if( !p_fmt_out->i_width && p_fmt_out->i_height )
if( !p_fmt_out->i_chroma )
p_fmt_out->i_chroma = p_image->p_dec->fmt_out.video.i_chroma;
if( !p_fmt_out->i_width && p_fmt_out->i_height )
- p_fmt_out->i_width = p_fmt_out->i_height
- * p_image->p_dec->fmt_out.video.i_aspect
- / VOUT_ASPECT_FACTOR;
+ p_fmt_out->i_width = (int64_t)p_image->p_dec->fmt_out.video.i_width *
+ p_image->p_dec->fmt_out.video.i_sar_num *
+ p_fmt_out->i_height /
+ p_image->p_dec->fmt_out.video.i_height /
+ p_image->p_dec->fmt_out.video.i_sar_den;
+
- p_fmt_out->i_height = p_fmt_out->i_width * VOUT_ASPECT_FACTOR
- / p_image->p_dec->fmt_out.video.i_aspect;
+ p_fmt_out->i_height = (int64_t)p_image->p_dec->fmt_out.video.i_height *
+ p_image->p_dec->fmt_out.video.i_sar_den *
+ p_fmt_out->i_width /
+ p_image->p_dec->fmt_out.video.i_width /
+ p_image->p_dec->fmt_out.video.i_sar_num;
if( !p_fmt_out->i_width )
p_fmt_out->i_width = p_image->p_dec->fmt_out.video.i_width;
if( !p_fmt_out->i_height )
if( !p_fmt_out->i_width )
p_fmt_out->i_width = p_image->p_dec->fmt_out.video.i_width;
if( !p_fmt_out->i_height )
- p_block = p_image->p_enc->pf_encode_video( p_image->p_enc, p_tmp_pic );
-
- p_image->p_filter->pf_vout_buffer_del( p_image->p_filter, p_tmp_pic );
+ if( likely(p_tmp_pic != NULL) )
+ {
+ p_block = p_image->p_enc->pf_encode_video( p_image->p_enc,
+ p_tmp_pic );
+ p_image->p_filter->pf_video_buffer_del( p_image->p_filter,
+ p_tmp_pic );
+ }
+ else
+ p_block = NULL;
p_fmt_out->i_height = p_fmt_out->i_visible_height = p_fmt_in->i_height;
if( !p_fmt_out->i_sar_num ) p_fmt_out->i_sar_num = p_fmt_in->i_sar_num;
if( !p_fmt_out->i_sar_den ) p_fmt_out->i_sar_den = p_fmt_in->i_sar_den;
p_fmt_out->i_height = p_fmt_out->i_visible_height = p_fmt_in->i_height;
if( !p_fmt_out->i_sar_num ) p_fmt_out->i_sar_num = p_fmt_in->i_sar_num;
if( !p_fmt_out->i_sar_den ) p_fmt_out->i_sar_den = p_fmt_in->i_sar_den;
{ VLC_CODEC_TIFF, "tif" },
{ VLC_CODEC_TIFF, "tiff" },
{ VLC_FOURCC('l','b','m',' '), "lbm" },
{ VLC_CODEC_TIFF, "tif" },
{ VLC_CODEC_TIFF, "tiff" },
{ VLC_FOURCC('l','b','m',' '), "lbm" },
static picture_t *video_new_buffer( decoder_t *p_dec )
{
p_dec->fmt_out.video.i_chroma = p_dec->fmt_out.i_codec;
static picture_t *video_new_buffer( decoder_t *p_dec )
{
p_dec->fmt_out.video.i_chroma = p_dec->fmt_out.i_codec;
- return picture_New( p_dec->fmt_out.video.i_chroma,
- p_dec->fmt_out.video.i_width,
- p_dec->fmt_out.video.i_height,
- p_dec->fmt_out.video.i_aspect );
+ return picture_NewFromFormat( &p_dec->fmt_out.video );
p_dec->p_module = module_need( p_dec, "decoder", "$codec", false );
if( !p_dec->p_module )
{
p_dec->p_module = module_need( p_dec, "decoder", "$codec", false );
if( !p_dec->p_module )
{
"VLC probably does not support this image format.",
(char*)&p_dec->fmt_in.i_codec );
"VLC probably does not support this image format.",
(char*)&p_dec->fmt_in.i_codec );
if( p_dec->p_module ) module_unneed( p_dec, p_dec->p_module );
es_format_Clean( &p_dec->fmt_in );
if( p_dec->p_module ) module_unneed( p_dec, p_dec->p_module );
es_format_Clean( &p_dec->fmt_in );
if( p_enc->p_module ) module_unneed( p_enc, p_enc->p_module );
es_format_Clean( &p_enc->fmt_in );
if( p_enc->p_module ) module_unneed( p_enc, p_enc->p_module );
es_format_Clean( &p_enc->fmt_in );
VLC_OBJECT_GENERIC, typename );
vlc_object_attach( p_filter, p_this );
VLC_OBJECT_GENERIC, typename );
vlc_object_attach( p_filter, p_this );
(void (*)(filter_t *, picture_t *))video_del_buffer;
p_filter->fmt_in = *p_fmt_in;
(void (*)(filter_t *, picture_t *))video_del_buffer;
p_filter->fmt_in = *p_fmt_in;
if( p_filter->p_module ) module_unneed( p_filter, p_filter->p_module );
es_format_Clean( &p_filter->fmt_in );
if( p_filter->p_module ) module_unneed( p_filter, p_filter->p_module );
es_format_Clean( &p_filter->fmt_in );