Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > General > Audio encoding

Reply
 
Thread Tools Search this Thread Display Modes
Old 25th December 2007, 16:37   #2241  |  Link
rickardk
Registered User
 
Join Date: Jul 2007
Posts: 259
Quote:
Originally Posted by madshi View Post
But audio sync is correct? This could be a software setup related problem.
Yes it's in sync. I really think it's a frame rate/refresh rate missmatch problem.

Quote:
Originally Posted by madshi View Post
23 and 59 sound strange to me. It's strange to name "23.976" as "23". But who knows... Maybe PowerStrip would be worth a try for you?
Powerstrip does not work well with the new line of nvidia cards. Don't know why they are naming the refresh rates like that.

Quote:
Originally Posted by madshi View Post
You mean the video stutters sometimes? Is this with MPEG2, VC-1 or h264 (or with all three)? Maybe your PC is not fast enough to handle some of those movies?
It looks like video drops some frames (or not sync them with the refresh rate). The EVR renderer says no frames are dropped though. It's a very very subtle stutter. I can't spot it when I feed my display with 59.97 (the 3:2 pulldown mask small problems). I have a Q6600 at 3GHz. Should be enough. Yes I have seen this with all three codecs. The strange thing is that by setting a less exact (23.976) timecode thoose titles will playback perfect.

The example mentioned above The Last Samurai will have small micro stutters like once every minute when played back with the timecode for the mkv set to 24000/1001 (or if I play back the disc in PowerDVD). But when I rewrite the mkv with the timecode set to the less exact 23.976, the mkv plays perfect smooth all through the movie.

Don't know how the renderer is working but it may be correcting something to match audio and video sync when the timecode is set to 24000/1001.

To make it even more strange. NO title (yet) is experience any problem (the other way around) by using the less exact timecode.
So it may be better to have eac3to use 23.976 by default.

If someone (who like me have a 24p capable TV or projector and a graphic card that can output 24p) can test this it would be great!!

Done so much testing on this tonight that my eyes are bleeding...
Quote:
Originally Posted by madshi View Post
You set a timecode when remuxing? How/where?
Don't know how to set 24000/1001 with a tmecode file in mkvmerge (can just set decimal values...any ideas?).

