남은그루터기님 강좌 덕분에 빌드 잘 하고

영상 파일도 잘 출력되는것을 확인 하였습니다.


그리고 RTSP로도 영상이 나오는것을 확인 하였습니다.


다만 영상이 나오다가 화면이 깨지면서 죽어 버립니다.


로그찍어서 추적해본 결과 아래 함수의 while 문 안에 av_read_frame 부분에서 음수 값을 리턴하면서 죽는것 같습니다.

 int decodeFrame()
{
 int frameFinished = 0;
 AVPacket packet;
 
 while ( (frameFinished = av_read_frame(gFormatCtx, &packet)) >= 0) {
  if (packet.stream_index == gVideoStreamIdx) {
   avcodec_decode_video2(gVideoCodecCtx, gFrame, &frameFinished, &packet);
   
   if (frameFinished) {
    gImgConvertCtx = sws_getCachedContext(gImgConvertCtx,
     gVideoCodecCtx->width, gVideoCodecCtx->height, gVideoCodecCtx->pix_fmt,
     gVideoCodecCtx->width, gVideoCodecCtx->height, PIX_FMT_RGB565LE, SWS_BICUBIC, NULL, NULL, NULL);
    
    sws_scale(gImgConvertCtx, gFrame->data, gFrame->linesize, 0, gVideoCodecCtx->height, gFrameRGB->data, gFrameRGB->linesize);
    
    av_free_packet(&packet);
  
    return 0;
   } else {
    return -2;
   }
  }
  
  av_free_packet(&packet);
 } 
 return frameFinished;
}

 

RTSP 영상 플레이 하신 분이나 비슷한 경험이 있으신 분들의 조언을 구하고자 합니다.