[FFmpeg-devel] [PATCH] avcodec/dpx: Support for RGB 12-bit packed decoding
Kieran O Leary
kieran.o.leary at gmail.com
Tue Apr 10 14:13:28 EEST 2018
Hi
On Tue, Apr 10, 2018 at 11:34 AM, Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
> 2018-04-10 12:28 GMT+02:00, Kieran O Leary <kieran.o.leary at gmail.com>:
>> I just tested this patch non packed to 16-bit gbrp12le DPX from DaVinci
>> Resolve.
>
> Testing is good, apart from more brackets (and less comments) it would
> be better if Jerome sends his public keys to Michael and pushes the patch.
>
>> Encoding to FFV1 and back again to DPX produced the same
>> framemd5 values.
>
> (I believe we already discussed in public that testing FFmpeg's bugs
> with FFmpeg makes limited sense.)
>
Yes, and at the risk of making a fool of myself, here's some slightly
different testing sing the graphicsmagick dpx encoder:
The following console outputs have 4 steps:
1. Use gm convert to decode 12-bit DPX to 12-bit DPX (padded to 16-bit DPX)
2. Use ffmpeg convert to decode 12-bit DPX to 12-bit DPX (padded to 16-bit DPX)
3. Use ffmpeg to decode the graphicsmagick file with the md5 muxer
4. Use ffmpeg to decode the ffmpeg file with the md5 muxer
The same md5 values are produced in steps 3 and 4- not sure what it
proves exactly, maybe that even if the ffmpeg decoder is buggy, at
least it decodes the files produced by Jerome's patch and the existing
GM decoder in the same way?
$ gm convert -verbose
6e0edc3b-7d89-4710-8b9a-66c8c990f9dc_1_00094787.dpx gm_dpx_to_dpx.dpx
6e0edc3b-7d89-4710-8b9a-66c8c990f9dc_1_00094787.dpx DPX 1600x1168+0+0
DirectClass 12-bit 8.0Mi 0.030u 0m:0.050000s
6e0edc3b-7d89-4710-8b9a-66c8c990f9dc_1_00094787.dpx=>gm_dpx_to_dpx.dpx
DPX 1600x1168+0+0 DirectClass 12-bit 10.7Mi 0.040u 0m:0.150000s
(11.9Mi pixels/s)
$ ./ffmpeg -i 6e0edc3b-7d89-4710-8b9a-66c8c990f9dc_1_00094787.dpx
ffmpeg_dpx_to_dpx.dpx
ffmpeg version N-90642-gd64183e Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration:
libavutil 56. 13.100 / 56. 13.100
libavcodec 58. 17.100 / 58. 17.100
libavformat 58. 11.101 / 58. 11.101
libavdevice 58. 2.100 / 58. 2.100
libavfilter 7. 14.100 / 7. 14.100
libswscale 5. 0.102 / 5. 0.102
libswresample 3. 0.101 / 3. 0.101
[dpx_pipe @ 0x7f80db809000] Stream #0: not enough frames to estimate
rate; consider increasing probesize
Input #0, dpx_pipe, from '6e0edc3b-7d89-4710-8b9a-66c8c990f9dc_1_00094787.dpx':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: dpx, gbrp12le, 1600x1168 [SAR 1:1 DAR 100:73],
24 tbr, 25 tbn, 24 tbc
Stream mapping:
Stream #0:0 -> #0:0 (dpx (native) -> dpx (native))
Press [q] to stop, [?] for help
Output #0, image2, to 'ffmpeg_dpx_to_dpx.dpx':
Metadata:
encoder : Lavf58.11.101
Stream #0:0: Video: dpx, gbrp12le, 1600x1168 [SAR 1:1 DAR 100:73],
q=2-31, 200 kb/s, 24 fps, 24 tbn, 24 tbc
Metadata:
encoder : Lavc58.17.100 dpx
frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
speed=0.286x
video:10952kB audio:0kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: unknown
$ ./ffmpeg -i ffmpeg_dpx_to_dpx.dpx -f md5 -
ffmpeg version N-90642-gd64183e Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration:
libavutil 56. 13.100 / 56. 13.100
libavcodec 58. 17.100 / 58. 17.100
libavformat 58. 11.101 / 58. 11.101
libavdevice 58. 2.100 / 58. 2.100
libavfilter 7. 14.100 / 7. 14.100
libswscale 5. 0.102 / 5. 0.102
libswresample 3. 0.101 / 3. 0.101
[dpx_pipe @ 0x7ff76b009000] Stream #0: not enough frames to estimate
rate; consider increasing probesize
Input #0, dpx_pipe, from 'ffmpeg_dpx_to_dpx.dpx':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: dpx, gbrp12le, 1600x1168 [SAR 1:1 DAR 100:73],
25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (dpx (native) -> rawvideo (native))
Press [q] to stop, [?] for help
Output #0, md5, to 'pipe:':
Metadata:
encoder : Lavf58.11.101
Stream #0:0: Video: rawvideo (G3[0][12] / 0xC003347), gbrp12le,
1600x1168 [SAR 1:1 DAR 100:73], q=2-31, 1681920 kb/s, 25 fps, 25 tbn,
25 tbc
Metadata:
encoder : Lavc58.17.100 rawvideo
MD5=aa43e3ec1c2a8e4499b3bc796a35185b
frame= 1 fps=0.0 q=-0.0 Lsize= 0kB time=00:00:00.04 bitrate=
7.4kbits/s speed=1.25x
video:10950kB audio:0kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: unknown
$ ./ffmpeg -i gm_dpx_to_dpx.dpx -f md5 -
ffmpeg version N-90642-gd64183e Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration:
libavutil 56. 13.100 / 56. 13.100
libavcodec 58. 17.100 / 58. 17.100
libavformat 58. 11.101 / 58. 11.101
libavdevice 58. 2.100 / 58. 2.100
libavfilter 7. 14.100 / 7. 14.100
libswscale 5. 0.102 / 5. 0.102
libswresample 3. 0.101 / 3. 0.101
[dpx_pipe @ 0x7fe9d2809000] Stream #0: not enough frames to estimate
rate; consider increasing probesize
Input #0, dpx_pipe, from 'gm_dpx_to_dpx.dpx':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: dpx, gbrp12le, 1600x1168 [SAR 1:1 DAR 100:73],
24 tbr, 25 tbn, 24 tbc
Stream mapping:
Stream #0:0 -> #0:0 (dpx (native) -> rawvideo (native))
Press [q] to stop, [?] for help
Output #0, md5, to 'pipe:':
Metadata:
encoder : Lavf58.11.101
Stream #0:0: Video: rawvideo (G3[0][12] / 0xC003347), gbrp12le,
1600x1168 [SAR 1:1 DAR 100:73], q=2-31, 1614643 kb/s, 24 fps, 24 tbn,
24 tbc
Metadata:
encoder : Lavc58.17.100 rawvideo
MD5=aa43e3ec1c2a8e4499b3bc796a35185b
frame= 1 fps=0.0 q=-0.0 Lsize= 0kB time=00:00:00.04 bitrate=
7.1kbits/s speed=1.32x
video:10950kB audio:0kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: unknown
More information about the ffmpeg-devel
mailing list