#include <vlc_block.h>
#include <vlc_codecs.h>
#include <vlc_arrays.h>
+#include <vlc_rand.h>
typedef GUID guid_t;
p_sys->p_tracks = vlc_array_new();
p_sys->b_write_header = true;
- p_sys->i_packet_size = config_GetInt( p_mux, "sout-asf-packet-size" );
- p_sys->i_bitrate_override = config_GetInt( p_mux, "sout-asf-bitrate-override" );
+ p_sys->i_packet_size = var_InheritInteger( p_mux, "sout-asf-packet-size" );
+ p_sys->i_bitrate_override = var_InheritInteger( p_mux, "sout-asf-bitrate-override" );
msg_Dbg( p_mux, "Packet size %d", p_sys->i_packet_size);
if (p_sys->i_bitrate_override)
msg_Dbg( p_mux, "Bitrate override %"PRId64, p_sys->i_bitrate_override);
p_sys->i_packet_count= 0;
/* Generate a random fid */
- srand( mdate() & 0xffffffff );
p_sys->fid.Data1 = 0xbabac001;
- p_sys->fid.Data2 = ( (uint64_t)rand() << 16 ) / RAND_MAX;
- p_sys->fid.Data3 = ( (uint64_t)rand() << 16 ) / RAND_MAX;
- for( i = 0; i < 8; i++ )
- {
- p_sys->fid.Data4[i] = ( (uint64_t)rand() << 8 ) / RAND_MAX;
- }
+ vlc_rand_bytes(&p_sys->fid.Data2, sizeof(p_sys->fid.Data2));
+ vlc_rand_bytes(&p_sys->fid.Data3, sizeof(p_sys->fid.Data3));
+ vlc_rand_bytes(p_sys->fid.Data4, sizeof(p_sys->fid.Data4));
/* Meta data */
p_sys->psz_title = var_GetString( p_mux, SOUT_CFG_PREFIX "title" );
for( i = 0; i < vlc_array_count( p_sys->p_tracks ); i++ )
{
const asf_track_t *p_track = vlc_array_item_at_index( p_sys->p_tracks, i );
- if( p_track->i_cat == VIDEO_ES && p_track->fmt.video.i_aspect != 0 )
+ if( p_track->i_cat == VIDEO_ES &&
+ p_track->fmt.video.i_sar_num != 0 &&
+ p_track->fmt.video.i_sar_den != 0 )
{
i_cm_size = 26 + 2 * (16 + 2 * sizeof("AspectRatio?"));
break;
/* metadata object (part of header extension) */
if( i_cm_size )
{
- int64_t i_num, i_den;
unsigned int i_dst_num, i_dst_den;
asf_track_t *tk;
tk=NULL;
}
assert( tk != NULL );
- i_num = tk->fmt.video.i_aspect *
- (int64_t)tk->fmt.video.i_height;
- i_den = VOUT_ASPECT_FACTOR * tk->fmt.video.i_width;
- vlc_ureduce( &i_dst_num, &i_dst_den, i_num, i_den, 0 );
+ vlc_ureduce( &i_dst_num, &i_dst_den,
+ tk->fmt.video.i_sar_num,
+ tk->fmt.video.i_sar_den, 0 );
msg_Dbg( p_mux, "pixel aspect-ratio: %i/%i", i_dst_num, i_dst_den );