But to be able to compare I let eac3to set the timecode to 24000/1001 (don't know how you do this). Then I make a copy and run it through mkvmerge with a timecode file loaded with assume 23.976.

In mkvinfo the default duration for video frame shows the exact same value for mkvs with 24000/1001 and 23.976. I assumed that this would tell me that they should playback in the exact same way. But I guess I REALLY don't understand how the frames are handled.

For testing of Blu-rays I compare playback of the original m2ts with a mkv with timecode set to 23.976.

Last edited by rickardk; 25th December 2007 at 16:52.
rickardk is offline   Reply With Quote
Old 25th December 2007, 18:20   #2242  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,137
Quote:
Originally Posted by nautilus7 View Post
I guess the q is for buzzqw. Don't know what stdout is anyway.
Yeah, the q was for buzzqw. I could allow eac3to to output audio data through "stdout". If another program is written to accept data through "stdin" eac3to could pass audio data to the other program without having to write the data to a temporary file first.
madshi is offline   Reply With Quote
Old 25th December 2007, 18:26   #2243  |  Link
Thunderbolt8
Registered User
 
Join Date: Sep 2006
Posts: 2,171
Quote:
Originally Posted by rickardk View Post
Don't know how to set 24000/1001 with a timecode file in mkvmerge (can just set decimal values...any ideas?).
yes, you can only set decimal values, and not the "/". so what works best is calc, then calculate 24000/1001 and just copy & paste the result into that .txt file (and exchange the comma for a dot!)
Thunderbolt8 is offline   Reply With Quote
Old 25th December 2007, 18:32   #2244  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,137
Quote:
Originally Posted by rickardk View Post
It looks like video drops some frames (or not sync them with the refresh rate). The EVR renderer says no frames are dropped though. It's a very very subtle stutter. I can't spot it when I feed my display with 59.97 (the 3:2 pulldown mask small problems). I have a Q6600 at 3GHz. Should be enough. Yes I have seen this with all three codecs.
If you've seen it with all 3 codecs then it's most probably not caused by a too slow PC.

Quote:
Originally Posted by rickardk View Post
The strange thing is that by setting a less exact (23.976) timecode thoose titles will playback perfect.

The example mentioned above The Last Samurai will have small micro stutters like once every minute when played back with the timecode for the mkv set to 24000/1001 (or if I play back the disc in PowerDVD). But when I rewrite the mkv with the timecode set to the less exact 23.976, the mkv plays perfect smooth all through the movie.

Don't know how the renderer is working but it may be correcting something to match audio and video sync when the timecode is set to 24000/1001.

To make it even more strange. NO title (yet) is experience any problem (the other way around) by using the less exact timecode.
So it may be better to have eac3to use 23.976 by default.
Well, I'm not so sure about that. Obviously your graphics card is set to 23.976 and not to 24/1.001. Now I don't know why that is the case. Maybe your display is reporting that it wants 23.976 instead of 24/1.001. Or maybe your graphics card isn't able to output 24/1.001, but only 23.976. Either way it could be related to your specific display. Another person with different hardware could have an experience which is exactly the opposite of yours. One thing is for sure: 24/1.001 is more correct than 23.976 (although the difference is really small). If that wasn't the case I'd change back to 23.976 right now. But since 24/1.001 is the more correct value, I don't really like the idea of going back to 23.976 because of one single experience report, only. No offense! I do appreciate the feedback very much.

Quote:
Originally Posted by rickardk View Post
If someone (who like me have a 24p capable TV or projector and a graphic card that can output 24p) can test this it would be great!!
Good call! We do need testers here...
madshi is offline   Reply With Quote
Old 25th December 2007, 20:04   #2245  |  Link
rickardk
Registered User
 
Join Date: Jul 2007
Posts: 259
I agree to 100%. But I'm starting to think that 3 decimals may be a maximum of what is used of modern graphic cards. I don't really have a clue, just speculations. But my display (TV) is the latest from Pioneer and should handle 24p perfect.
Actuallt I know it does, because I tested with a stand alone Pioneer Blu-ray a month ago with perfect result.

But what does that mean. I have searched the net all day for spec on what refresh rates modern 24p capable TVs and projectors expects. And that refresh rate that stand alone players actually outputs.

Also if someone know and could explain how the frames are handled by the renderer it would be great. Where does the rounding and calculation on how long to show each frame take placè? Does it take the refresh rate output into tte equation (matching)? I know that the use of reclock was essential before we had EVR.

As I'm going to´remux my whole collection it would be great to do it "right".

Last edited by rickardk; 25th December 2007 at 20:12.
rickardk is offline   Reply With Quote
Old 25th December 2007, 20:11   #2246  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,137
Ok, now if it's one of those new Kuro Pioneers then I might reconsider, since one of those may end up in my home, too, sooner or later...
madshi is offline   Reply With Quote
Old 25th December 2007, 20:36   #2247  |  Link
rickardk
Registered User
 
Join Date: Jul 2007
Posts: 259
Quote:
Originally Posted by madshi View Post
Ok, now if it's one of those new Kuro Pioneers then I might reconsider, since one of those may end up in my home, too, sooner or later...
It's a 60 inch 1080p Pioneer LX608 (G8 KURO)...
I'm about to test with my ATI2600 now...If it's related to the graphic card. I hope not because PQ is better on my nvidia 8600.

Last edited by rickardk; 25th December 2007 at 20:38.
rickardk is offline   Reply With Quote
Old 25th December 2007, 20:54   #2248  |  Link
buzzqw
HDConvertToX author
 
Join Date: Nov 2003
Location: Cesena,Italy
Posts: 6,552
@madshi

Quote:
Which format do these tools expect via stdout?
varius.. from raw pcm (aften) to WAV file, from mono to multi channels, sample rate can be 8000 to 48000., from 8 to 32 floating bit...
oggenc can parse
Code:
 OggEnc input files must currently be 32, 24, 16, or 8 bit PCM WAV, AIFF, or  AIFF/C files, or 32 bit IEEE floating point WAV. Files may be mono or stereo (or more channels) and any sample rate.
neroaacenc
Code:
The file must be in Microsoft WAV format and contain PCM data.
for enc_aacplus can be wav or raw

a messy.. .. anyway 16 bit wav file is accepted by all
if sample rate, bit depth, wav or raw pcm and channels can be specified, any external encoder will accept

about ts files (both mpeg and avc) ?

thanks for your interest

BHH
__________________
HDConvertToX: your tool for BD backup
MultiX264: The quick gui for x264
AutoMen: The Mencoder GUI
AutoWebM: supporting WebM/VP8
buzzqw is offline   Reply With Quote
Old 25th December 2007, 20:59   #2249  |  Link
tebasuna51
Moderator
 
tebasuna51's Avatar
 
Join Date: Feb 2005
Location: Spain
Posts: 5,664
Quote:
Originally Posted by madshi View Post
Which format do these tools expect via stdout?
Same than wav files with standard header and:

Lame (.mp3): only mono or stereo and int samples 16, 24 or 32 bits (don't support float)

NeroAacEnc (.mp4): support 5.1 and any bitdepth 16, 24, 32 int or 32 float. Support big files > 4GB (with -ignorelength) if the value in field RiffLength is 36 + DataLength.

OggEnc2 (.ogg): same as NeroAacEnc (support for big files not tested)


EDIT: Hello buzzqw, we have crosspost. And yes Enc_aacplus to use CT aac encoder (from winamp) only work with 16 bit int.

Last edited by tebasuna51; 25th December 2007 at 21:24. Reason: 36 instead 24 (really 0x24 hex)
tebasuna51 is offline   Reply With Quote
Old 25th December 2007, 21:39   #2250  |  Link
MuteyM
Registered User
 
Join Date: Nov 2007
Posts: 19
Quote:
Originally Posted by madshi View Post
Yeah, it seems to be a bug in the libav decoder. My guess is that the decoder believes that the truehd stream is done and finished and then surprisingly there's more truehd data coming in. And the decoder doesn't seem to like that. Should be easy to fix, though. Give the decoder developer a few days. His replies sometimes take a few days, but he always comes back with a fix.
Hi Madshi, since it might take awhile to get libav updated, any chance you can update eac3to to not delete the output file upon libav error?
MuteyM is offline   Reply With Quote
Old 26th December 2007, 02:10   #2251  |  Link
bmnot
Registered User
 
Join Date: Jun 2007
Posts: 215
I'm getting the same error Chumbo got on page 106, with TrueHD -> DTS using 1.12

Code:
eac3to.exe S:\Movie\HVDVD_TS\PEVOB_1.EVO+S:\Movie\HVDVD_TS\PEVOB_2.EVO 4: M:\movie.dts
EVO/VOB, 1 video track, 4 audio tracks, 2:31:19
1: Joined EVO/VOB file
2: VC-1
3: E-AC3, 5.1 channels, 640kbit/s, 48khz, dialnorm: -27dB
4: TrueHD, 5.1 channels, 48khz, dialnorm: -27dB
5: E-AC3, 5.1 channels, 640kbit/s, 48khz, dialnorm: -27dB
6: E-AC3, 5.1 channels, 640kbit/s, 48khz, dialnorm: -27dB
Extracting audio track number 4...
Removing dialog normalization...
Writing WAVs...
Creating/writing file "M:\movie.L.wav"...
Creating/writing file "M:\movie.C.wav"...
Creating/writing file "M:\movie.LFE.wav"...
Creating/writing file "M:\movie.SL.wav"...
Creating/writing file "M:\movie.SR.wav"...
Creating/writing file "M:\movie.R.wav"...
-------------------------------------------------------------------------------[mlp @ 68A4E2E0]End of stream indicated
[mlp @ 68A4E2E0]Substream 1 parity check failed
[mlp @ 68A4E2E0]Substream 1 checksum failed
[mlp @ 68A4E2E0]Substream 1 length mismatch.
The libav decoder reported an error while decoding.
Retried a few times to the same error message. Even re-ripped with the same error. Have done similar conversions with no problems. I don't want to install Nero.
bmnot is offline   Reply With Quote
Old 26th December 2007, 02:37   #2252  |  Link
nautilus7
Registered User
 
nautilus7's Avatar
 
Join Date: Jan 2006
Location: Athens, Greece
Posts: 1,517
It's a known bug in the ffmpeg decoder. Until it's fixed you'll have to use nero.
nautilus7 is offline   Reply With Quote
Old 26th December 2007, 03:04   #2253  |  Link
calinb
Registered User
 
calinb's Avatar
 
Join Date: Apr 2002
Posts: 306
Quote:
Originally Posted by madshi View Post
Thanks. LPCM demuxing will be fixed in the next build.
No--as always, thank you, madshi. LPCM works great now!
calinb is offline   Reply With Quote
Old 26th December 2007, 10:19   #2254  |  Link
Xorcist
Registered User
 
Join Date: Nov 2001
Posts: 35
Wow, this tool is really evolving! Thanks for the great effort madshi!

I've tried to demux a couple of evos and it seems to work very well! However I have a question regarding the handling of delay. I've tried searching this thread and couldn't find an answer, but forgive me if I've overlooked a post or two.

I have several evos with TrueHD audio and a negative audio delay. I've demuxed them using this command:

Code:
eac3to "T:\sources\movie.EVO" 1: "H:\encoding\movie.h264" 2: "H:\encoding\movie.thd"
This works very well, and since TrueHD can't be delayed the output audio file is named "movie DELAY -67ms.thd". Now I want to make an AC3 out of this file, but I'm unsure as to whether eac3to delays it for me automatically. IMHO it should, but when I compress it to AC3 I get the following output:

Code:
eac3to "H:\encoding\movie DELAY -67ms.thd" "H:\encoding\movie.ac3" -nero
TrueHD, 5.1 channels, 48khz
Decoding with DirectShow (Nero Audio Decoder 2)...
DirectShow reports 5.1 channels, 24 bits, 48khz
Encoding AC3...
Creating/writing file "H:\encoding\movie.ac3"...
This suggests that delay is NOT being applied because when I do this I can see that "Applying RAW/PCM delay...":

Code:
eac3to "H:\encoding\movie DELAY -67ms.thd" "H:\encoding\movie.ac3" -nero -67ms
TrueHD, 5.1 channels, 48khz
Decoding with DirectShow (Nero Audio Decoder 2)...
DirectShow reports 5.1 channels, 24 bits, 48khz
Applying RAW/PCM delay...
Encoding AC3...
Creating/writing file "H:\encoding\movie.ac3"...
PS. I figured maybe I could demux and compress to ac3 in one go, but I guess that's not possible (yet?)

Code:
eac3to "T:\sources\movie.EVO" 1: "H:\encoding\movie.h264" 2: "H:\encoding\movie.ac3" -nero
EVO, 1 video track, 3 audio tracks, 0:50:30
1: h264/AVC, 1080p24 /1.001
2: TrueHD, 5.1 channels, 48khz, dialnorm: -27dB, -67ms
3: AC3, 2.0 channels, 192kbit/s, 48khz, -99ms
4: AC3, 2.0 channels, 192kbit/s, 48khz, -99ms
This audio conversion is not supported.
Xorcist is offline   Reply With Quote
Old 26th December 2007, 13:11   #2255  |  Link
shanghai2004
Registered User
 
Join Date: Jul 2005
Posts: 32
Quote:
Originally Posted by madshi View Post
eac3to v2.12 released

<snap>
* EVO 16 bit and 24 bit LPCM demuxing supported now (need samples for 20 bit)
* some little bugs fixed[/code]
Very good! Thanks a lot!
Tested the LPCM track conversion, goes perfect now. Thanks again!

Some new issues seems to be present:

1) Now eac3to -test reports a problem with Nero
Nero Audio Decoder (Nero 7 or older) is not working correctly
Sonic Audio Decoder (4.1.1.32) works fine
Haali Media Splitter (2007-11-19) is installed
Surcode DTS Encoder (1.0.21.0) is installed
MkvToolnix (v2.1.0) is installed

2) Remux this EVO to MKV now seems to hang eac3to:
C:\HDDVD\HVDVD_TS>e:\eac3to\eac3to concert_pt1_1.evo+concert_pt1_2.evo+concert_p
t2.evo movie.mkv
EVO, 1 video track, 2 audio tracks, 2:44:24
1: Joined EVO file
2: VC-1, 1080i60 /1.001
3: RAW/PCM, 2.0 channels, 24 bits, 48khz
4: DTS Master Audio, 5.1 channels, 24 bits, 48khz, dialnorm: -4dB
Extracting audio track number 4...
Muxing video to Matroska...
Extracting audio track number 3...
Reading RAW/PCM...
Swapping endian...
Encoding FLAC...
Removing dialog normalization...
Decoding with DirectShow (Sonic Audio Decoder)...
DirectShow reports 5.1 channels, 24 bits, 48khz
Encoding FLAC...

