胡斌

fix bug of setting dest x position when rotate 90

@@ -560,7 +560,7 @@ int CAVTranscoder::open_output_file(const char *filename) @@ -560,7 +560,7 @@ int CAVTranscoder::open_output_file(const char *filename)
560 for (int i = 0; i < h; i++) { 560 for (int i = 0; i < h; i++) {
561 unsigned char * psrc = startSrcY + i * pSrcFrame->linesize[0]; 561 unsigned char * psrc = startSrcY + i * pSrcFrame->linesize[0];
562 unsigned char * psrc_end = psrc + w; 562 unsigned char * psrc_end = psrc + w;
563 - unsigned char * pdst = pDstFrame->data[0] + y*pDstFrame->linesize[0] + h -1 - i; 563 + unsigned char * pdst = pDstFrame->data[0] + y*pDstFrame->linesize[0] + h -1 - i + x;
564 for (; psrc < psrc_end; psrc++, pdst+=pDstFrame->linesize[0]) { 564 for (; psrc < psrc_end; psrc++, pdst+=pDstFrame->linesize[0]) {
565 *pdst = *psrc; 565 *pdst = *psrc;
566 } 566 }
@@ -570,7 +570,7 @@ int CAVTranscoder::open_output_file(const char *filename) @@ -570,7 +570,7 @@ int CAVTranscoder::open_output_file(const char *filename)
570 for (int i = 0; i < h/2; i++) { 570 for (int i = 0; i < h/2; i++) {
571 unsigned char * psrc = startSrcU + i* pSrcFrame->linesize[1]; 571 unsigned char * psrc = startSrcU + i* pSrcFrame->linesize[1];
572 unsigned char * psrc_end = psrc + w/2; 572 unsigned char * psrc_end = psrc + w/2;
573 - unsigned char * pdst = pDstFrame->data[1] + y/2*pDstFrame->linesize[1] + h/2 -1 - i; 573 + unsigned char * pdst = pDstFrame->data[1] + y/2*pDstFrame->linesize[1] + h/2 -1 - i +x/2;
574 for (; psrc < psrc_end; psrc++, pdst += pDstFrame->linesize[1]) { 574 for (; psrc < psrc_end; psrc++, pdst += pDstFrame->linesize[1]) {
575 *pdst = *psrc; 575 *pdst = *psrc;
576 } 576 }
@@ -580,7 +580,7 @@ int CAVTranscoder::open_output_file(const char *filename) @@ -580,7 +580,7 @@ int CAVTranscoder::open_output_file(const char *filename)
580 for (int i = 0; i < h / 2; i++) { 580 for (int i = 0; i < h / 2; i++) {
581 unsigned char * psrc = startSrcV + i* pSrcFrame->linesize[2]; 581 unsigned char * psrc = startSrcV + i* pSrcFrame->linesize[2];
582 unsigned char * psrc_end = psrc + w / 2; 582 unsigned char * psrc_end = psrc + w / 2;
583 - unsigned char * pdst = pDstFrame->data[2] + y / 2 * pDstFrame->linesize[2] + h / 2 -1 - i; 583 + unsigned char * pdst = pDstFrame->data[2] + y / 2 * pDstFrame->linesize[2] + h / 2 -1 - i + x/2;
584 for (; psrc < psrc_end; psrc++, pdst += pDstFrame->linesize[2]) { 584 for (; psrc < psrc_end; psrc++, pdst += pDstFrame->linesize[2]) {
585 *pdst = *psrc; 585 *pdst = *psrc;
586 } 586 }
@@ -638,7 +638,7 @@ int CAVTranscoder::open_output_file(const char *filename) @@ -638,7 +638,7 @@ int CAVTranscoder::open_output_file(const char *filename)
638 fillDestFrame(pDstFrame, _studentFrame, (SRC_W - SRC_H) / 2, 240, (SRC_W - SRC_H) / 2, 0, SRC_H, SRC_H); 638 fillDestFrame(pDstFrame, _studentFrame, (SRC_W - SRC_H) / 2, 240, (SRC_W - SRC_H) / 2, 0, SRC_H, SRC_H);
639 } 639 }
640 } 640 }
641 - else if (_studentFrame->pkt_dts != 90){ 641 + else if (_studentFrame->pkt_dts == 90){
642 fillDestFrame(pDstFrame, _studentFrame, 0, 240); 642 fillDestFrame(pDstFrame, _studentFrame, 0, 240);
643 } 643 }
644 else { 644 else {