ffmpeg / libavformat / dnxhddec.c @ 2912e87a
History | View | Annotate | Download (1.71 KB)
1 | 66e35c5f | Aurelien Jacobs | /*
|
---|---|---|---|
2 | * RAW DNxHD (SMPTE VC-3) demuxer
|
||
3 | * Copyright (c) 2008 Baptiste Coudurier <baptiste.coudurier@gmail.com>
|
||
4 | * Copyright (c) 2009 Reimar Döffinger <Reimar.Doeffinger@gmx.de>
|
||
5 | *
|
||
6 | 2912e87a | Mans Rullgard | * This file is part of Libav.
|
7 | 66e35c5f | Aurelien Jacobs | *
|
8 | 2912e87a | Mans Rullgard | * Libav is free software; you can redistribute it and/or
|
9 | 66e35c5f | Aurelien Jacobs | * modify it under the terms of the GNU Lesser General Public
|
10 | * License as published by the Free Software Foundation; either
|
||
11 | * version 2.1 of the License, or (at your option) any later version.
|
||
12 | *
|
||
13 | 2912e87a | Mans Rullgard | * Libav is distributed in the hope that it will be useful,
|
14 | 66e35c5f | Aurelien Jacobs | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
16 | * Lesser General Public License for more details.
|
||
17 | *
|
||
18 | * You should have received a copy of the GNU Lesser General Public
|
||
19 | 2912e87a | Mans Rullgard | * License along with Libav; if not, write to the Free Software
|
20 | 66e35c5f | Aurelien Jacobs | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
21 | */
|
||
22 | |||
23 | #include "libavutil/intreadwrite.h" |
||
24 | #include "avformat.h" |
||
25 | 4ca31edc | Aurelien Jacobs | #include "rawdec.h" |
26 | 66e35c5f | Aurelien Jacobs | |
27 | static int dnxhd_probe(AVProbeData *p) |
||
28 | { |
||
29 | static const uint8_t header[] = {0x00,0x00,0x02,0x80,0x01}; |
||
30 | int w, h, compression_id;
|
||
31 | if (p->buf_size < 0x2c) |
||
32 | return 0; |
||
33 | if (memcmp(p->buf, header, 5)) |
||
34 | return 0; |
||
35 | h = AV_RB16(p->buf + 0x18);
|
||
36 | w = AV_RB16(p->buf + 0x1a);
|
||
37 | if (!w || !h)
|
||
38 | return 0; |
||
39 | compression_id = AV_RB32(p->buf + 0x28);
|
||
40 | if (compression_id < 1237 || compression_id > 1253) |
||
41 | return 0; |
||
42 | return AVPROBE_SCORE_MAX;
|
||
43 | } |
||
44 | |||
45 | c6610a21 | Diego Elio Pettenò | AVInputFormat ff_dnxhd_demuxer = { |
46 | 66e35c5f | Aurelien Jacobs | "dnxhd",
|
47 | NULL_IF_CONFIG_SMALL("raw DNxHD (SMPTE VC-3)"),
|
||
48 | 0,
|
||
49 | dnxhd_probe, |
||
50 | ff_raw_video_read_header, |
||
51 | ff_raw_read_partial_packet, |
||
52 | .flags= AVFMT_GENERIC_INDEX, |
||
53 | .value = CODEC_ID_DNXHD, |
||
54 | }; |