Related
Base on this thread:
http://androidforums.com/motorola-triumph/386245-motorola-triumph-camcorder-720p-stats.html
I'm looking for some feedback from other users on their max quality 720p camcorder video framerates. I've just dropped in a class 10 32gb micro-sd card, and it would seem there is absolutely nothing I can do to get the max framerate above 9 or so.
The video recording capabilities on this phone, although somewhat usable, are no where near what I thought a device with this hardware could achieve.
KryptoNyte39 said:
Base on this thread:
http://androidforums.com/motorola-triumph/386245-motorola-triumph-camcorder-720p-stats.html
I'm looking for some feedback from other users on their max quality 720p camcorder video framerates. I've just dropped in a class 10 32gb micro-sd card, and it would seem there is absolutely nothing I can do to get the max framerate above 9 or so.
The video recording capabilities on this phone, although somewhat usable, are no where near what I thought a device with this hardware could achieve.
Click to expand...
Click to collapse
It might only be capable of a max of 24fps as IIRC I think that I read that on the MSM8X55 datasheet... I really should take some time to dig that up again...
try encoding with h.263, it uses less processing power to encode so there should get a boost in framerate
Not sure if you had time to look at the thread I linked to, but I posted results for all three of the encoding options, and all three of them had identical "max framerates" of 8.621 fps.
I gotta be doing something wrong here.
The video camera isn't the most important part of this phone for me, but I was hoping to make it a bit more usable if possible. If anyone else could just do a similar test and check their framerates with "MediaInfo," it would be much appreciated (it's not a very complicated process).
Changing the audio encoder, samplerate and bitrate helped ENORMOUSLY with the audio. It's like night and day. You have to download lgcamera though.
AAC Encoder (Says may not be supported, apparently is)
Samplerate 44100
Bitrate 256000
Allen, what are you resulting framerates?
Here's a test of audio between lgCamera at highest audio settings, and the camcorder app stock. Frame rate is bad because it's in really low light. It's almost as if they purposely made this phone act like crap.
lgCamera Test 44100 Samplerate 320000 Bitrate
http://www.youtube.com/watch?v=r34PuJCHYMA
Stock camcorder app
http://www.youtube.com/watch?v=x1O26sC7rJc
allenk09 said:
.. It's almost as if they purposely made this phone act like crap...
Click to expand...
Click to collapse
You got that right.
I'm having the same problem with the framerate (audio is less of a concern for now). I'll play around with lgcamer in the daytime tomorrow, and see if there is any improvement.
Bad audio quality helps the video quality seem worse than it really is.
allenk09 said:
Changing the audio encoder, samplerate and bitrate helped ENORMOUSLY with the audio. It's like night and day. You have to download lgcamera though.
AAC Encoder (Says may not be supported, apparently is)
Samplerate 44100
Bitrate 256000
Click to expand...
Click to collapse
Odd. I tried these settings on my rooted Triumph and the audio doesn't seem to record properly. It just has random little blips of audio every so often.
Could it be the video settings that I have are off? Should this work with the free version of lgcamera?
rubejb said:
Odd. I tried these settings on my rooted Triumph and the audio doesn't seem to record properly. It just has random little blips of audio every so often.
Could it be the video settings that I have are off? Should this work with the free version of lgcamera?
Click to expand...
Click to collapse
Not a clue, I bought the pro version.
Has anyone tried editing media_profiles.xml?
I don't know if that will break it without other edits or not.... I was looking into getting the Moto Bravo camera to work on CM7 and one of the directions I was advised was media_profiles, upon opening the file you'll find contents like:
Code:
<MediaSettings>
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
<CamcorderProfiles>
<EncoderProfile quality="high" fileFormat="mp4" duration="60">
<Video codec="m4v"
bitRate="1000000"
width="640"
height="480"
frameRate="24" />
<Audio codec="aac"
bitRate="96000"
sampleRate="16000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="m4v"
bitRate="256000"
width="176"
height="144"
frameRate="15" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="90" />
<ImageEncoding quality="75" />
<ImageEncoding quality="60" />
<ImageDecoding memCap="20000000" />
<Camera previewFrameRate="0" />
</CamcorderProfiles>
<EncoderOutputFileFormat name="3gp" />
<EncoderOutputFileFormat name="mp4" />
<!--
If a codec is not enabled, it is invisible to the applications
In other words, the applications won't be able to use the codec
or query the capabilities of the codec at all if it is disabled
-->
<VideoEncoderCap name="h263" enabled="true"
minBitRate="64000" maxBitRate="1500000"
minFrameWidth="176" maxFrameWidth="640"
minFrameHeight="144" maxFrameHeight="480"
minFrameRate="1" maxFrameRate="24" />
<VideoEncoderCap name="m4v" enabled="true"
minBitRate="64000" maxBitRate="1500000"
minFrameWidth="176" maxFrameWidth="640"
minFrameHeight="144" maxFrameHeight="480"
minFrameRate="1" maxFrameRate="24" />
<VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="1500000"
minFrameWidth="176" maxFrameWidth="640"
minFrameHeight="144" maxFrameHeight="480"
minFrameRate="1" maxFrameRate="15" />
<AudioEncoderCap name="amrnb" enabled="true"
minBitRate="5525" maxBitRate="12200"
minSampleRate="8000" maxSampleRate="8000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="aac" enabled="true"
minBitRate="8192" maxBitRate="96000"
minSampleRate="16000" maxSampleRate="16000"
minChannels="1" maxChannels="1" />
</MediaSettings>
Now this is from a random page off cyanogenmod but could it be that your etc/media_profiles.xml is limiting your framerate?
Camera?
Did editing that XML file ever work? I'm running CM7
If you're running the TG-Reloaded CM7 ROM, it has the AAC audio modifications in media_profile already, and there is a dramatic difference.
i dont like to talk alot here we go
use any explorer i prefer ES File it free and good
now starting
1- open the explorer and got to /system/etc/
2- scroll down till u find this file mixer_paths.xml and open it as text (ES File)
3- now scroll down till u find this line <!-- These are actual sound device specific mixer settings -->
under it look for this
<path name="speaker">
<ctl name="SLIM RX1 MUX" value="AIF1_PB" />
<ctl name="SLIM_0_RX Channels" value="One" />
<ctl name="RX7 MIX1 INP1" value="RX1" />
<ctl name="RX7 Digital Volume" value="67" />
<ctl name="SPK DRV Volume" value="6" />
<ctl name="SPK DAC Switch" value="1" />
</path>
the red numbers will make the speaker loud and louder than stock LG roms also
me for 1st red line i use 75 for 2nd i keep it without any change
scroll down again till u find this lines
<path name="headphones">
<ctl name="SLIM RX1 MUX" value="AIF1_PB" />
<ctl name="SLIM RX2 MUX" value="AIF1_PB" />
<ctl name="SLIM_0_RX Channels" value="Two" />
<ctl name="RX1 MIX1 INP1" value="RX1" />
<ctl name="RX2 MIX1 INP1" value="RX2" />
<ctl name="CLASS_H_DSM MUX" value="DSM_HPHL_RX1" />
<ctl name="HPHL DAC Switch" value="1" />
<ctl name="RX1 Digital Volume" value="58" />
<ctl name="RX2 Digital Volume" value="58" />
<ctl name="HPHL Volume" value="15" />
<ctl name="HPHR Volume" value="15" />
</path>
this lines will make the headphone BOOOOM :cyclops:
for me 1st and 2nd 65
3rd and 4th 20
go high or low and test till u be satisfied
u can also gain handset and mic all in this file
use this guid at own ur risk
it will work for all G2 models using any kit kat rom.
Update 1:
In all CM and Aosp base the quality of speaker sound very bad because more bass
If u follow this steps u will have a close lg stock quality
1: download the last version of viper4android FX
2: open file explorer and go to system/app and delete DSP and reboot ur device
3: open file explorer and push viper4android FX to system/app then reboot
4: open viper4android FX and install driver (choose super quality) after it done reboot
5: open viper4android FX and under phone speaker check the box beside Enable v4A under master power
And under firequalizer check the box beside Enable and in select preset choose custom and in equalizer
down the 1st five bars from the left side
6: press menu and select show notification ( this is to make the app not closed by system)
If u don't see any change in sound make sure the viper4android driver is working by press menu and choose driver status
update 2 : if u just need a fix to reduce the bass from speaker u can use flash it from here
why is it that when I try to save the file it sasys "eror occured when trying to save the file. it will not be saved."? Im using ES File explorer
Edit: Silly me, I didn't make give es file explorer permission to rewrite files with root..
HOLY ****. that's very loud and AWESOME!! THANKS
Btw, will this switch back to default everytime i update CM11?
@Henryy97 yeah you'll have to do this every time you flash a nightly. It gets overwritten with every flash.
Henryy97 said:
why is it that when I try to save the file it sasys "eror occured when trying to save the file. it will not be saved."? Im using ES File explorer
Edit: Silly me, I didn't make give es file explorer permission to rewrite files with root..
HOLY ****. that's very loud and AWESOME!! THANKS
Btw, will this switch back to default everytime i update CM11?
Click to expand...
Click to collapse
u can take the file u edit and save it in ur SD and after flash any kitkat rom just replace it i do that save time
MaZaGnGy said:
u can take the file u edit and save it in ur SD and after flash any kitkat rom just replace it i do that save time
Click to expand...
Click to collapse
Awww. Really didn't wanna have to do that but this loud sound is definitelyyy worth it!
Amazing tip. We will need this information much more once international kernels are shared for 4.4
Flashed new Houstonn's ROM and this HELPED alot and could pretty much customize how loud I set my device. THANKS
Thanks for this.
Sent from my LG-VS980 using Tapatalk
whoa!!!!!, thanks for the headset tip. Really made a difference
Thank you for this. Also, your values are perfect.
Sent from my G2 using Tapatalk
is it possible to have this mod in a flashable zip?
i don't feel confident editing files with a file browser
Wow it really makes a huge diffrence.
But the sound now sounds horrible, Any way to change that ?
rkiller51 said:
Wow it really makes a huge diffrence.
But the sound now sounds horrible, Any way to change that ?
Click to expand...
Click to collapse
Some sounds gets distorted cause the speakers can't handle the higher output. Nothing to do except lowering the volume.
Sent from my G2 using Tapatalk
---------- Post added at 03:26 PM ---------- Previous post was at 03:23 PM ----------
provolinoo said:
is it possible to have this mod in a flashable zip?
i don't feel confident editing files with a file browser
Click to expand...
Click to collapse
That's probably not as wise as the file you need to edit can be different from rom to rom and could possibly cause a softbrick or other issues. This is the safest way to do it.
Sent from my G2 using Tapatalk
I wish there was a fix like this for AOSP roms.
Bwangster12 said:
I wish there was a fix like this for AOSP roms.
Click to expand...
Click to collapse
Um, this is for AOSP roms..
Sent from my LG-D800
btm fdr said:
Um, this is for AOSP roms..
Sent from my LG-D800
Click to expand...
Click to collapse
I guess with ES File Explorer, I needed to let the entire file load or something. That little percentage meter at the bottom loads to a 100%. I was apparently trying to edit the file prior to that and all the contents weren't visible.
Henryy97 said:
Btw, will this switch back to default everytime i update CM11?
Click to expand...
Click to collapse
Use the app CyanDelta which is a delta update, it only downloads the changed files for each nightly and therefore is not going to replace that modified file each update, of course if the file gets changed then it will but that shouldn't be very often.
Sent from my LG-D802
MaZaGnGy said:
i dont like to talk alot here we go
use any explorer i prefer ES File it free and good
now starting
1- open the explorer and got to /system/etc/
2- scroll down till u find this file mixer_paths.xml and open it as text (ES File)
3- now scroll down till u find this line <!-- These are actual sound device specific mixer settings -->
under it look for this
<path name="speaker">
<ctl name="SLIM RX1 MUX" value="AIF1_PB" />
<ctl name="SLIM_0_RX Channels" value="One" />
<ctl name="RX7 MIX1 INP1" value="RX1" />
<ctl name="RX7 Digital Volume" value="67" />
<ctl name="SPK DRV Volume" value="6" />
<ctl name="SPK DAC Switch" value="1" />
</path>
the red numbers will make the speaker loud and louder than stock LG roms also
me for 1st red line i use 75 for 2nd i keep it without any change
scroll down again till u find this lines
<path name="headphones">
<ctl name="SLIM RX1 MUX" value="AIF1_PB" />
<ctl name="SLIM RX2 MUX" value="AIF1_PB" />
<ctl name="SLIM_0_RX Channels" value="Two" />
<ctl name="RX1 MIX1 INP1" value="RX1" />
<ctl name="RX2 MIX1 INP1" value="RX2" />
<ctl name="CLASS_H_DSM MUX" value="DSM_HPHL_RX1" />
<ctl name="HPHL DAC Switch" value="1" />
<ctl name="RX1 Digital Volume" value="58" />
<ctl name="RX2 Digital Volume" value="58" />
<ctl name="HPHL Volume" value="15" />
<ctl name="HPHR Volume" value="15" />
</path>
this lines will make the headphone BOOOOM :cyclops:
for me 1st and 2nd 65
3rd and 4th 20
go high or low and test till u be satisfied
u can also gain handset and mic all in this file
use this guid at own ur risk
it will work for all G2 models using any kit kat rom
Click to expand...
Click to collapse
Sorry guys,
But root is necessary or may i use es and this mod without rooting device?
Many thanks,anyway
You have to be able to modify and save the file so yes.
LG-VS980
diegocapassi said:
Sorry guys,
But root is necessary or may i use es and this mod without rooting device?
Many thanks,anyway
Click to expand...
Click to collapse
/system is read only unless your routed so yeah you do.
Sent from my LG-D802
Anyone here used a Motorola device with stock camera app using "Concert" mode and been able to record crystal-clear audio in a noisy environment without distortion? Whether you have or not, it works very well an I am trying to figure out how to get similar results with my Qualcomm based AT&T branded Galaxy S4 running Cyanogenmod 11 latest nightlies. It'd be great to find out if any solutions will work for other devices as well. I know very well that iOS devices can record video in noisy environments flawlessly without having to change any microphone settings at all.
To begin, the stock touchwiz configuration and AOSP-based rom configurations currently capture extremely distorted audio when you are in loud environment on the Galaxy S4, quite certain most all of the other Galaxy devices as well. In a quiet environment, the audio capture is awesome and in 2 channel stereo.
Digging into the audio configuration file, I've found many parameters that can be adjusted, changed, replaced, etc.
The file /system/etc/snd_soc_msm/snd_soc_msm_2x_Fusion3 is the audio configuration file.
It can be open and edited directly on the device using any text editor.
Here is the settings for the "camcorder" profile when recording video in the camera app:
Code:
[B][COLOR="DarkRed"]SectionDevice
Name "Camcorder Tx"
Comment "Camcorder Tx device"
EnableSequence
'SLIM_0_TX Channels':0:Two
'SLIM TX7 MUX':0:DEC3
'DEC3 MUX':0:ADC4
'ADC4 Volume':2:91.7%
'DEC3 Volume':2:84%
'SLIM TX8 MUX':0:DEC4
'DEC4 MUX':0:ADC3
'ADC3 Volume':2:91.7%
'DEC4 Volume':2:84%
'MICBIAS3 CAPLESS Switch':1:1
EndSequence
DisableSequence
'SLIM TX7 MUX':0:ZERO
'DEC3 MUX':0:ZERO
'ADC4 Volume':1:0
'DEC3 Volume':1:67%
'SLIM TX8 MUX':0:ZERO
'DEC4 MUX':0:ZERO
'ADC3 Volume':1:0
'DEC4 Volume':1:67%
'MICBIAS3 CAPLESS Switch':1:0
EndSequence
ACDBID 56:2
EndSection[/COLOR][/B]
Adjusting volume percentages does result in differences in recording levels of the left/right channel, but what I am really looking for is the possibility of using Auto-gain control. I have read over and over that the audio hardware of these qualcomm processors do have auto-gain control in the audio processing. Does anyone know the perimeters here that enable it?
Apps like Tapemachine (a very awesome audio recording and editing app https://play.google.com/store/apps/details?id=com.samalyse.free.tapemachine ) has an option for Auto-gain control. Is this app using a hardware based auto-gain control or is it rendering within the app? Either way, any information leading towards the development of auto-gain control in video/audio recording in AOSP android would be great help. I'm not much of a programmer but I'm willing to dig into putting work into the AOSP camera app to enable this feature.
Thanks for reading.
-Steve
Changing the volume sensitivities in the lines above to something lower, ~54ish percent dramatically improved the audio recording in loud environments. The audio in my vehicle is really loud, figured it was a good place to test it. Before modifying the file, the sound was entirely inaudible distortion.
This works very well, it's just a drag to have to edit the file manually, reboot, and then go back to camera app and then record to get different levels of audio capture sensitivity.
Anyone want to help out with being able to control audio gain in video recording?
I'm looking for that too...
Do You compare gain and quality audio in video in Stock (Galaxy S4) and AOSP camera?
Camera App Name
Hi Steve,
I found your post very interesting. The issue is, I am not finding the camera app you are referring to (I am looking for an app with the possibility of lowering mic gain).
Thanks a lot!!
Juan
Hi, I wanted to lower the JPG compression of Google Camera (I'm assuming stock is 85% I want to make it 95%) I also wanted to know I can increase microphone volume... I only know how to increase headphone volume, and speaker volume...thanks.
As far as I know the compression can be adjusted in media_profiles.xml.
I found that these lines need to be adjusted:
Code:
<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
I changed all values to 100 and the quality seems to be a little better. If you want to reduce the compression you could also raise this value:
Code:
<ImageDecoding memCap="20000000" />
So the pictures are able to save more information, which will make them bigger, but they will be at a better quality (not that noticeable though).
And for microphone volume (for camera. I don't know which one is used during phone calls) in mixer_paths.xml under
Code:
<path name="camcorder-mic">
<path name="handset-mic" />
<ctl name="ADC1 Volume" value="15" />
change the value of
Code:
<ctl name="DEC6 Volume" value="88" />
I use the value of 96 for "DEC6 Volume", which seems to be ok, though I haven't tested it thoroughly.
I am not a dev so I cannot offer any warranty that this is 100% the most accurate method to do these, but I tested them on my Nexus and they worked so far.
If anyone knows better I'd like to hear their opinion, because I'm interested in these too.
Try Real Nexus 5 Volume booster in the app section for headphone and speaker boosts. The rest, I use Franco Kernel and I can modify it using his app. The above post is an informative way to do so without using a custom kernel or app.
This is a mod to enable stereo audio recording with camcorder.
This isn't my work actually, it's done by @chdloc, i was looking for something like this and found his thread for nexus 5 and asked if he can make it for nexus 5x too. and he did it :good: so please give him thanks instead of me
Requirements:
Root
A file explorer ( i use solid explorer)
Installation:
make a backup of your stock media_profiles.xml and mixer_paths.xml files (attached in the "stock_files" archive for convenience)
manually push the two files in the "Stereo_audio_mod_nexus5x" archive to /system/etc/
adjust the permissions of the two files to 644 (rw-r--r--)
reboot
These are not flashable zips For flashable zip see post #2.
Enjoy stereo audio in all videos you record
Welcome side effect:
In addition to the camcorder now being able to capture stereo audio, all audio recording apps that allow the microphone
to be changed to the "camcorder" microphone (provided the app itself offers stereo processing) can take advantage of this mod, too.
Apps that are capable of recording stereo audio with this mod are "Voice Recorder" and "Easy Voice Recorder Pro".
I have created a flashable zip for the mod for you guys! @op feel free to add link in the first post
https://www.androidfilehost.com/?fid=673368273298917236
So with Google Camera I can't record stereo audio?
I assume this disables surround sound/dual mono mod, since it's replacing same files?
axiel7 said:
So with Google Camera I can't record stereo audio?
Click to expand...
Click to collapse
previously you can't, but now with this mod you can record stereo audio. (or with any camera app)
resutatto said:
I assume this disables surround sound/dual mono mod, since it's replacing same files?
Click to expand...
Click to collapse
Most likely yes. i don't use surround sound mod so i don't know.
kraatus90 said:
previously you can't, but now with this mod you can record stereo audio. (or with any camera app)
Most likely yes. i don't use surround sound mod so i don't know.
Click to expand...
Click to collapse
What lines do you edit for stereo recording? Maybe we can make a surround mod with stereo recording
resutatto said:
I assume this disables surround sound/dual mono mod, since it's replacing same files?
Click to expand...
Click to collapse
No, it doesn't.
axiel7 said:
What lines do you edit for stereo recording? Maybe we can make a surround mod with stereo recording
Click to expand...
Click to collapse
in mixer_path-
add this -
Code:
<path name="camcorder-stereo-mic">
<ctl name="AIF1_CAP Mixer SLIM TX7" value="1"/>
<ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
<ctl name="SLIM_0_TX Channels" value="Two" />
<ctl name="SLIM TX7 MUX" value="DEC10" />
<ctl name="DEC10 MUX" value="DMIC3" />
<ctl name="SLIM TX8 MUX" value="DEC7" />
<ctl name="DEC7 MUX" value="DMIC1" />
<ctl name="DEC7 Volume" value="78" />
<ctl name="DEC10 Volume" value="78" />
</path>
and modify this -
Code:
<path name="camcorder-mic">
<path name="camcorder-handset-mic" />
</path>
into this -
Code:
<path name="camcorder-mic">
<path name="camcorder-stereo-mic" />
</path>
That's what i see changed compared to stock.
Flashable zip with stereo camcorder and surround combined into one.
Please test whether it works, because I replaced the files on my phone manually.
Some info: Google Camera records in stereo @48 kHz ~98 kbps.
Snap Camera is available to record @48 kHz 192 kbps.
Test It on 7.11 puer nexus, working good!! Thank you for work....
Thank you for sharing
przemcio510 said:
Flashable zip with stereo camcorder and surround combined into one.
Please test whether it works, because I replaced the files on my phone manually.
Some info: Google Camera records in stereo @48 kHz ~98 kbps.
Snap Camera is available to record @48 kHz 192 kbps.
Click to expand...
Click to collapse
So this is a flashable zip with surround sound mod and stereo audio recording mod?
I'm not sure if this mod is responsible but since I flashed it my girlfriend claims that my voice reception is terrible. I told her for the last time stop blaming my phone, and to get something to replace that crappy Galaxy S3 of hers.
For me, the first zip does not break surround sound.
Ryder. said:
So this is a flashable zip with surround sound mod and stereo audio recording mod?
Click to expand...
Click to collapse
Yes
leolawliet said:
I'm not sure if this mod is responsible but since I flashed it my girlfriend claims that my voice reception is terrible. I told her for the last time stop blaming my phone, and to get something to replace that crappy Galaxy S3 of hers.
Click to expand...
Click to collapse
You may try to disable noise cancelling on your side by changing persist.audio.fluence.voicecall to false in build.prop. If it doesn't help, then her phone might be the problem
doggie13_ said:
For me, the first zip does not break surround sound.
Click to expand...
Click to collapse
Flashing your zip didn't work for me, i had to manually copy both files to the system/etc folder.
Same with @przemcio510 combined zip file. I'm using the combined mod and both stereo recording and "surround" sound are working.
Stock_files.zip gives me a error och stock rooted mmf26f.
RoadToNever said:
Stock_files.zip gives me a error och stock rooted mmf26f.
Click to expand...
Click to collapse
Did you even read the OP?
kraatus90 said:
These are not flashable zips For flashable zip see post #2.
Click to expand...
Click to collapse
---------- Post added at 04:12 PM ---------- Previous post was at 03:35 PM ----------
I increased the bitrate for the recorded audio to 192kbps as 96kpbs is pretty low for stereo and made a flashable zip with both stereo recording and DualMonoV2 combined. I've also attached a flashable zip with the stock files.
Thanks to @Jose-MXL @chdloc and @kraatus90 for these mods.
Can you make a module for magisk with this mod (stereo mic + dual mono)? I don't know if is easy or complicated to achieve.
v1c70r said:
Can you make a module for magisk with this mod (stereo mic + dual mono)? I don't know if is easy or complicated to achieve.
Click to expand...
Click to collapse
Here's a zip for Magisk. I don't know if it works but I followed the template they have.