...and stays like that, no ---- is showed, 50% cpu usage (dual core), no output after 2 hours of waiting.

Tried to process an episode of BBC's Planet Earth and that works great, so everything seems to be installed OK.

Anything I can try?

Last edited by shanghai2004; 26th December 2007 at 13:35. Reason: Removed typo
shanghai2004 is offline   Reply With Quote
Old 26th December 2007, 14:41   #2256  |  Link
nautilus7
Registered User
 
nautilus7's Avatar
 
Join Date: Jan 2006
Location: Athens, Greece
Posts: 1,517
Quote:
Originally Posted by shanghai2004 View Post
1) Now eac3to -test reports a problem with Nero
Nero Audio Decoder (Nero 7 or older) is not working correctly
Sonic Audio Decoder (4.1.1.32) works fine
Haali Media Splitter (2007-11-19) is installed
Surcode DTS Encoder (1.0.21.0) is installed
MkvToolnix (v2.1.0) is installed
It seems like you don't have nero hd dvd/blu-ray plug-in purchased.

Last edited by nautilus7; 26th December 2007 at 14:44.
nautilus7 is offline   Reply With Quote
Old 26th December 2007, 16:11   #2257  |  Link
Thunderbolt8
Registered User
 
Join Date: Sep 2006
Posts: 2,171
got a problem with the departed HD DVD, wanted to remux the video to .mkv and the truehd audio to flac, but at the end I received this message and I only got the .mkv output file, but no flac file:

