Ticket #41 (closed defect: fixed)

Opened 8 years ago

Last modified 4 years ago

v4l problem with bttv card

Reported by: superinspector77@… Owned by: cinelerra@…
Priority: critical Milestone:
Component: Recording Version: 2.1
Severity: normal Keywords:
Cc:

Description

trying to capture fom bttv card the preview monitor is in green colour
and cinelerra cant manage the channels or the inputs of the card,
capturing produce the same green colour movie....

test in fedora core 1 with athlon 1.6 ghz ang 1 giga ram

this is the output fron terminal:

VDeviceV4L::v4l_init mmap: Argumento inválido

Change History

Changed 8 years ago by chsh@…

I have the same issue, however instead of a green screen I get an all black
screen. TVTime and XawTV's streamer application are both able to capture video.
I also have the tuning issue noted by the original poster. For me to tune
properly, I have to start up TVTime and tune to whichever station and/or input
selection I want to record from. The error it gets when trying to record the
video is:
VDeviceV4L::v4l_init VIDIOCSWIN: Invalid argument
VDeviceV4L::v4l1_set_picture VIDIOCSPICT: Invalid argument

I am using Slackware 9.0, updated glibc, and kernel 2.6.5 on an Athlon XP 2000+,
512MB RAM, 40GB WD ATA/100 7200RPM HDD.

Changed 8 years ago by chsh@…

One additional thing I forgot to mention, when checking both "Monitor Video" and
"Monitor Audio" the video displays in the previewer correctly, and the audio is
piped in as well.

Changed 8 years ago by chsh@…

I've fixed the recording issue I was having by making the following change to
cinelerra/vdevicev4l.C, line 177:
- set_picture(-1, -1, -1, -1, -1);
+ set_picture(0, 0, 0, 0, 0);

I'm not sure why this works, neither of the errors disappears, but I am able to
record video, rather than record a black screen.

Changed 8 years ago by baver@…

  • status changed from new to assigned

If Pedro can confirm this as a fix (or anyone else), we'll get this into the
tree once the merge with 1.2.0 is done.

Changed 8 years ago by baver@…

Oh sorry, didn't look at Pedro's error...

Pedro, what kernel version are you running? I looked through your e-mails on the
mailing list and couldn't find any mention of it.

Changed 5 years ago by skinkie@…

  • priority set to Critical

I still have this have this issue + distorted view when I select a resolution higher than 320x240. Am I naive that I can capture higher than pal? Or is this a bug in cinelerra where I get a distorted view in the capture and the live monitor phase.

Capturing/Monitoring at 320x240 works.

Changed 5 years ago by baver@…

  • owner changed from baver@… to cinelerra@…
  • status changed from assigned to new
  • version changed from 1.1.9 to 2.1

Stefan, what resolutions does your card support?

I don't have a bttv card, so I can't verify the size issue.

Changing version to 2.1. Also unassigning myself.

Changed 4 years ago by klark.crente@…

  • status changed from new to closed
  • resolution set to worksforme

Hello, I discovered how to solve the problem. I removed the lines:

00143 if((long)capture_buffer < 0)
00144 {
00145 // Use read instead.
00146 perror("VDeviceV4L::v4l_init mmap");
00147 shared_memory = 0;
00148 capture_buffer = new char[capture_params.size];
00149 }
00150 else
00151 {

And the line:

00154 }

On file cinelerra/vdevicev4l.C

Changed 4 years ago by johannes.sixt@…

  • status changed from closed to reopened
  • resolution worksforme deleted

Please do not close bugs for which there is no fix in the code.

Changed 4 years ago by einarry@…

Inspired by walker and read sam manpages I propose a fix:
--- vdevicev4l.C.orig 2008-10-02 22:53:46.000000000 +0300
+++ vdevicev4l.C 2008-10-04 18:15:00.000000000 +0300
@@ -142,7 +142,7 @@

capture_frame_number = 0;

- if((long)capture_buffer < 0)
+ if(capture_buffer == MAP_FAILED)

{

// Use read instead.

perror("VDeviceV4L::v4l_init mmap");

Please test. I haven't proper hardware.

Changed 4 years ago by klark.crente@…

(In reply to comment #10)

Inspired by walker and read sam manpages I propose a fix:
--- vdevicev4l.C.orig 2008-10-02 22:53:46.000000000 +0300
+++ vdevicev4l.C 2008-10-04 18:15:00.000000000 +0300
@@ -142,7 +142,7 @@

capture_frame_number = 0;

- if((long)capture_buffer < 0)
+ if(capture_buffer == MAP_FAILED)
{
// Use read instead.
perror("VDeviceV4L::v4l_init mmap");

Please test. I haven't proper hardware.

Works! 100%, I testing using full resolution, 720x480 NTSC.. Preview and recording normally with rawdv encoder

Changed 4 years ago by j6t@…

  • status changed from reopened to closed
  • resolution set to fixed
Note: See TracTickets for help on using tickets.