胡斌

V2.0.15

1.修改bug: 解码视频文件时,遇到解码错误,直接退出了解码。现改为继续解码后续数据。
@@ -361,8 +361,9 @@ int CAudioDecoder::get_one_frame(AVFrame ** pFrame, int64_t & ts) @@ -361,8 +361,9 @@ int CAudioDecoder::get_one_frame(AVFrame ** pFrame, int64_t & ts)
361 &got_frame, &packet); 361 &got_frame, &packet);
362 if (ret < 0) { 362 if (ret < 0) {
363 av_frame_free(&frame); 363 av_frame_free(&frame);
  364 + av_packet_unref(&packet);
364 av_log(NULL, AV_LOG_ERROR, "Decoding failed\n"); 365 av_log(NULL, AV_LOG_ERROR, "Decoding failed\n");
365 - break; 366 + continue;
366 } 367 }
367 368
368 if (got_frame) { 369 if (got_frame) {
@@ -119,4 +119,7 @@ V2.0.13 @@ -119,4 +119,7 @@ V2.0.13
119 2.命令行增加可选参数-k {0|1},控制一对多时合成的视频是否保持4:3宽高比 119 2.命令行增加可选参数-k {0|1},控制一对多时合成的视频是否保持4:3宽高比
120 120
121 V2.0.14 121 V2.0.14
122 -1.命令行增加可选参数-v {1|0},在所有输入媒体文件里,没有视频文件时,使用-v 1 参数合成的mp4文件仍然包含视频,-v 0则不含视频  
  122 +1.命令行增加可选参数-v {1|0},在所有输入媒体文件里,没有视频文件时,使用-v 1 参数合成的mp4文件仍然包含视频,-v 0则不含视频
  123 +
  124 +V2.0.15
  125 +1.修改bug: 解码视频文件时,遇到解码错误,直接退出了解码。现改为继续解码后续数据。
@@ -382,8 +382,9 @@ int CVideoDecoder::get_one_frame(AVFrame ** pFrame, int64_t & ts) @@ -382,8 +382,9 @@ int CVideoDecoder::get_one_frame(AVFrame ** pFrame, int64_t & ts)
382 &got_frame, &packet); 382 &got_frame, &packet);
383 if (ret < 0) { 383 if (ret < 0) {
384 av_frame_free(&frame); 384 av_frame_free(&frame);
  385 + av_packet_unref(&packet);
385 av_log(NULL, AV_LOG_ERROR, "Decoding failed\n"); 386 av_log(NULL, AV_LOG_ERROR, "Decoding failed\n");
386 - break; 387 + continue;
387 } 388 }
388 389
389 if (got_frame) { 390 if (got_frame) {
@@ -1303,7 +1303,7 @@ int process_av_files(char * record_info, int piptype, bool one2one_same_size, in @@ -1303,7 +1303,7 @@ int process_av_files(char * record_info, int piptype, bool one2one_same_size, in
1303 int main(int argc, char * argv[]) 1303 int main(int argc, char * argv[])
1304 { 1304 {
1305 if (argc < 2) { 1305 if (argc < 2) {
1306 - printf(" merge_pip 2.0.14\n"); 1306 + printf(" merge_pip 2.0.15\n");
1307 printf(" merge video files to one pip video according to record info file,\nusage:"); 1307 printf(" merge video files to one pip video according to record info file,\nusage:");
1308 printf("\n %s record_info_filename [-t {0,1,2,3}] [-c codec.cfg] [-s {1,0}] [-r {0,1}] [-k {0,1}] [-v {1,0}]", argv[0]); 1308 printf("\n %s record_info_filename [-t {0,1,2,3}] [-c codec.cfg] [-s {1,0}] [-r {0,1}] [-k {0,1}] [-v {1,0}]", argv[0]);
1309 printf("\n\n"); 1309 printf("\n\n");