Code:
G:\eac3to>eac3to G:\pevob_1.evo+G:\pevob_2.evo 2: departed.mkv 4: departed.flac
EVO, 1 video track, 4 audio tracks, 2:31:19
1: Joined EVO file
2: VC-1, 1080p24 /1.001
3: E-AC3, 5.1 channels, 640kbit/s, 48khz, dialnorm: -27dB
4: TrueHD, 5.1 channels, 48khz, dialnorm: -27dB
5: E-AC3, 5.1 channels, 640kbit/s, 48khz, dialnorm: -27dB
6: E-AC3, 5.1 channels, 640kbit/s, 48khz, dialnorm: -27dB
Extracting audio track number 4...
Removing dialog normalization...
Encoding FLAC...
Muxing video to Matroska...
Creating/writing file "departed.24bit.flac"...
-------------------------------------------------------------------------------
[mlp @ 68A4E2E0]End of stream indicated
[mlp @ 68A4E2E0]Substream 1 parity check failed
[mlp @ 68A4E2E0]Substream 1 checksum failed
[mlp @ 68A4E2E0]Substream 1 length mismatch.
The libav decoder reported an error while decoding.
Waiting for DirectShow decoder thread to finish. Please wait...

G:\eac3to>
any idea what happened? should I just demux the track manually with evodemux and then convert to flac with eac3to?
btw. when I try to seek in that video file and i got a nice buffering % displayed at mpc, which takes awful long and nothing happens until then. maybe the timestamps havent been rewritten in this case? (when I rightclick -> properties on that file and then ->media then as muxer only eac3to and haali directshow is mentioned, while I believe with other files also mkvmerge was mentioned; the track length is also 6 seconds shorter than the audio track length, maybe this might indicate something) or the video remuxing also stopped shortly before the end :S

