Libav
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
libavformat
mpjpeg.c
Go to the documentation of this file.
1
/*
2
* Multipart JPEG format
3
* Copyright (c) 2000, 2001, 2002, 2003 Fabrice Bellard
4
*
5
* This file is part of Libav.
6
*
7
* Libav is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* Libav is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with Libav; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
#include "
avformat.h
"
22
23
/* Multipart JPEG */
24
25
#define BOUNDARY_TAG "avserver"
26
27
static
int
mpjpeg_write_header
(
AVFormatContext
*s)
28
{
29
uint8_t
buf1[256];
30
31
snprintf(buf1,
sizeof
(buf1),
"--%s\n"
,
BOUNDARY_TAG
);
32
avio_write
(s->
pb
, buf1, strlen(buf1));
33
avio_flush
(s->
pb
);
34
return
0;
35
}
36
37
static
int
mpjpeg_write_packet
(
AVFormatContext
*s,
AVPacket
*pkt)
38
{
39
uint8_t
buf1[256];
40
41
snprintf(buf1,
sizeof
(buf1),
"Content-type: image/jpeg\n\n"
);
42
avio_write
(s->
pb
, buf1, strlen(buf1));
43
avio_write
(s->
pb
, pkt->
data
, pkt->
size
);
44
45
snprintf(buf1,
sizeof
(buf1),
"\n--%s\n"
,
BOUNDARY_TAG
);
46
avio_write
(s->
pb
, buf1, strlen(buf1));
47
return
0;
48
}
49
50
static
int
mpjpeg_write_trailer
(
AVFormatContext
*s)
51
{
52
return
0;
53
}
54
55
AVOutputFormat
ff_mpjpeg_muxer
= {
56
.
name
=
"mpjpeg"
,
57
.long_name =
NULL_IF_CONFIG_SMALL
(
"MIME multipart JPEG"
),
58
.mime_type =
"multipart/x-mixed-replace;boundary="
BOUNDARY_TAG
,
59
.extensions =
"mjpg"
,
60
.audio_codec =
AV_CODEC_ID_NONE
,
61
.video_codec =
AV_CODEC_ID_MJPEG
,
62
.write_header =
mpjpeg_write_header
,
63
.write_packet =
mpjpeg_write_packet
,
64
.write_trailer =
mpjpeg_write_trailer
,
65
};
Generated on Thu Sep 30 2021 23:03:20 for Libav by
1.8.1.2