summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dv1394.cc6
-rw-r--r--src/player.cc23
2 files changed, 10 insertions, 19 deletions
diff --git a/src/dv1394.cc b/src/dv1394.cc
index 8d62605..339d192 100644
--- a/src/dv1394.cc
+++ b/src/dv1394.cc
@@ -112,12 +112,14 @@ dv1394::dv1394(Error *e, int port, int channel)
// Get handle to firewire channels
handle = raw1394_new_handle();
if(!handle) {
+ // errobj->pushError("");
fprintf( stderr, "raw1394 - failed to get handle: %s.\n", strerror( errno ) );
exit( EXIT_FAILURE );
}
// how many adapters are hooked in?
if((n_ports = raw1394_get_port_info(handle, pinf, 16)) < 0 ) {
+ // errobj->pushError("");
fprintf( stderr, "raw1394 - failed to get port info: %s.\n", strerror( errno ) );
raw1394_destroy_handle( handle );
exit( EXIT_FAILURE );
@@ -125,7 +127,7 @@ dv1394::dv1394(Error *e, int port, int channel)
// Tell raw1394 which host adapter to use
if(raw1394_set_port(handle, port) < 0 ) {
- errobj->pushError("Error while opening codec for input stream.");
+ // errobj->pushError("");
fprintf( stderr, "raw1394 - failed to set port: %s.\n", strerror( errno ) );
exit( EXIT_FAILURE );
}
@@ -138,6 +140,8 @@ dv1394::dv1394(Error *e, int port, int channel)
dv1394::~dv1394()
{
+ // Close firewire connection.
+ raw1394_destroy_handle(handle);
}
unsigned char *dv1394::readFrame()
diff --git a/src/player.cc b/src/player.cc
index 085f4df..df9668e 100644
--- a/src/player.cc
+++ b/src/player.cc
@@ -91,16 +91,10 @@ void Player::player()
SDL_Rect rect;
Frame *frame;
// AVPicture pict;
- unsigned char pixel_buffer[720 * 576 * 3];
+ // unsigned char pixel_buffer[720 * 576 * 3];
unsigned char *pxs[3];
int pitches[3];
- pitches[0] = 720 * 2;
- pxs[0] = pixel_buffer;
- pxs[1] = pixel_buffer;
- pxs[2] = pixel_buffer;
-
-
int i;
struct timespec ts;
@@ -111,14 +105,14 @@ void Player::player()
rect.y = 0;
rect.w = DISPLAYWIDTH;
rect.h = DISPLAYHEIGHT;
- /*
+
//+++++Reference to the overlay pixels/pitches, only after creating a new overlay+++++
// ?????????
for(i = 0; i < 3; i++) {
- pict.data[i] = overlay->pixels[i];
- pict.linesize[i] = overlay->pitches[i];
+ pxs[i] = overlay->pixels[i];
+ pitches[i] = overlay->pitches[i];
}
- */
+
dv_decoder_t *decoder = NULL;
decoder = dv_decoder_new(FALSE, FALSE, TRUE);
decoder->quality = DV_QUALITY_BEST;
@@ -147,10 +141,6 @@ void Player::player()
pthread_mutex_unlock(mutex);
if(!frame) break;
- // img_convert(&pict, PIX_FMT_YUV420P, (AVPicture *)f->frame,
- // PIX_FMT_YUV420P, DISPLAYWIDTH, DISPLAYHEIGHT);
-
-
// libdv img decode
dv_decode_full_frame(decoder,
(const uint8_t*)frame->data,
@@ -159,9 +149,6 @@ void Player::player()
pitches);
SDL_LockYUVOverlay(overlay);
- 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);