static char *h264_path = NULL;
static char *h264_file = "output3.h264";
-static char *h264_data_path = NULL;
-static char *h264_data_file = "h264info3.txt";
-
static bool _is_broken = false;
media_format_h media_format = NULL;
h264_path = (char *)malloc(strlen(pszValue) + strlen(h264_file) + 6);
snprintf(h264_path, strlen(pszValue) + strlen(h264_file) + 6, "%s/res/%s", pszValue, h264_file );
}
- if(h264_data_path == NULL) {
- h264_data_path = (char *)malloc(strlen(pszValue) + strlen(h264_data_file) + 6);
- snprintf(h264_data_path, strlen(pszValue) + strlen(h264_data_file) + 6, "%s/res/%s", pszValue, h264_data_file );
- }
if(file_path == NULL){
file_path = (char *)malloc(strlen(pszValue)+ strlen(file) + 6);
snprintf(file_path, strlen(pszValue)+ strlen(file) + 6, "%s/res/%s", pszValue, file );
PRINT_UTC_LOG("[Line : %d][%s] media_format_set_video_mime failed, API returned %d. Invalid=%d, invalid ope=%d",
__LINE__, API_NAMESPACE, ret, MEDIA_FORMAT_ERROR_INVALID_PARAMETER, MEDIA_FORMAT_ERROR_INVALID_OPERATION);
}
- media_format_set_video_width(media_format, 640);
- media_format_set_video_height(media_format, 480);
+ media_format_set_video_width(media_format, 320);
+ media_format_set_video_height(media_format, 180);
media_format_set_video_avg_bps(media_format, 10);
media_format_set_video_max_bps(media_format, 10);
}
h264_path = NULL;
}
- if (h264_data_path) {
- free(h264_data_path);
- h264_data_path = NULL;
- }
-
if (file_path) {
free(file_path);
file_path = NULL;
uri = NULL;
}
+ media_format_unref(media_format);
+ media_format = NULL;
+
}
int ret = MEDIAMUXER_ERROR_INVALID_PARAMETER;
FILE *pvFile = NULL;
- FILE *pvFileInfo = NULL;
- unsigned int vsize;
- unsigned int is_video_readable;
- unsigned int is_video_pts_readable;
- unsigned int is_video_dts_readable;
- unsigned int is_video_duration_readable;
- unsigned int is_video_flag_readable;
- unsigned int is_video_key_readable;
- uint64_t pts_vid;
- uint64_t dts_vid;
- uint64_t duration_vid;
- int flg_vid,key_vid;
+ unsigned int vsize = 1395;
+ uint64_t pts_vid = 0;
+ uint64_t dts_vid = 0;
+ uint64_t duration_vid = 40000000;
int track_index_vid = 1;
- char *vid_caps;
int ret_scan;
media_packet_h vid_pkt;
- unsigned int vcap_size;
unsigned char *dptr;
+ media_format_h media_format2;
mediamuxer_add_track(g_media_muxer, media_format, &track_index_vid);
mediamuxer_prepare(g_media_muxer);
pvFile = fopen(h264_path, "rb");
if (pvFile == NULL) {
- g_print("\ndata file cant be loaded...\n");
+ PRINT_UTC_LOG("[Line : %d][%s] data file cant be loaded...\n", __LINE__, API_NAMESPACE);
return -1;
}
- pvFileInfo = fopen(h264_data_path, "rt");
- if (pvFileInfo == NULL) {
- g_print("\ninfo files cant be loaded...\n");
- fclose(pvFile);
- return -1;
- }
- ret_scan = fscanf(pvFileInfo, "%d\n", &vcap_size);
- vcap_size++;
- vid_caps = (char *)malloc(vcap_size);
- ret_scan = fscanf(pvFileInfo, "%[^\n]s\n", vid_caps);
- is_video_readable = fscanf(pvFileInfo, "%d\n", &vsize);
- is_video_pts_readable = fscanf(pvFileInfo, "%llu\n", &pts_vid);
- is_video_dts_readable = fscanf(pvFileInfo, "%llu\n", &dts_vid);
- is_video_duration_readable = fscanf(pvFileInfo, "%llu\n", &duration_vid);
- is_video_flag_readable = fscanf(pvFileInfo, "%u\n", &flg_vid);
- is_video_key_readable = fscanf(pvFileInfo, "%d\n", &key_vid);
-
- if (is_video_readable == 1 && is_video_pts_readable == 1 && is_video_dts_readable == 1
- && is_video_duration_readable == 1 && is_video_flag_readable == 1
- && is_video_key_readable == 1) {
- g_print("\nv_Size: %d, v_pts: %llu, v_dts: %llu v_duration: %llu, v_flag: %d",
- vsize, pts_vid, dts_vid, duration_vid, key_vid);
-
- media_format_set_video_width(media_format, vsize / 2 + 1);
- media_format_set_video_height(media_format, vsize / 2 + 1);
- /*frame rate is came from the caps filter of demuxer*/
- if (media_format_set_video_frame_rate(media_format, 30)) {
- g_print("media_format_set_video_frame_rate failed\n");
- goto ERROR;
- }
+ media_format_make_writable(media_format, &media_format2);
- if (media_packet_create(media_format, NULL, NULL, &vid_pkt)) {
- g_print("\ncreate v media packet failed tc\n");
- goto ERROR;
- }
- if (media_packet_alloc(vid_pkt)) {
- g_print(" v media packet alloc failed\n");
- goto ERROR;
- }
+ if (media_format_set_video_width(media_format2, 320)) {
+ PRINT_UTC_LOG("media_format_set_video_width failed\n");
+ goto ERROR;
+ }
+ if (media_format_set_video_height(media_format2, 180)) {
+ PRINT_UTC_LOG("media_format_set_video_height failed\n");
+ goto ERROR;
+ }
- media_packet_get_buffer_data_ptr(vid_pkt, (void**)&dptr);
- vsize = fread(dptr, 1, vsize, pvFile);
- if (media_packet_set_buffer_size(vid_pkt, vsize)) {
- g_print("set v buf size failed\n");
- goto ERROR;
- }
+ /*frame rate is came from the caps filter of demuxer*/
+ if (media_format_set_video_frame_rate(media_format2, 25)) {
+ PRINT_UTC_LOG("media_format_set_video_frame_rate failed\n");
+ goto ERROR;
+ }
- if (media_packet_set_pts(vid_pkt, pts_vid)) {
- g_print("unable to set the pts\n");
- goto ERROR;
- }
- if (media_packet_set_dts(vid_pkt, dts_vid)) {
- g_print("unable to set the pts\n");
- goto ERROR;
- }
- if (media_packet_set_duration(vid_pkt, duration_vid)) {
- g_print("unable to set the pts\n");
- goto ERROR;
- }
- if (media_packet_set_flags(vid_pkt, flg_vid)) {
- g_print("unable to set the flag size\n");
- goto ERROR;
- }
- //if (media_packet_set_codec_data(vid_pkt, vid_caps, vcap_size)) {
- if (media_packet_set_extra(vid_pkt, vid_caps)) {
- g_print("unable to set the flag size\n");
- goto ERROR;
- }
+ if (media_packet_create(media_format2, NULL, NULL, &vid_pkt)) {
+ PRINT_UTC_LOG("\ncreate v media packet failed tc\n");
+ goto ERROR;
+ }
+ if (media_packet_alloc(vid_pkt)) {
+ PRINT_UTC_LOG(" v media packet alloc failed\n");
+ goto ERROR;
+ }
- g_print("V write sample call. packet add:%x\n", (unsigned int)vid_pkt);
- ret = mediamuxer_write_sample(g_media_muxer, track_index_vid, vid_pkt);
+ media_packet_get_buffer_data_ptr(vid_pkt, (void**)&dptr);
+ vsize = fread(dptr, 1, vsize, pvFile);
+ if (media_packet_set_buffer_size(vid_pkt, vsize)) {
+ PRINT_UTC_LOG("set v buf size failed\n");
+ goto ERROR;
+ }
- free(vid_caps);
- media_packet_destroy(vid_pkt);
+ if (media_packet_set_pts(vid_pkt, pts_vid)) {
+ PRINT_UTC_LOG("unable to set the pts\n");
+ goto ERROR;
+ }
+ if (media_packet_set_dts(vid_pkt, dts_vid)) {
+ PRINT_UTC_LOG("unable to set the pts\n");
+ goto ERROR;
+ }
+ if (media_packet_set_duration(vid_pkt, duration_vid)) {
+ PRINT_UTC_LOG("unable to set the pts\n");
+ goto ERROR;
}
- fclose(pvFile);
- fclose(pvFileInfo);
+ PRINT_UTC_LOG("V write sample call. packet add:%x\n", (unsigned int)vid_pkt);
+ ret = mediamuxer_write_sample(g_media_muxer, track_index_vid, vid_pkt);
+
+ media_packet_destroy(vid_pkt);
+ media_format_unref(media_format2);
+ fclose(pvFile);
assert_eq(ret, MEDIAMUXER_ERROR_NONE);
return 0;
ERROR:
+ media_format_unref(media_format2);
fclose(pvFile);
- fclose(pvFileInfo);
return -1;
}