diff options
| -rw-r--r-- | src/player.cc | 51 | 
1 files changed, 11 insertions, 40 deletions
| diff --git a/src/player.cc b/src/player.cc index 684e571..bb712f6 100644 --- a/src/player.cc +++ b/src/player.cc @@ -70,7 +70,8 @@ Player::Player(Error *err,    overlay = SDL_CreateYUVOverlay(DISPLAYWIDTH,                                   DISPLAYHEIGHT, -                                 SDL_IYUV_OVERLAY, screen); +                                 SDL_YUY2_OVERLAY, // Match for the libdv decoder output +                                 screen);    if(!overlay) {      sprintf(errbuf, "Unable to create SDL overlay: %s.", SDL_GetError());      errobj->pushError(errbuf); @@ -91,7 +92,6 @@ void Player::player()    SDL_Rect rect;    Frame *frame; -  unsigned char pixel_buffer[3][720 * 576];    unsigned char *pxs[3];    int pitches[3]; @@ -135,42 +135,19 @@ void Player::player()        if(!frame) break;        if(first) { -        for(i = 0; i < 3; i++) { -          pxs[i] = overlay->pixels[i]; -          pitches[i] = overlay->pitches[i]; -        } +        pitches[0] = overlay->pitches[0]; +        pitches[1] = overlay->pitches[1]; +        pitches[2] = overlay->pitches[2]; -        fprintf(stderr, "pitch[0]: %d - pitch[1]: %d - pitch[2]: %d\n", pitches[0], pitches[1], pitches[2]); fflush(stderr); +        //        fprintf(stderr, "pitch[0]: %d - pitch[1]: %d - pitch[2]: %d\n", pitches[0], pitches[1], pitches[2]); fflush(stderr);          dv_parse_header(decoder, frame->data); -        dv_parse_packs(decoder, frame->data); +        //dv_parse_packs(decoder, frame->data); // Not needed anyway! -        //        dv_parse_header(decoder, NULL); -        //        dv_parse_packs(decoder, NULL); -        // PAL/IEC 68134 -        decoder->sampling = e_dv_sample_422; - -        /* -        decoder->system = e_dv_system_625_50; +        decoder->system = e_dv_system_625_50;  // PAL lines, PAL framerate +        decoder->sampling = e_dv_sample_422;  // 4 bytes y, 2 bytes u, 2 bytes v          decoder->std = e_dv_std_iec_61834; -         -        decoder->height = DISPLAYHEIGHT; -        decoder->width = DISPLAYWIDTH; -        */ -        // PAL/SMPTE 314M -        //        decoder->system = e_dv_system_625_50;  -       //        decoder->std = e_dv_std_smpte_314m;   -         -        //        decoder->system = e_dv_system_none;  -        //        decoder->std = e_dv_std_none; - -        // Reference to the overlay pixels/pitches. -        //        pitches[0] = overlay->pitches[0] = decoder->width * 2; -        //        pxs[2] = pxs[1] = pxs[0] = overlay->pixels[0] = overlay->pixels[2] = overlay->pixels[1];// = (uint8_t*)pixel_buffer; -        //  pitches[1] = overlay->pitches[1] = 0;// = 0; -        //  pitches[2] = overlay->pitches[2] = 0;// = 0; -         -        //  pitches[0] = overlay->pitches[0] = DISPLAYWIDTH; +        decoder->num_dif_seqs = 12;          first = false;        } @@ -182,15 +159,9 @@ void Player::player()  			dv_decode_full_frame(decoder,                              frame->data,                              e_dv_color_yuv,  -                           pxs, +                           overlay->pixels,                             pitches); -      overlay->pitches[0] = pitches[0]; -      overlay->pitches[1] = pitches[1]; -      overlay->pitches[2] = pitches[2]; - -      //overlay->pixels = pxs; -        SDL_UnlockYUVOverlay(overlay);        SDL_DisplayYUVOverlay(overlay, &rect);        //      delete frame; | 
