static int Encode_frame( x264_t *h, hnd_t hout, x264_picture_t *pic ) { x264_picture_t pic_out; x264_nal_t *nal; int i_nal, i; int i_file = 0; if( x264_encoder_encode( h, &nal, &i_nal, pic, &pic_out ) < 0 ) { fprintf( stderr, "x264_encoder_encode failed\n" ); } for( i = 0; i < i_nal; i++ ) { int i_size; int i_data; i_data = DATA_MAX; if( ( i_size = x264_nal_encode( data, &i_data, 1, &nal[i] ) ) > 0 ) { i_file += p_write_nalu( hout, data, i_size ); } else if( i_size < 0 ) { fprintf( stderr, "need to increase buffer size (size=%d)\n", -i_size ); } } if (i_nal) p_set_eop( hout, &pic_out ); return i_file; }
static int x264_encode_frame (x264_t *h, void *handle, x264_picture_t *pic) { x264_picture_t pic_out; x264_nal_t *nal; int i_nal; int i; int i_file = 0; /* Do not force any parameters */ if (pic) { pic->i_type = X264_TYPE_AUTO; pic->i_qpplus1 = 0; } if (x264_encoder_encode (h, &nal, &i_nal, pic, &pic_out) < 0) { fprintf (stderr, _("x264_encoder_encode failed\n")); } for (i = 0; i < i_nal; i++) { int i_size; int i_data; i_data = DATA_MAX; if ((i_size = x264_nal_encode (data, &i_data, 1, &nal[i])) > 0 ) { i_file += p_write_nalu (handle, data, i_size); } else if (i_size < 0) { fprintf (stderr, _("need to increase buffer size (size=%d)\n"), -i_size); } } if (i_nal) p_set_eop (handle, &pic_out); return i_file; }