btw. I get the same error when I rebuilt the flac file seperately with evodemux and then demux it and try to convert it to flac using eac3to:

Code:
G:\eac3tp>eac3to G:\departed.truehd G:\departed.flac
TrueHD, 5.1 Channels, 48kHz, dialnorm -27dB
Removing dialog normalization...
Encoding FLAC...
Creating/writing file "G:\departed.24bit.flac"...
-------------------------------------------------------------------------------
[mlp @ 68A4E2E0]End of stream indicated
[mlp @ 68A4E2E0]Substream 1 parity check failed
[mlp @ 68A4E2E0]Substream 1 checksum failed
[mlp @ 68A4E2E0]Substream 1 length mismatch.
The libav decoder reported an error while decoding.

G:\eac3to>

I did the video remux of the departed also seperately again, without the audio conversion in the same step and now it worked properly:

Code:
G:\eac3to>eac3to G:\pevob_1.evo+G:\pevob_2.evo 2: G:\departed.mkv
EVO, 1 video track, 4 audio tracks, 2:31:19
1: Joined EVO file
2: VC-1, 1080p24 /1.001
3: E-AC3, 5.1 channels, 640kbit/s, 48khz, dialnorm: -27dB
4: TrueHD, 5.1 channels, 48khz, dialnorm: -27dB
5: E-AC3, 5.1 channels, 640kbit/s, 48khz, dialnorm: -27dB
6: E-AC3, 5.1 channels, 640kbit/s, 48khz, dialnorm: -27dB
Muxing video to Matroska...
Rewriting MKV timecodes by using "mkvmerge". Please wait...

