On 08/06/18 02:16, myp...@gmail.com wrote: > On Fri, Jun 8, 2018 at 7:46 AM Mark Thompson <s...@jkqxz.net> wrote: >> >> --- >> configure | 2 + >> libavcodec/Makefile | 1 + >> libavcodec/cbs.c | 6 + >> libavcodec/cbs_internal.h | 1 + >> libavcodec/cbs_jpeg.c | 513 >> ++++++++++++++++++++++++++++++++++ >> libavcodec/cbs_jpeg.h | 128 +++++++++ >> libavcodec/cbs_jpeg_syntax_template.c | 191 +++++++++++++ >> 7 files changed, 842 insertions(+) >> create mode 100644 libavcodec/cbs_jpeg.c >> create mode 100644 libavcodec/cbs_jpeg.h >> create mode 100644 libavcodec/cbs_jpeg_syntax_template.c >> >> ... >> diff --git a/libavcodec/cbs_jpeg.h b/libavcodec/cbs_jpeg.h >> new file mode 100644 >> index 0000000000..f427c4c616 >> --- /dev/null >> +++ b/libavcodec/cbs_jpeg.h >> @@ -0,0 +1,128 @@ >> +/* >> + * This file is part of FFmpeg. >> + * >> + * FFmpeg is free software; you can redistribute it and/or >> + * modify it under the terms of the GNU Lesser General Public >> + * License as published by the Free Software Foundation; either >> + * version 2.1 of the License, or (at your option) any later version. >> + * >> + * FFmpeg is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with FFmpeg; if not, write to the Free Software >> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 >> USA >> + */ >> + >> +#ifndef AVCODEC_CBS_JPEG_H >> +#define AVCODEC_CBS_JPEG_H >> + >> +#include <stddef.h> >> +#include <stdint.h> >> + >> + > > missing "libavutil/buffer.h" for AVBufferRef *, use make > checkheaders can reproduce the error
Yep. Fixed, thank you! - Mark >> +enum { >> + JPEG_MARKER_SOF0 = 0xc0, >> + JPEG_MARKER_SOF1 = 0xc1, >> + JPEG_MARKER_SOF2 = 0xc2, >> + JPEG_MARKER_SOF3 = 0xc3, >> + >> + JPEG_MARKER_DHT = 0xc4, >> + JPEG_MARKER_SOI = 0xd8, >> + JPEG_MARKER_EOI = 0xd9, >> + JPEG_MARKER_SOS = 0xda, >> + JPEG_MARKER_DQT = 0xdb, >> + >> + JPEG_MARKER_APPN = 0xe0, >> + JPEG_MARKER_JPGN = 0xf0, >> + JPEG_MARKER_COM = 0xfe, >> +}; >> + >> +enum { >> + JPEG_MAX_COMPONENTS = 255, >> + >> + JPEG_MAX_HEIGHT = 65535, >> + JPEG_MAX_WIDTH = 65535, >> +}; >> + >> + >> +typedef struct JPEGRawFrameHeader { >> + uint16_t Lf; >> + uint8_t P; >> + uint16_t Y; >> + uint16_t X; >> + uint16_t Nf; >> + >> + uint8_t C [JPEG_MAX_COMPONENTS]; >> + uint8_t H [JPEG_MAX_COMPONENTS]; >> + uint8_t V [JPEG_MAX_COMPONENTS]; >> + uint8_t Tq[JPEG_MAX_COMPONENTS]; >> +} JPEGRawFrameHeader; >> + >> +typedef struct JPEGRawScanHeader { >> + uint16_t Ls; >> + uint8_t Ns; >> + >> + uint8_t Cs[JPEG_MAX_COMPONENTS]; >> + uint8_t Td[JPEG_MAX_COMPONENTS]; >> + uint8_t Ta[JPEG_MAX_COMPONENTS]; >> + >> + uint8_t Ss; >> + uint8_t Se; >> + uint8_t Ah; >> + uint8_t Al; >> +} JPEGRawScanHeader; >> + >> +typedef struct JPEGRawScan { >> + JPEGRawScanHeader header; >> + uint8_t *data; >> + size_t data_size; >> + AVBufferRef *data_ref; >> +} JPEGRawScan; >> + >> +typedef struct JPEGRawQuantisationTable { >> + uint8_t Pq; >> + uint8_t Tq; >> + uint16_t Q[64]; >> +} JPEGRawQuantisationTable; >> + >> +typedef struct JPEGRawQuantisationTableSpecification { >> + uint16_t Lq; >> + JPEGRawQuantisationTable table[4]; >> +} JPEGRawQuantisationTableSpecification; >> + >> +typedef struct JPEGRawHuffmanTable { >> + uint8_t Tc; >> + uint8_t Th; >> + uint8_t L[16]; >> + uint8_t V[224]; >> +} JPEGRawHuffmanTable; >> + >> +typedef struct JPEGRawHuffmanTableSpecification { >> + uint16_t Lh; >> + JPEGRawHuffmanTable table[8]; >> +} JPEGRawHuffmanTableSpecification; >> + >> +typedef struct JPEGRawApplicationData { >> + uint16_t Lp; >> + uint8_t *Ap; >> + AVBufferRef *Ap_ref; >> +} JPEGRawApplicationData; >> + >> +typedef struct JPEGRawComment { >> + uint16_t Lc; >> + uint8_t *Cm; >> + AVBufferRef *Cm_ref; >> +} JPEGRawComment; >> + >> + >> +typedef struct CodedBitstreamJPEGContext { >> + // Write buffer. >> + uint8_t *write_buffer; >> + size_t write_buffer_size; >> +} CodedBitstreamJPEGContext; >> + >> + >> +#endif /* AVCODEC_CBS_JPEG_H */ _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel