WilliamHank 发表于 2018-2-8 11:35:07

YUYV转码并放大

avPacket->data = ImageFrame;
avPacket->size = FrameSize;
avcodec_send_packet(ctx, avPacket);
ret = avcodec_receive_frame(ctx, pFrameYUV);
ret = sws_scale(swscontex,(const uint8_t *const *) pFrameYUV->data,pFrameYUV->linesize,0,camera_height, pFrame->data,pFrame->linesize);调用上面的代码解码并转码放大,通过surefaceview显示,当surfaceview是640x480或者1600x1200都可以正常显示,但是其它分辨率比如手机屏幕的分辨率,就会出现很有规律的条纹,完全看不到图像,是怎么回事

孙悟空 发表于 2018-2-8 14:23:43

479             ost->sws_ctx = sws_getContext(c->width, c->height,
480                                           AV_PIX_FMT_YUV420P,
481                                           c->width, c->height,
482                                           c->pix_fmt,
483                                           SCALE_FLAGS, NULL, NULL, NULL);
484             if (!ost->sws_ctx) {
485               fprintf(stderr,
486                         "Could not initialize the conversion context\n");
487               exit(1);
488             }
489         }
490         fill_yuv_image(ost->tmp_frame, ost->next_pts, c->width, c->height);
491         sws_scale(ost->sws_ctx, (const uint8_t * const *) ost->tmp_frame->data,
492                   ost->tmp_frame->linesize, 0, c->height, ost->frame->data,
493                   ost->frame->linesize);

孙悟空 发表于 2018-2-8 14:24:48

或者用滤镜 zoompan实现放大
页: [1]
查看完整版本: YUYV转码并放大