Broadcom Crystal HD is minipcie card dedicated to hardware video decoding.
Presentation:
http://www.youtube.com/watch?v=dkhIZqOePps
This product has its usage on netbooks, especially on Atom without ion. Offloads the CPU and gives possibility to decode even 1080HD video.
Since for some weeks I have available fullHD terrestrial signal, i decided to buy this card and do some tests with Progdvb.
Hardware used:
Netbook Lenovo S10-3t (version with Atom N550, 2gb ram)
Graphics Intel GMA 3150
Tuner Avermedia A316 (DVB-T)
CrystalHD card in version BCM970015 (latest)
Software:
Windows 7 32bit Home Premium
Latest Progdvb
Latest drivers
Once the driver was installed the "Broadcom Decoder" appared in Codecs menu. I use EVR. Later check via Properties confirmed that codec was used properly and it works. Its properties also allow to change preferences of the codec, but default seems to work fine.
If you also change output color format from auto to unsupported mode, you have no possibility to open the codec properties, stream will fail and you have to reinstall the drivers with codec.
Available Demuxers:
Prog
ArcSoft
Microsoft
Cyberlink
Elecard
Most of them work. However Arcsoft cause the stream to hang.
Big fullHD monitor however shows that the image provided by the codec is not so flawless. Resolution seems to be downscaled, so the GPU and CPU is able to handle the stream smoothly. This was visible only when the codec was used in standard way. When I opened youtube, the image seemed to be of much higher quality.
As a result of using this device the CPU usage is 16-25 percent. Previously the battery of the netbook was able to play standard definition TV for 5,5 hours. I have to test now how long it will play with same signal when CPU is not handling the decoding...
some problems:
When selecting HD channel the application might stop responding
Video decoded with this device is somethimes choppy. Reason is unknown.
Re: Broadcom CrystalHD + ProgDVB
#2Thanks for report. I think this device depended from video renderer. Also try Prog Demux.
Re: Broadcom CrystalHD + ProgDVB
#3I will test it bit more over time. Sadly sometimes the system freezed while playing video. Reason also unknown, but never happened before, or using different method of decoding.
Currently i tried to disable/enable timeshift buffer. some results were present, but still seems bit random.
Depending on renderer and demuxer the size of video remain sometimes "native" and cannot be resized to full video window size.
The way how the card decodes the Transport stream ( or *.ts files) is surely downscaling. Standard PAL quality was changed to 720x288. Full HD was changed to 960x270. Since the netbook has native resolution of its display 1024x600 its not a problem. On bigger screen the image looks terrible.
Currently i tried to disable/enable timeshift buffer. some results were present, but still seems bit random.
Depending on renderer and demuxer the size of video remain sometimes "native" and cannot be resized to full video window size.
The way how the card decodes the Transport stream ( or *.ts files) is surely downscaling. Standard PAL quality was changed to 720x288. Full HD was changed to 960x270. Since the netbook has native resolution of its display 1024x600 its not a problem. On bigger screen the image looks terrible.
Avermedia Trinity A707 DVB-T/DVB-S with SatGate
Re: Broadcom CrystalHD + ProgDVB
#4May be this hardware have problem on damaged traffic. Look lost packets counter in ProgDVB.
Re: Broadcom CrystalHD + ProgDVB
#5So, now I am completely sure that the video downscaling is caused by this form of decoding and is specific for *.ts format or transportstreams.
This has nothing to do with lost packets, downscale is done even to fullHD TS files from my harddrive.
Two days ago I installed an SSD drive into my netbook and reinstalled the windows. System now contain no bloatware and work much smoother.
ProgDemug + VMR9 Renderless
You will see "original" size of video as comes out of decoding card.
The stuttering and freezing seems more to be connected with Timeshift buffer than demux... However the timeshift has to be enabled. If not fullHD stream will most likely overflow...
This has nothing to do with lost packets, downscale is done even to fullHD TS files from my harddrive.
Two days ago I installed an SSD drive into my netbook and reinstalled the windows. System now contain no bloatware and work much smoother.
ProgDemug + VMR9 Renderless
You will see "original" size of video as comes out of decoding card.
The stuttering and freezing seems more to be connected with Timeshift buffer than demux... However the timeshift has to be enabled. If not fullHD stream will most likely overflow...
Avermedia Trinity A707 DVB-T/DVB-S with SatGate
Re: Broadcom CrystalHD + ProgDVB
#6Sometimes happens that system will freeze completely during video playback. Probably caused by Cyberlink demultiplexor in combination with Broadcom CrystalHD.
And from unknown reason the HD tv signal will freeze after one second of playing. I dont know why.
And from unknown reason the HD tv signal will freeze after one second of playing. I dont know why.
Avermedia Trinity A707 DVB-T/DVB-S with SatGate
Re: Broadcom CrystalHD + ProgDVB
#7So I re-tested newest version with this card.
For more resources just check web...
Available signal is in SD with exception of one HD channel - STV 1 HD. Previously the HD channel had trouble when switching channels or using some demultiplexors.
The ProgDVB can fail and crash upon weak signal when using Broadcom decoder...
Current version does not work well with "Cyberlink" Demultiplexor. Older versions were working only with Prog Demultiplexor, while the video could run forward and the buffer failed.
Also the Audio is much more unsynchronized than on other methods of decoding I tested.
For more resources just check web...
Available signal is in SD with exception of one HD channel - STV 1 HD. Previously the HD channel had trouble when switching channels or using some demultiplexors.
The ProgDVB can fail and crash upon weak signal when using Broadcom decoder...
Current version does not work well with "Cyberlink" Demultiplexor. Older versions were working only with Prog Demultiplexor, while the video could run forward and the buffer failed.
Also the Audio is much more unsynchronized than on other methods of decoding I tested.
Avermedia Trinity A707 DVB-T/DVB-S with SatGate
Re: Broadcom CrystalHD + ProgDVB
#8OK here is technical description what the Crystal HD device actually does.
http://wiki.xbmc.org/index.php?title=Br ... Crystal_HD
1. Decoding
The can decode formats depending on the model mentioned in the wiki. In this part the decoder is really good solution, since it uses much less hardware and electricity (notebook/netbook) as any other solutions.
2. Resizing/downscaling
My netbook has display with resolution 1024x600. The decoder recognizes this video resolution and downscale the image to fit the screen. In case of standard SD resolution - 720x576 the image stays normal. In case of FullHD 1920x1080 the image is downscaled to 960x540. If I connect netbook to my monitor the fullHD image is then scaled to 1280x720 since my Dsub does not support HDCP certification.
3. Deinterlacing
This card also can provide deinterlacing. Used method is however "Single field deinterlacing" which "drops" half of image. In case of FullHD it should mean to reduce 1080i to 540p, however, this filter is applied AFTER resizing.
This means that fullHD image is reduced first to 960x540, and then deinterlaced and further reduced to 960x270...
Unknown function: SPES
When enabled may cause video stutter of some formats.
Functionality with ProgDVB:
a) Its strongly recommended to use latest version. Last bugfixes helped a lot to remove a lot of issues with freezing.
It seems it was related to the problems with timeshift buffer
b) Weak signal and packet loss may cause ProgDVB to crash along with this form of video decoding.
Next steps:
The issue with deinterlacing will be reported to manufacturer.
http://wiki.xbmc.org/index.php?title=Br ... Crystal_HD
1. Decoding
The can decode formats depending on the model mentioned in the wiki. In this part the decoder is really good solution, since it uses much less hardware and electricity (notebook/netbook) as any other solutions.
2. Resizing/downscaling
My netbook has display with resolution 1024x600. The decoder recognizes this video resolution and downscale the image to fit the screen. In case of standard SD resolution - 720x576 the image stays normal. In case of FullHD 1920x1080 the image is downscaled to 960x540. If I connect netbook to my monitor the fullHD image is then scaled to 1280x720 since my Dsub does not support HDCP certification.
3. Deinterlacing
This card also can provide deinterlacing. Used method is however "Single field deinterlacing" which "drops" half of image. In case of FullHD it should mean to reduce 1080i to 540p, however, this filter is applied AFTER resizing.
This means that fullHD image is reduced first to 960x540, and then deinterlaced and further reduced to 960x270...
Unknown function: SPES
When enabled may cause video stutter of some formats.
Functionality with ProgDVB:
a) Its strongly recommended to use latest version. Last bugfixes helped a lot to remove a lot of issues with freezing.
It seems it was related to the problems with timeshift buffer
b) Weak signal and packet loss may cause ProgDVB to crash along with this form of video decoding.
Next steps:
The issue with deinterlacing will be reported to manufacturer.
Avermedia Trinity A707 DVB-T/DVB-S with SatGate
Re: Broadcom CrystalHD + ProgDVB
#9Can you send me Logs\reports directory after ProgDVB crash?
ps: Debug->Enable log before that.
ps: Debug->Enable log before that.
Re: Broadcom CrystalHD + ProgDVB
#10I have enabled logging and selected "Microsoft" demultiplexor
BDA.log
ExceptionReport.log
Progdvbengine.log
I opened the ProgDVB with already selected STV 1 HD channel. And Microsoft as demultiplexor. I was able to click few time on timeshift buffer before the application stopped to respond.
Elecard demultiplexor seems to work fine, but the timeshift buffer seems to have some minor issues. While the HD channel is selected and CrystalHD card is decoding it attempt to jump to previously recorded part might cause timeshift indicator to jump on the beginning of the recording.
I will also test other demultiplexors, but I expect same behavior.
Edit:
Done. Test ended negatively for all other demultiplexors with exception of Prog demultiplexor. However on this weak hardware the video was not smooth... Only Elecard passed...
BDA.log
Code: Select all
19:20:47.760 -
19:20:47.760 - Start logging...
19:20:47.760 - GetBdaTunerList
19:20:47.776 - AVerMedia 716x BDA DVBT Tuner ex:2083946968 type:DVB-T
19:20:47.776 - GetInfo 1
19:20:47.776 - CreateExtApi AverMedia 235
19:20:47.776 - CExtApiExternal avermedia - AVerMedia 716x BDA DVBT Tuner
19:20:47.776 - CExtApiExternal::load C:\Program Files\ProgDVB\Modules\avermedia.ebda 1
19:20:47.776 - ~CExtApiExternal::Unload
19:20:47.776 - GetModuleInfo {BDA} AVerMedia 716x BDA DVBT Tuner 2083946968
19:20:47.776 - exIndex 0
19:20:47.776 - maxfilters 128
19:20:47.792 - caps 200b04
19:20:47.792 - PossibleStart 1
19:20:47.792 - CreateModule 2083946968
19:20:47.792 - CBDAManager
19:20:47.792 - BDAManager::Start 2083946968
19:20:47.792 - index 0
19:20:47.792 - BuildGraph
19:20:47.792 - CreateExtApi AverMedia 235
19:20:47.792 - CExtApiExternal avermedia - AVerMedia 716x BDA DVBT Tuner
19:20:47.792 - CExtApiExternal::load C:\Program Files\ProgDVB\Modules\avermedia.ebda 1
19:20:54.812 - LoadNetworkProvider DVB-T
19:20:54.890 - GetTunerSpace DVB-T
19:20:54.890 - ConnectFilters
19:20:54.921 - ConnectFilters OK
19:20:54.936 - ConnectFilters
19:20:54.936 - ConnectFilters ERROR
19:20:54.936 - LoadFilter
19:20:54.952 - ConnectFilters
19:20:54.968 - ConnectFilters OK
19:20:54.968 - LoadFilter 1
19:20:54.968 - ConnectFilters
19:20:54.983 - ConnectFilters OK
19:20:54.983 - ConnectFilters
19:20:54.999 - ConnectFilters OK
19:20:54.999 - ConnectFilters
19:20:54.999 - ConnectFilters OK
19:20:54.999 - LoadFilter
19:20:54.999 - ConnectFilters
19:20:55.014 - ConnectFilters OK
19:20:55.014 - LoadFilter 1
19:20:55.014 - KillTifPids
19:20:56.075 - ExtApi->Create
19:20:56.075 - ExtApiExternal::Create main
19:20:56.091 - BuildGraph OK
19:20:56.091 - ISDB Region 0
19:20:56.091 - CTuneRequestSwitchManager 1
19:20:56.091 - CI_EnableCISupport 0
19:20:56.091 - Sleep Manager
19:20:59.416 - SetTransponder 0
19:20:59.416 - KillTifPids
19:20:59.416 - Sleep Manager
19:20:59.447 - UpdateOpenedChannels 1
19:20:59.447 - SetTransponder 522000
19:20:59.447 - WakeUp
19:21:00.445 - KillTifPids
19:21:00.445 - KillTifPids
19:21:00.461 - UpdateOpenedChannels 1
19:21:00.648 - GetTunerState
19:21:00.664 - GetTunerState OK
Last two lines are repeating
Code: Select all
time: 25.9.2012 19:21:34
Type: Crash in unmanaged part
Module: C:\Program Files\Broadcom\Broadcom CrystalHD Decoder\bcmDIL.dll
Thread: 0xd1c
Code: Select all
19:20:46.731 -
19:20:46.731 - Start logging...
19:20:46.731 -
19:20:46.731 - Start engine 5.163
19:20:47.745 - DevicesManager::Start
19:20:47.760 - DevicesManager::Loading...
19:20:47.760 - DevicesManager::Loading BDA.Device 2083946968
19:20:56.106 - DevicesManager::Loaded BDA.Device 2083946968 - OK
19:20:56.106 - DevicesManager::Loading ITV.Device 1
19:20:56.122 - DevicesManager::Loaded ITV.Device 1 - OK
19:20:56.122 - DevicesManager::Loading ProgMediaClient.Device 4
19:20:56.169 - DevicesManager::Loaded ProgMediaClient.Device 4 - OK
19:20:56.169 - CAVManager::Init
19:20:56.233 - VR: GUI
19:20:56.389 - Api2BaseModule::GetAdditionInfo
19:20:56.389 - Api2BaseModule::GetAdditionInfo
19:20:56.389 - Api2BaseModule::GetAdditionInfo
19:20:59.400 -
19:20:59.400 -
19:20:59.400 - ########################### Mark of start channel changing.###########################
19:20:59.400 -
19:20:59.400 - GraphManager::MainChangeChannel STV1 HD
19:20:59.400 - CSetChannelLogic::SetChannel 0
19:20:59.400 - CSetChannelLogic::SetNormalChannel
19:20:59.400 - CreateGraphOfReturnCheckvalue::LowDestroyGraph
19:20:59.400 - TransponderManager::TransponderManager
19:20:59.416 - FilterManager::InitOnNewDevice
19:20:59.416 - Thread Incoming Stream Cache
19:20:59.416 - FilterManager::InitOnNewDevice 1
19:20:59.416 - ModuleList::Free
19:20:59.431 - ChannelGraph5::CChannelGraph5
19:20:59.431 - TransponderManager::AddChildChannel
19:20:59.431 - TimeShift::TimeShift
19:20:59.431 - TimeShift::Create 200 mbytes
19:20:59.431 - ts:One channel
19:20:59.431 - HugeMemoryBlocksManager::GetBlock 200 mbytes OK
19:20:59.431 - TransponderManager::CreateTimeshiftBuffer OK
19:20:59.431 - TimeShift::CreateReadingCursor
19:20:59.431 - TsInputTrafficProcessor::AddChannel 3003
19:20:59.431 - Thread PrereaderCacheBuffer
19:20:59.447 - CSetChannelLogic::LookDeviceWithoutChannelsOrCloneAndMakeGraph
19:20:59.447 - ChannelGraph5::SetActiveState 1
19:20:59.447 - TransponderManager::SelectChannel
19:20:59.447 - TsInputTrafficProcessor::SelectChannel 3003
19:20:59.447 - Api2BaseModule::UpdateAllOpenedChannels 1
19:20:59.447 - Graph::SetAudioChannelMask
19:20:59.447 - TransponderManager::SetTransponder (CH) 522000
19:20:59.447 - Api2Device::SetChannel 522000Khz sid=3003
19:21:00.445 - Api2Device::SetChannel result OK
19:21:00.445 - TsInputTrafficProcessor::OpenTransponder 1
19:21:00.445 - FilterManager::OnSetTransponder 522000Khz
19:21:00.445 - TimeShift::Reset
19:21:00.445 - TimeShift::Cursor reset
19:21:00.445 - Prereader::Reset
19:21:00.445 - ModuleList::ChangeChannel 522000
19:21:00.445 - DvbEpgParser::SetChannel 522000
19:21:00.445 - CChannelGraph5::StartChannel STV1 HD
19:21:00.461 -
19:21:00.461 - #################### Start stream. (1.060ms) #######################
19:21:00.461 -
19:21:00.461 - TimeShift::Cursor SetChannel
19:21:00.461 - ReaderCursor::SetPosition 0 (w=0)
19:21:00.461 - Prereader::SetChannel unmask 1
19:21:00.461 - MDPlugin::SetChannel 3003
19:21:00.461 - TransponderManager::SelectChannel
19:21:00.461 - TsInputTrafficProcessor::SelectChannel 3003
19:21:00.461 - Api2BaseModule::UpdateAllOpenedChannels 1
19:21:00.461 - TsInputTrafficProcessor::UpdateChannel 3003
19:21:00.476 - PreScanner::StartChannelIsReady
19:21:00.476 - ChannelGraph5::StartStreamsAfterChangeChannel 0
19:21:00.476 - PreScanner::CreateStreamParser 0
19:21:00.476 - Mpeg2Parser::ts::Init mpeg4 apid=3311, vpid=3302
19:21:00.476 - ChannelGraph5::CreateGraphForOsdOnly
19:21:00.476 - First data in TS buffer
19:21:00.476 - CChannelGraph5::CreateRender 6
19:21:00.476 - Graph::SetVideoRect
19:21:00.476 - TimeShift::Cursor PushMode 1 1 (0)
19:21:00.476 - ReaderCursor::SetPosition 0 (w=7144)
19:21:00.476 - Prereader::EnablePushModeAndStartPlayback 1
19:21:00.476 - ChannelGraph5::SetActiveState 1
19:21:00.492 - Thread DVB EPG Parser cache
19:21:00.492 - Graph::SetVideoWindowRect
19:21:00.492 - Graph::UpdateRenderMode
19:21:00.492 - GraphManager::MultiChannelRendering
19:21:00.492 - ChannelGraph5::SetActiveState 1
19:21:00.523 - VideoParser::First packet 36114 mpeg4
19:21:00.523 - VideoParser::packet 12573
19:21:00.539 - Graph::OnWindowMove 102
19:21:00.539 - Graph::SetVideoWindowRect
19:21:00.570 - VideoParser::packet 12606
19:21:00.570 - VideoParser::packet 12125
19:21:00.570 - VideoParser::packet 12692
19:21:00.570 - Api2BaseModule::OpenFilter 3301 OK
19:21:00.570 - Api2BaseModule::CloseFilter 1 pid 3301
19:21:00.586 - Api2BaseModule::OpenFilter 3301 OK
19:21:00.632 - AudioParser::First packet 2304
19:21:00.632 - AudioParser::mpeg
19:21:00.632 - AudioParser::Audio detected!
19:21:00.664 - * s:54 q:97 tr=241204 (2820)
19:21:00.679 - VideoParser::packet 64984
19:21:00.679 - Api2BaseModule::CloseFilter 1 pid 3301
19:21:00.726 - VideoParser::packet 35280
19:21:00.726 - VideoParser::packet 12073
19:21:00.726 - VideoParser::packet 12222
19:21:00.991 - VideoParser::packet 213410
19:21:00.991 - VideoParser::mpeg4:: detected!
19:21:00.991 - PreScanner::Post_InitRender
19:21:00.991 - ChannelGraph5::uiThread_CreateGraphAfterDetectOfMediaTypes 1
19:21:00.991 - TimeShift::Cursor PushMode 2 0 (0)
19:21:00.991 - ReaderCursor::SetPosition 0 (w=470940)
19:21:00.991 - Prereader::EnablePushModeAndStartPlayback 2
19:21:00.991 - ChannelGraph5::CreateInterfacesAndRenderGraph
19:21:00.991 - demux: MS 1
19:21:00.991 - CSubtitlesPrsersManager::StartChannel
19:21:01.007 - CChannelGraph5::HideSubtitles
19:21:01.007 - CreateCustomGraph
19:21:01.007 - VideoType:h.264/AVC
19:21:01.007 - Video/4.AVC1 : FORMAT_MPEG2_VIDEO s={0,0,1920,1080}, t={0,0,1920,1080}, bmp=1920x1088, r=30/17, br=0,frametime=40ms, IF=0x0, CF=0x0)
19:21:01.007 - Video/4.H264 : FORMAT_MPEG2_VIDEO s={0,0,1920,1080}, t={0,0,1920,1080}, bmp=1920x1088, r=30/17, br=0,frametime=40ms, IF=0x0, CF=0x0)
19:21:01.475 - Add video codec 2de1d17e-46b1-42a8-9aec-e20e80d9b1a9 - OK
19:21:01.475 - CChannelGraph5::CreateRender 6
19:21:01.475 - VR: EVR
19:21:03.082 - Add video renderer Video_Renderer - OK
19:21:03.082 - СreateAudioPartOfGraph
19:21:03.082 - AudioType:MPEG - Audio
19:21:03.082 - Audio/MPEG1AudioPayload : WaveFormatEx (2ch 48000 0bit formatTag= 0x50)
19:21:03.102 - Add audio codec a753a1ec-973e-4718-af8e-a3f554d45c44 - OK
19:21:03.232 - IMyGraphBuilder::CreateAudioRenderFilter::Default DirectSound Device OK
19:21:03.232 - Added audio processor
19:21:03.286 - Connect codec to AP - OK
19:21:03.299 - Add and connect audio renderer - OK
19:21:03.300 - Graph::AfterRender
19:21:03.309 - Graph::SetVolume
19:21:03.312 - Graph::SetAudioChannelMask
19:21:03.313 - AudioProcessor::SetAudioChannelsMask
19:21:03.313 - AudioProcessor::SetEqualizerBands
19:21:03.314 - AudioProcessor::EnableSpectrum
19:21:03.314 - AudioProcessor::AgcEnable
19:21:03.315 - Graph::Run
19:21:04.265 - Graph::Run 1
19:21:04.266 - Graph::SetPictureParams
19:21:04.267 - Graph::SetVideoRect
19:21:04.268 - Graph::SetVideoWindowRect
19:21:04.270 - !! TopLevelExceptionFilter !! ACCESS_VIOLATION/Continuable
19:21:04.273 - module: C:\Program Files\Broadcom\Broadcom CrystalHD Decoder\bcmDIL.dll
19:21:04.274 - thread: 0xd1c
Last three entries are repeating indefinitely. Log had more than 2 megabytes
I opened the ProgDVB with already selected STV 1 HD channel. And Microsoft as demultiplexor. I was able to click few time on timeshift buffer before the application stopped to respond.
Elecard demultiplexor seems to work fine, but the timeshift buffer seems to have some minor issues. While the HD channel is selected and CrystalHD card is decoding it attempt to jump to previously recorded part might cause timeshift indicator to jump on the beginning of the recording.
I will also test other demultiplexors, but I expect same behavior.
Edit:
Done. Test ended negatively for all other demultiplexors with exception of Prog demultiplexor. However on this weak hardware the video was not smooth... Only Elecard passed...
Avermedia Trinity A707 DVB-T/DVB-S with SatGate
Re: Broadcom CrystalHD + ProgDVB
#11crash in "C:\Program Files\Broadcom\Broadcom CrystalHD Decoder\bcmDIL.dll"
Re: Broadcom CrystalHD + ProgDVB
#12It seems that the program is trying to display non-decoded video. Definitely the timeshiftbuffer is recording data - the stream is just not being displayed.
Because the decoding dll crashes only with some demultiplexors its certain that it expects some kind of input and some demuxers just dont provide it (header or something else?)
The question is whether the Engine tries to stop itself with error message of some kind...
At least Decoder was tested and works...
Because the decoding dll crashes only with some demultiplexors its certain that it expects some kind of input and some demuxers just dont provide it (header or something else?)
The question is whether the Engine tries to stop itself with error message of some kind...
At least Decoder was tested and works...
Avermedia Trinity A707 DVB-T/DVB-S with SatGate