mkvmerge v2.1.0 ('Another Place To Fall') built on Aug 19 2007 13:39:56
'G:\departed.old.mkv': Using the Matroska demultiplexer.
'G:\departed.old.mkv' track 1: Using the video output module.
The file 'G:\departed.mkv' has been opened for writing.
progress: 100%
The cue entries (the index) are being written...
Muxing took 887 seconds.

Video track 2 contains 217679 frames.
eac3to processing took 55 minutes, 46 seconds.
Timestamp rewriting took 14 minutes, 47 seconds.
Done.
therefore it seems like that the video remuxing process also stopped because there was an error with the audio conversion, when executing both in the same step as done before.

Last edited by Thunderbolt8; 26th December 2007 at 18:12.
Thunderbolt8 is offline   Reply With Quote
Old 26th December 2007, 16:40   #2258  |  Link
Thunderbolt8
Registered User
 
Join Date: Sep 2006
Posts: 2,171
got another problem with children of men hd dvd:

Code:
G:\eac3to>eac3to G:\feature_1.evo+G:\feature_2.evo 2: G:\children.mkv
EVO, 2 video tracks, 3 audio tracks, 1:49:16
1: Joined EVO file
2: VC-1, 1080p24 /1.001
3: VC-1, 480p30 /1.001
4: E-AC3, 5.1 channels, 1536kbit/s, 48khz, dialnorm: -27dB
5: E-AC3, 5.1 channels, 768kbit/s, 48khz, dialnorm: -27dB
6: E-AC3, 2.0 channels, 192kbit/s, 48khz, dialnorm: -27dB, -27ms
Muxing video to Matroska...
This doesn't seem to be a valid EVO file.
Waiting for DirectShow decoder thread to finish. Please wait...

G:\eac3to>
Thunderbolt8 is offline   Reply With Quote
Old 26th December 2007, 17:26   #2259  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,575
I just want to say thank you to madshi and all others who have contributed to eac3to development. This has become an essential tool for the new wave of video backup. I've backed up nearly half my collection so far, and am very impressed with eac3to's speed, simplicity, and quality.

Thanks!

~MiSfit
Blue_MiSfit is offline   Reply With Quote
Old 26th December 2007, 18:55   #2260  |  Link
bmnot
Registered User
 
Join Date: Jun 2007
Posts: 215
Thunderbolt, look at my post, #2251, and the reply #2252.
I was also working on The Departed.
bmnot is offline   Reply With Quote
Reply

Tags
eac3to

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 01:24.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.