0x00000000
当使用各种可以解密(即删除 DRM)光盘的翻录软件时,区域掩码似乎会更改。
mpv 报告:
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 01 02 03 04 05 06 07 08
Run Code Online (Sandbox Code Playgroud)
VLC依次:
dvdnav demux: DVD disk reports itself with Region mask 0x00000000. Regions: 01 02 03 04 05 06 07 08
Run Code Online (Sandbox Code Playgroud)
这是否意味着地区限制已经被简单地取消了?为什么该字符串0x00000000
不仅仅是0
('global') 或来自1
to的所有标志8
?
小智 22
资料来源:自从我在办公桌上放置一整堆约 9 英寸的 DVD 规格(物理到逻辑)以来已经有几年了,但我曾经从事 DVD 的反复制保护工作。其中大部分信息是也可在https://en.wikipedia.org/wiki/DVD_region_code获取
\n我 99% 确定该字段是 16 位,正如 @harrymc 所说,明显的 32 位数字是一个转移注意力的数字。无论如何,仅使用底部 8 位。这在 DVD 规范中很常见,其中许多字段都为未来潜在的扩展保留了位。
\n位字段反转\xe2\x80\x93\xc2\xa0a 位中的“1”表示不允许在该区域播放 DVD。因此,“0x01”的区域意味着它可能无法在区域 1 中播放,但可以在其他地方播放。区域 1 磁盘的编码为 0xFE。
\n因此“0x00”的区域意味着它可以在所有区域中播放。
\n大多数翻录者在翻录时都会将区域更改为 0,因为从历史上看,翻录的主要原因之一(或者至少是主要的准法律原因!)是为了打破区域限制,并且这样做对他们来说没有任何负面影响。
\n0x00000000
和 的值0
相同。唯一的区别在于编写代码的程序。
代码0x00000000
使用十六进制格式打印,而0
如果写为十进制则为值。
这就是编程的方式libdvdnav
,使用指定十六进制格式的打印。
有关编程信息,请参阅 fprintf 函数。
区域代码被处理为“位掩码”,因为任何给定的 DVD 都可以针对多个区域进行编码。区域代码 0(全局)相当于掩码中没有设置任何位。假设这些位从右到左编号(计算机中通常执行的操作),则区域代码将是
87654321
0x00000000
Run Code Online (Sandbox Code Playgroud)
因此,针对美国/加拿大(区域 1)和欧洲/中东(区域 2)编码的光盘将具有区域掩码
87654321
0x00000011
Run Code Online (Sandbox Code Playgroud)
为美国/加拿大(区域 1)、拉丁美洲/澳大利亚/大洋洲(区域 4)和东南亚(区域 3)编码的区域将具有区域掩码
87654321
0x00001101
Run Code Online (Sandbox Code Playgroud)
eta:我实际上在上面的解释中得到了“翻转”;根据https://www.askingbox.com/info/the-dvd-region-coding-and-its-technical-implementation,位位置中的 1 会锁定该区域,而 0 则启用播放。所以,第一个例子应该是0x11111100
,第二个例子应该是0x11110010
。然而,这仍然是二进制中的单个字节,而不是符号所暗示的完整 32 位字。
它的区域掩码为零,这意味着它可以在任何地方播放。播放任何不受区域限制的 DVD 时,该消息都是相同的(不必翻录)。
在消息中,8 位区域掩码有点隐藏在 32 位长值*内。
以下是跑步mpv dvd://
对我拥有的四张不同商业 DVD 的评价:
libdvdnav: DVD disk reports itself with Region mask 0x00fe0000. Regions: 01
libdvdnav: DVD disk reports itself with Region mask 0x00fd0000. Regions: 02
libdvdnav: DVD disk reports itself with Region mask 0x00e50000. Regions: 02 04 05
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 01 02 03 04 05 06 07 08
Run Code Online (Sandbox Code Playgroud)
在第一个示例中,区域掩码0xfe
( 0b11111110
) 表示区域 8 到 2 被屏蔽:
它只能在区域 1 中播放。(只有最右边的位为零。)
该掩码的逆(补码0x01
)0b00000001
意味着相反:区域 1 被屏蔽,只能在其他区域播放。
*:这可能是某种调试或疏忽,为什么它会这样显示。尽管逻辑没有改变,但只有当存在非零掩码时(前三个示例),它才会显现出来。
归档时间: |
|
查看次数: |
5908 次 |
最近记录: |