[pvrusb2] Re: xawtv recording?

Bill Crowell bill at crowellsystems.com
Wed Nov 9 07:58:37 CST 2005



Mike Isely wrote:

> On Wed, 9 Nov 2005, Simon Lachinger wrote:
>
>>> --- Ursprüngliche Nachricht ---
>>> Von: Frans Meulenbroeks <fransmeulenbroeks at yahoo.com>
>>> An: pvrusb2 at isely.net
>>> Betreff: [pvrusb2] Re: xawtv recording?
>>> Datum: Tue, 8 Nov 2005 23:12:15 -0800 (PST)
>>>
>>>
>>>> For recording, all you really have to do is:
>>>>
>>>> $ cat /dev/v4l/video0 > recorded.mpg
>>>
>>>
>>> Note that this only works to a certain size.
>>> On my 2.6.14 kernel this stopped after scribbling 2 GB
>>> (which is in the default settting of 6 Mbit/s less
>>> than 1 hr of video). So this is ok for a short show,
>>> but not for a movie (unless you want to give up
>>> quality).
>>>
>>> Frans
>>>
>>
>> That way I've recorded whole films each with a file size way beyond 2GB.
>> What file system did you use? The 2GB boundary sounds strangely 
>> familiar to
>> me (VFAT?)..
>>
This holds true for ext3 and is a generic limit as Mike has explained 
below. We've found this limit with growisofs doing backups. I've also 
noticed this on DVD media - multiple mpg files that are read 
sequentially. Mike's command is a great start to simplifying output to a 
file; however, the data should be piped to a buffering program to create 
multiple files that are <= 2GB.

$ cat /dev/v4l/video0 > | mpegsplitterthingy -f recorded.mpg

Where the output would be: recorded.mpg, recorded1.mpg, recorded2.mpg, 
etc. Each at the boundary. The splitter would hold the data in a fifo 
buffer during the write(), goto next file.

> 2GB is the single file size limit you will encounter for ANY file 
> system when using 32 bit file access semantics.  If, for example, your 
> app depends on using lseek(), that function uses a 32 bit pointer 
> which limits you to 2GB (well, 4GB, but file offsets have 
> traditionally been signed ints, which gives you only 31 bits or 2GB of 
> addressing range).  There is another call (llseek()?  not sure..) 
> which uses a 64 bit pointer and thus avoids the limit.  So it may not 
> matter at all what the underlying file system is, if the app is using 
> system calls which can't get past 32 bits of addressing.  I wouldn't 
> be surprised if the apparent conflicting answers here might be due to 
> xawtv being configured differently in each case.  Check your config 
> step results - there may be something there which enables the use of 
> 64 bit addressed file I/O.  Note: This is wild speculation; I have no 
> special experience about xawtv which would tell me that this is the 
> root cause, and under NO circumstance am I volunteering here to start 
> trying to support big sticky ball of mud otherwise known as xawtv :-)
>
>   -Mike
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>pvrusb2 mailing list
>pvrusb2 at isely.net
>http://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2
>  
>

-- 
William G. Crowell, VP & CTO
Crowell Systems
4235 South Stream Blvd Suite 100
Charlotte  NC 28217
704.665.2000 fax 704.665.2180 



More information about the pvrusb2 mailing list