Author Topic: Understanding MotionJpeg & h264 routines for Digic 4  (Read 886 times)


  • Hero Member
  • *****
  • Posts: 1530
Understanding MotionJpeg & h264 routines for Digic 4
« on: February 10, 2018, 08:08:51 AM »
I have being digging in to my decompiled Rom from my 5D2 and I very interested in Motion Jpeg as it's 4:2:2 but only 8bit (bad part) .
You my say "will you have raw video that's better then mjpeg"
I say "yes and no" why because there many advantages of mjpeg , bandwidth , more gradable then h264 , etc. ... and of course people could list many more advantages to Raw Video.
One big reason I can think of is "documentaries" where , sometimes you just need to let the camera roll I think most of us understand that  right !  ;D
Ok so now you know my reasons for this now lets push this to the limits  8)
I looking to implement this to UHD/4k , makes senses now ?   for 2 main thinks .
1st of course to encode the UHD/4k stream to mjpeg.avi (thought I have know idea how get the encoder to compile a file) This would good for all cam for big resolution and slow SD card bandwidth . 2nd for correct framing in hdmi in images larger then 1080p/I e.g. 2k or 3.5k etc. ... .
Now if proves to be impossible for mjpeg.avi then of course I will try h264 as the parameters  aloud for 4k video  .

Below is same stuff that related to what I'm talking about from 5D2 Rom
Code: [Select]
ff0380f8 JpCoreFirm : %#lx
ff03810c JpCoreExtStream : %#lx
ff038124 pTestCallBack %#lx
ff03813c H264Size 0x0A100000 + [%#lx]
So 0x0A10000 + [something] 1920x1080p ? I assume

Code: [Select]
ff04a894 mvpGetMovieVideoData : MovieType(%d)
ff04a8bc StartResizeMotionJpeg(%d,%#x,%d,%#x)
ff04a8e4 mvpRequestDecResize : MovieType(%d)
down sizing from Full Liveview ? 5.6k

Code: [Select]
ff04ab84 mvpGetMovieKeyFrameNum : MovieType(%d)
ff04abac MOVR_GetMovKeyFrameNum(%#x)
ff04abc8 ChangeVramCallBack
ff04abdc ChangeNextUpdateVram cancel[%d](%#x)
ff04ac04 ChangeNextUpdateVram[%d](%#x)
Start the stream ?

Code: [Select]
ff04aeac SetRectColorParameter : unknown DispType (%#x)
ff04aedc CreateVram[%d](%#x,%d,%d,%d)
ff04af00 ChangeNextVram[%d](%#x,%d,%d)
ff04af20 ChangeNextVram cancel[%d](%#x
I think this  applying Picture Style profile

Code: [Select]
ff04b16c DecodeComplete : DecodeMotionJpeg Error(%d)
ff04b198 DecodeComplete : DecodeMotionJpeg Error -> StopPreparation
ff04b1d8 mvpCancelDecResize : MovieType(%d)
ff04c7a0 MovieFrameRateCallback
ff04c7bc StartPreparation : mvpGetMovieVideoData(frame:%d)
ff04c7f0 StartPreparation : mvpGetMovieVideoData(%#x)
ff04c820 StartPreparation : Cancel(Decode)
ff04c848 StartPreparation : StartDecodeMotionJpeg(time out)
ff04c87c StartPreparation : Cancel(Resize)
self explanatory I think
Code: [Select]
ff04ec6c mvpResizeCompleteCallback
ff04ec88 mvpRegisterCompleteDecResize : MovieType(%d)
ff04ecb8 SetResizePassParam in(%d,%d,%d,%d,%d,%d,%d)
ff04ece4 SetResizePassParam out(%d,%d,%d,%d,%d,%d,%d)
ff04ed14 SetResizePassParam : (%d,%d,%d,%d,%d,%d,%d)
maybe has to with line skipping & pixel binding ? not sure that all , I notice "MovieType" so could this be either .AVI or .Mov ?
lots of question but no answers yet !
It's a start  :D


  • Hero Member
  • *****
  • Posts: 1530
Re: Understanding MotionJpeg & h264 routines for Digic 4
« Reply #1 on: February 10, 2018, 09:00:33 AM »
AVI Reader , still looking for the writer
Code: [Select]
ff15f4f8 AviReaderTask : TakeSemaphore(%#x)
ff15f528 InitializeAviReader : CreateBinarySemaphore
ff15f554 AviRead
ff15f560 MoviePlayer\AviReader.c
ff15f578 fInitialize == TRUE
ff15f58c CloseAviReadFile : TakeSemaphore(%#x)
ff15f9bc StartAviRead : TakeSemaphore(%#x)
ff15f9fc 01wb
ff15fce4 00dc
ff15fd04 GetAviVideoData : TakeSemaphore(%#x)
ff1600f8 RIFF
ff160108 OpenAviFile : TakeSemaphore(%#x)
ff16034c FileFormatVer == 2
ff160360 FileFormatVer == 1
ff160644 MoviePlayer\FrameRateGenerator.c
ff160668 FALSE


  • Member
  • ***
  • Posts: 155
Re: Understanding MotionJpeg & h264 routines for Digic 4
« Reply #2 on: February 10, 2018, 10:34:21 AM »
Great to see you're having a go at this. At one point A1ex managed to record mjpeg:
EyeFrame Converter transcode RAW to DNxHD, ProRes, Mpeg2 I Frame HD and MJPEG with T/C and R/N
DVD slideshow GUI - freeware multi-purpose slideshow studio.


  • Hero Member
  • *****
  • Posts: 1530
Re: Understanding MotionJpeg & h264 routines for Digic 4
« Reply #3 on: February 11, 2018, 08:48:30 AM »


  • New to the forum
  • *
  • Posts: 3
Re: Understanding MotionJpeg & h264 routines for Digic 4
« Reply #4 on: February 12, 2018, 04:06:00 AM »
but you can teach 5D2 just write JPG full frame 25 fps + - without packaging in the video, just sequencing into the folder?

а можно 5D2 научить просто писать JPG полный кадр 25 фпс +- без упаковки в видео просто в секвенцию в папку?


  • Hero Member
  • *****
  • Posts: 881
  • 550D
Re: Understanding MotionJpeg & h264 routines for Digic 4
« Reply #5 on: February 12, 2018, 12:22:39 PM »
The mjpeg is what's used to push a live feed over USB isn't it?


  • Member
  • ***
  • Posts: 129
Re: Understanding MotionJpeg & h264 routines for Digic 4
« Reply #6 on: February 13, 2018, 04:00:57 AM »
The mjpeg buffer A1ex was able to record was quite low resolution was it not?


  • Hero Member
  • *****
  • Posts: 1530
Re: Understanding MotionJpeg & h264 routines for Digic 4
« Reply #7 on: February 13, 2018, 07:20:33 AM »
Sorry for the long post , just so much info  8)
The mjpeg is what's used to push a live feed over USB isn't it?
Yes , it all ready done --I have no interest in that .
The mjpeg buffer A1ex was able to record was quite low resolution was it not?
Yes, very ,very low resolution 1:1 1024x680 & 3x crop 1120x752 . these are the Liveview buffers  .

What I'm after is the full liveview jpeg buffer
Code: [Select]
F3672>    CtrlSrv:ffa41a3c:18:01: GetJpegInfo w:5616 h:3744So I can do this
Code: [Select]
F376E>    CtrlSrv:ffafb10c:18:03: [V] (PUB) MakeHDVramFromJpeg 959
F379A>    CtrlSrv:ffafb128:18:01: [V] MakeHDVramFromJpeg Rot:0 Mag:0 Aspect:3
but instead of "MakeHDVramFromJpeg .... " I hope to implement "MakeUHDVramFromJpeg .... " , thou I'm not sure at this point it all just theoretical .
This research has actually came from , me investigating my Startup LOG from "Jenkins" Thanks @a1ex  :D
I originally was looking for the compressed raw for ProcessTwoInTwoOutLosslessPath 
Code: [Select]
84B5D> FrontShtDe:ff888ee0:96:05: ProcessTwoInTwoOutJpegPath(R) Start(5694)
AF6FE> FrontShtDe:ff888f10:96:05: ProcessTwoInTwoOutJpegPath(R) End(5694)
Of which I found & posted info here but that a whole different topic.

Here is some content for the startup log the related to JPCore
Code: [Select]
F37C5>    CtrlSrv:ffafb144:18:01: [V] Jpeg w:5616 h:3744
F37EE>    CtrlSrv:ffafb164:18:01: [V] WorkAdd:0x40D00000 VramAdd:0x5C007800 RotWork:0x0
F3826>    CtrlSrv:ffafb18c:18:01: [V] ImageWork w:2200 h1872 img_w:0 img_h:0 zoomx:0 zoomy:0
Full res to what will be the line skipping pixel binding image for Video.

Code: [Select]
F3889>    CtrlSrv:ffafabec:18:03: [V] MakeHDVram 758
F38B5>    CtrlSrv:ffafaa8c:18:03: [V] SetDecodeParam 712
F38E0>    CtrlSrv:ffaf849c:18:03: [L] (PUB) SetJpegDecodeParameter 189
F3909>    CtrlSrv:ffaf8284:18:03: [L] CalculateJpegDecodeParameter 85

Code: [Select]
F392E>    CtrlSrv:ffaf829c:18:01: [L] Jpeg w:5616 h:3744  Work w:2200 h:1872The source to the working resized frame buffer
Code: [Select]
F3967>    CtrlSrv:ffaf81c4:18:03: [L] (PUB) SetDecodeRate 148
F398E>    CtrlSrv:ffaf99cc:18:03: [L] GetGCD 58
Code: [Select]
F39B9>    CtrlSrv:ffaf83a4:18:01: [L] Resize Pfil:1 Pres:1 w:3/8 h:3/8
F39F0>    CtrlSrv:ffaf8558:18:01: [L] Jpeg w:5616 h:3744
F3A18>    CtrlSrv:ffaf8578:18:01: [L] Yuv:1 Add:0x40D00000 BaseW:2106
F3A4B>    CtrlSrv:ffaf8598:18:01: [L] x:0 y:0 w:2106 h:1404
F3A7B>    CtrlSrv:ffafacbc:18:01: [V] In w:2106 h:1404 Out w:340 h:204
Some resizing going on
Code: [Select]
F3AB2>    CtrlSrv:ffaf975c:18:03: [L] (PUB) CalcResizeParam 961
F3AD7>    CtrlSrv:ffaf9778:18:01: [L] CalcResizeParam inw:2106 h:1404 outw:340 h:204
F3B04>    CtrlSrv:ffaf9790:18:01: [L] rot:0 zoom:0 inYUV:1 outYUV:1
F3B2F>    CtrlSrv:ffaf9368:18:03: [L] _CalcResizeSize 733
Code: [Select]
F3B5D>    CtrlSrv:ffaf8da0:18:03: [L] (PUB) CalcZoomMagnify 402
F3BA4>    CtrlSrv:ffaf8e20:18:03: [L] _RoundUp 498
F3BCC>    CtrlSrv:ffaf8da0:18:03: [L] (PUB) CalcZoomMagnify 402
F3BFB>    CtrlSrv:ffaf8e20:18:03: [L] _RoundUp 498
Preview window , I would think 5x & 10x

Code: [Select]
F3C29>    CtrlSrv:ffaf9668:18:01: [L] _CalcResizeSize InYuv:1 OutYuv:1 Aspect:3
F3C56>    CtrlSrv:ffaf968c:18:01: [L] fBaseH:0 MagWidth:2106 AspWidth:2106 MagHeight:1404 AspHeight:1404
F3C8C>    CtrlSrv:ffaf96a8:18:01: [L]  in w:2106 h:1404 out w:340 h:204
F3CBD>    CtrlSrv:ffaf9a30:18:03: [L] _CalcResizeRate 898
F3D19>    CtrlSrv:ffaf9838:18:01: [L] -----INPUT  w:2104 h:1404 -----
F3D4C>    CtrlSrv:ffaf9854:18:01: [L] -----OUTPUT w:340 h:204 -----
F3D78>    CtrlSrv:ffaf9864:18:01: [L] -----Resize-----
I still thinking preview window (3x_crop)

Code: [Select]
F3D9C>    CtrlSrv:ffaf9898:18:01: [L] Pfil:4 170/263 PreRes:4 68/117
F3DCD>    CtrlSrv:ffafad3c:18:01: [V] CalcResizeParam w:170/263(1/4) h:68/117(1/4)
F3E00>    CtrlSrv:ffafad5c:18:03: [V] SetResizeInputParam 487
F3E27>    CtrlSrv:ffafa4dc:18:03: [V] SetResizeOutputParam 524
F3E50>    CtrlSrv:ffafa568:18:03: [V] SetUnitYUV 119

I have the feeling that this is the evil "line skipping & pixel binding ?

Code: [Select]
F3E75>    CtrlSrv:ffafa5e8:18:01: [V] -----INPUT-----
F3E96>    CtrlSrv:ffafa604:18:01: [V] ZoomMode:0 YuvMode:1
F3EBB>    CtrlSrv:ffafa620:18:01: [V] BaseAdd:0x40D00000 BaseW:2106
F3EE9>    CtrlSrv:ffafa640:18:01: [V] x:0 y:0 w:2104 h:1404
1:1 Liveview before cropping ?

Code: [Select]
F3F11>    CtrlSrv:ffafa650:18:01: [V] -----OUTPUT-----
F3F31>    CtrlSrv:ffafa664:18:01: [V] YuvMode:1
F3F52>    CtrlSrv:ffafa680:18:01: [V] BaseAdd:0x5C007800 BaseW:720
F3F82>    CtrlSrv:ffafa6a0:18:01: [V] x:48 y:48 w:340 h:204
Lv plus preview window ? , 720 width =Lv  340 width=preview

Code: [Select]
F3FB0>    CtrlSrv:ffaf9f6c:18:03: [V] SetFirstColor 264
F3FD9>    CtrlSrv:ffafa01c:18:01: [V] SetFirstColor
F3FFE>    CtrlSrv:ffafa03c:18:01: [V] Yuv:1 Add:0x5C007800 BaseW:720
F402B>    CtrlSrv:ffafa058:18:01: [V] x:48 y:48 w:0 h:0
F4054>    CtrlSrv:ffafa1d0:18:03: [V] SetSecondColor 374
F4081>    CtrlSrv:ffafa2dc:18:01: [V] SetSecondColor
F40A5>    CtrlSrv:ffafa2fc:18:01: [V] Yuv:1 Add:0x5C007800 BaseW:720
Setting color profile for Picture Style , maybe .
There a lot of info to understand but I think the building blocks are there .
I still haven't found the Mjpeg encoder yet , but I have found where the h264 encoder is and there may be a very good chance to change the parameter to Full Res or 3840 .
H264 Rapper with it's encoding parameter , This is from my 5D2 decompiled ROM
Code: [Select]
ff18d208 [IMP][MDECROT] SetParameterMjpegDecRotate<---
ff18d4e8 [H264Rapper]Over 12/16 !!!! Ask Architect!!!!
ff18d518 [H264Rapper]
ff18d540 [H264Rapper]
ff18d568 [H264Rapper]
ff18d590 [H264Rapper] InputWidth=%d InputHeight=%d
ff18d5bc [H264Rapper] ResizedWidth=%d ResizedHeight=%d
ff18d5ec [H264Rapper] OupPutAspect %d : %d
ff18d610 [H264Rapper] ImageType==VGA
ff18d62c [H264Rapper] ImageType==FullHD
ff18d64c [H264Rapper] OFFSETY=%d
ff18d666 DUST=%d
ff18d670 [H264Rapper] f1PassMode==TRUE
ff18d690 [H264Rapper] f1PassMode==FALSE
ff18d6b0 [H264Rapper] THROUGH
ff18d6c8 [H264Rapper] QUARTER
ff18d6e0 [H264Rapper] HALF
ff18da48 [H264Rapper] DecodeHeight=%d Line=%d
ff18da74 [H264Rapper] DecodeWidth =%d DecodeHeight=%d Line=%d
ff18daac [H264Rapper] pDecodeWidth =%d DecodeHeight=%d Line=%d
ff18dae8 [H264Rapper] pOutputAddress=0x%08X
ff18db0c -------------------------------------%d
ff18de27 H264Rapper
ff18de33 ] OffX = %ld, OffY = %ld, W = %ld, H = %ld
ff18de60 [H264Rapper
ff18de6d ] OffX = %ld, OffY = %ld, W = %ld, H = %ld

These are from my decompiled rom 5d2 , as you see there's two streams for h264
HD & VGA ,  I hope we can get at least VGA h264  to work as a Proxy file .
Right now I have no idea just yet how I'm going to progress from here , I'll need help with coding all this of course .


  • Hero Member
  • *****
  • Posts: 1530
Re: Understanding MotionJpeg & h264 routines for Digic 4
« Reply #8 on: February 22, 2018, 01:01:30 AM »
found something interesting in 100d disassembly
Code: [Select]
"[IMP][MDECRSZ] Args of SetParameterMjpegDecResize":
Code: [Select]
ff40ebc4: e28f2f56 add r2, pc, #344 ; ff40ed24: (504d495b)  *"[IMP][MDECRSZ] Args of SetParameterMjpegDecResize"
ff40ebd8: e28f2f5e add r2, pc, #376 ; ff40ed58: (504d495b)  *"[IMP][MDECRSZ] pInputImage->BaseWidth  = %ld"
ff40ebec: e28f2f65 add r2, pc, #404 ; ff40ed88: (504d495b)  *"[IMP][MDECRSZ] pInputImage->Width      = %ld"
ff40ec00: e28f2e1b add r2, pc, #432 ; ff40edb8: (504d495b)  *"[IMP][MDECRSZ] pInputImage->Height     = %ld"
ff40ec14: e28f2f73 add r2, pc, #460 ; ff40ede8: (504d495b)  *"[IMP][MDECRSZ] pInputImage->OffsetX    = %ld"
ff40ec28: e28f2f7a add r2, pc, #488 ; ff40ee18: (504d495b)  *"[IMP][MDECRSZ] pInputImage->OffsetY    = %ld"
ff40ec3c: e28f2f81 add r2, pc, #516 ; ff40ee48: (504d495b)  *"[IMP][MDECRSZ] pOutputImage->BaseWidth = %ld"

Code: [Select]
ff40f6a0: e28f2f7e add r2, pc, #504 ; ff40f8a0: (504d495b)  *"[IMP][MDECROT] RequestMjpegDecRotate--->"
ff40f6b4: e28f2e21 add r2, pc, #528 ; ff40f8cc: (504d495b)  *"[IMP][MDECROT] pInputAddress1    = 0x%08lX"
ff40f6c8: e28f2f8a add r2, pc, #552 ; ff40f8f8: (504d495b)  *"[IMP][MDECROT] InputDataSize1    = %ld"
ff40f6dc: e28f2f8f add r2, pc, #572 ; ff40f920: (504d495b)  *"[IMP][MDECROT] pInputAddress2    = 0x%08lX"
ff40f6f0: e28f2f95 add r2, pc, #596 ; ff40f94c: (504d495b)  *"[IMP][MDECROT] InputDataSize2    = %ld"
ff40f704: e28f2f9a add r2, pc, #616 ; ff40f974: (504d495b)  *"[IMP][MDECROT] pOutputAddress    = 0x%08lX"
Of course 100d is digic5 , all we need is to found the right address to make it work on different models (I'm not saying it will work , just thinking out loud and hoping It will
inspire more people to get involved we development)  :D


  • Hero Member
  • *****
  • Posts: 1530
Re: Understanding MotionJpeg & h264 routines for Digic 4
« Reply #9 on: February 22, 2018, 01:28:12 AM »
5d2 digic4 and possible all digic4 models?

Code: [Select]
"[IMP][MDECRSZ] Args of SetParameterMjpegDecResize":
Code: [Select]
ff18bf44: e28f2f53 add r2, pc, #332 ; ff18c098: (504d495b)  *"[IMP][MDECRSZ] Args of SetParameterMjpegDecResize"
ff18bf54: e28f2e17 add r2, pc, #368 ; ff18c0cc: (504d495b)  *"[IMP][MDECRSZ] pInputImage->BaseWidth  = %ld"
ff18bf68: e28f2f63 add r2, pc, #396 ; ff18c0fc: (504d495b)  *"[IMP][MDECRSZ] pInputImage->Width      = %ld"
ff18bf7c: e28f2f6a add r2, pc, #424 ; ff18c12c: (504d495b)  *"[IMP][MDECRSZ] pInputImage->Height     = %ld"
ff18bf90: e28f2f71 add r2, pc, #452 ; ff18c15c: (504d495b)  *"[IMP][MDECRSZ] pInputImage->OffsetX    = %ld"
ff18bfa4: e28f2e1e add r2, pc, #480 ; ff18c18c: (504d495b)  *"[IMP][MDECRSZ] pInputImage->OffsetY    = %ld"
ff18bfb8: e28f2f7f add r2, pc, #508 ; ff18c1bc: (504d495b)  *"[IMP][MDECRSZ] pOutputImage->BaseWidth = %ld"
ff18bfcc: e28f2f86 add r2, pc, #536 ; ff18c1ec: (504d495b)  *"[IMP][MDECRSZ] pOutputImage->OffsetX   = %ld"
ff18bfe0: e28f2f8d add r2, pc, #564 ; ff18c21c: (504d495b)  *"[IMP][MDECRSZ] pOutputImage->OffsetY   = %ld"
ff18bff4: e28f2e25 add r2, pc, #592 ; ff18c24c: (504d495b)  *"[IMP][MDECRSZ] pOutputImage->Width     = %ld"
ff18c008: e28f2f9b add r2, pc, #620 ; ff18c27c: (504d495b)  *"[IMP][MDECRSZ] pOutputImage->Height    = %ld"
ff18c01c: e28f2fa2 add r2, pc, #648 ; ff18c2ac: (504d495b)  *"[IMP][MDECRSZ] RotMov                  = %ld"
ff18c030: e28f2fa9 add r2, pc, #676 ; ff18c2dc: (504d495b)  *"[IMP][MDECRSZ] Display                 = %ld"

Code: [Select]
ff18c390: e28f2f56 add r2, pc, #344 ; ff18c4f0: (504d495b)  *"[IMP][MDECRSZ] InputRate  X = %ld, Y = %ld"
ff18c3ac: e28f2f5a add r2, pc, #360 ; ff18c51c: (504d495b)  *"[IMP][MDECRSZ] OutputRate X = %ld, Y = %ld"
ff18c3c8: e28f2f5e add r2, pc, #376 ; ff18c548: (504d495b)  *"[IMP][MDECRSZ] pPbV Den = %ld, Num = %ld"
ff18c400: e28f2f5b add r2, pc, #364 ; ff18c574: (504d495b)  *"[IMP][MDECRSZ] pPbH Int = %ld, Dec = %ld"
ff18c40c: e28f2f63 add r2, pc, #396 ; ff18c5a0: (504d495b)  *"[IMP][MDECRSZ] OutputOffsetX         = %ld"
ff18c420: e28f2f69 add r2, pc, #420 ; ff18c5cc: (504d495b)  *"[IMP][MDECRSZ] OutputOffsetY         = %ld"
ff18c434: e28f2f6f add r2, pc, #444 ; ff18c5f8: (504d495b)  *"[IMP][MDECRSZ] ResizeWidth           = %ld"
ff18c448: e28f2f75 add r2, pc, #468 ; ff18c624: (504d495b)  *"[IMP][MDECRSZ] ResizeHeight          = %ld"

Code: [Select]
ff18c8fc: e28f2c02 add r2, pc, #512 ; ff18cb04: (504d495b)  *"[IMP][MDECROT] RequestMjpegDecRotate--->"
ff18c914: e28f2f85 add r2, pc, #532 ; ff18cb30: (504d495b)  *"[IMP][MDECROT] pInputAddress1    = 0x%08lX"
ff18c928: e28f2f8b add r2, pc, #556 ; ff18cb5c: (504d495b)  *"[IMP][MDECROT] InputDataSize1    = %ld"
ff18c93c: e28f2d09 add r2, pc, #576 ; ff18cb84: (504d495b)  *"[IMP][MDECROT] pInputAddress2    = 0x%08lX"
ff18c950: e28f2f96 add r2, pc, #600 ; ff18cbb0: (504d495b)  *"[IMP][MDECROT] InputDataSize2    = %ld"
ff18c964: e28f2f9b add r2, pc, #620 ; ff18cbd8: (504d495b)  *"[IMP][MDECROT] pOutputAddress    = 0x%08lX"
ff18c99c: 128f2f99 addne r2, pc, #612 ; ff18cc08: (504d495b)  *"[IMP][PBRSZ] ERROR LockEngineResources %d"


  • Hero Member
  • *****
  • Posts: 1530
Re: Understanding MotionJpeg & h264 routines for Digic 4
« Reply #10 on: February 27, 2018, 09:25:17 AM »
Code: [Select]
ff24b70c: e28f2e1e add r2, pc, #480 ; ff24b8f4: (34363248)  *"H264E InitializeH264EncodeFor720pStrange ,I never thought the5d2 ever did 720p(maybe a after thought) , or is this a carry over from 7D or t2i ,interesting
Code: [Select]
ff24b844: e28f20f0 add r2, pc, #240 ; ff24b93c: (34363248)  *"H264E InitializeH264EncodeForCropVGA"Proxy in 3xcrop mode? maybe , After reading the disassembly , I'm almost convinced the UHD h264 maybe possible , would need to by pass the
resizing routines from MJpeg stream .