#include <float.h>#include "avformat.h"#include "internal.h"#include "libavutil/avassert.h"#include "libavutil/log.h"#include "libavutil/opt.h"#include "libavutil/avstring.h"#include "libavutil/parseutils.h"#include "libavutil/mathematics.h"Go to the source code of this file.
| #define FAIL | ( | err | ) | ret = err; goto end | 
| #define OFFSET | ( | x | ) | offsetof(SegmentContext, x) | 
| #define SEGMENT_LIST_FLAG_CACHE 1 | 
| #define SEGMENT_LIST_FLAG_LIVE 2 | 
Definition at line 50 of file segment.c.
Referenced by seg_write_header(), segment_list_close(), and segment_list_open().
| enum ListType | 
| static void print_csv_escaped_str | ( | AVIOContext * | ctx, | |
| const char * | str | |||
| ) |  [static] | 
        
| static int seg_write_header | ( | AVFormatContext * | s | ) |  [static] | 
        
| static int seg_write_packet | ( | AVFormatContext * | s, | |
| AVPacket * | pkt | |||
| ) |  [static] | 
        
| static int seg_write_trailer | ( | struct AVFormatContext * | s | ) |  [static] | 
        
| static int segment_end | ( | AVFormatContext * | s | ) |  [static] | 
        
Definition at line 180 of file segment.c.
Referenced by seg_write_packet(), and seg_write_trailer().
| static void segment_list_close | ( | AVFormatContext * | s | ) |  [static] | 
        
Definition at line 165 of file segment.c.
Referenced by seg_write_header(), seg_write_trailer(), and segment_end().
| static int segment_list_open | ( | AVFormatContext * | s | ) |  [static] | 
        
| static int segment_start | ( | AVFormatContext * | s | ) |  [static] | 
        
Initial value:
 {
    .name           = "segment",
    .long_name      = NULL_IF_CONFIG_SMALL("segment"),
    .priv_data_size = sizeof(SegmentContext),
    .flags          = AVFMT_GLOBALHEADER | AVFMT_NOFILE,
    .write_header   = seg_write_header,
    .write_packet   = seg_write_packet,
    .write_trailer  = seg_write_trailer,
    .priv_class     = &seg_class,
}
Initial value:
 {
    .name           = "stream_segment,ssegment",
    .long_name      = NULL_IF_CONFIG_SMALL("streaming segment muxer"),
    .priv_data_size = sizeof(SegmentContext),
    .flags          = AVFMT_NOFILE,
    .write_header   = seg_write_header,
    .write_packet   = seg_write_packet,
    .write_trailer  = seg_write_trailer,
    .priv_class     = &sseg_class,
}
Initial value:
 {
    { "segment_format",    "set container format used for the segments", OFFSET(format),  AV_OPT_TYPE_STRING, {.str = NULL},  0, 0,       E },
    { "segment_list",      "set the segment list filename",              OFFSET(list),    AV_OPT_TYPE_STRING, {.str = NULL},  0, 0,       E },
    { "segment_list_flags","set flags affecting segment list generation", OFFSET(list_flags), AV_OPT_TYPE_FLAGS, {.i64 = SEGMENT_LIST_FLAG_CACHE }, 0, UINT_MAX, E, "list_flags"},
    { "cache",             "allow list caching",                                    0, AV_OPT_TYPE_CONST, {.i64 = SEGMENT_LIST_FLAG_CACHE }, INT_MIN, INT_MAX,   E, "list_flags"},
    { "live",              "enable live-friendly list generation (useful for HLS)", 0, AV_OPT_TYPE_CONST, {.i64 = SEGMENT_LIST_FLAG_LIVE }, INT_MIN, INT_MAX,    E, "list_flags"},
    { "segment_list_size", "set the maximum number of playlist entries", OFFSET(list_size), AV_OPT_TYPE_INT,  {.i64 = 0},     0, INT_MAX, E },
    { "segment_list_type", "set the segment list type",                  OFFSET(list_type), AV_OPT_TYPE_INT,  {.i64 = LIST_TYPE_UNDEFINED}, -1, LIST_TYPE_NB-1, E, "list_type" },
    { "flat", "flat format",     0, AV_OPT_TYPE_CONST, {.i64=LIST_TYPE_FLAT }, INT_MIN, INT_MAX, 0, "list_type" },
    { "csv",  "csv format",      0, AV_OPT_TYPE_CONST, {.i64=LIST_TYPE_CSV  }, INT_MIN, INT_MAX, 0, "list_type" },
    { "ext",  "extended format", 0, AV_OPT_TYPE_CONST, {.i64=LIST_TYPE_EXT  }, INT_MIN, INT_MAX, 0, "list_type" },
    { "m3u8", "M3U8 format",     0, AV_OPT_TYPE_CONST, {.i64=LIST_TYPE_M3U8 }, INT_MIN, INT_MAX, 0, "list_type" },
    { "segment_time",      "set segment duration",                       OFFSET(time_str),AV_OPT_TYPE_STRING, {.str = NULL},  0, 0,       E },
    { "segment_time_delta","set approximation value used for the segment times", OFFSET(time_delta_str), AV_OPT_TYPE_STRING, {.str = "0"}, 0, 0, E },
    { "segment_times",     "set segment split time points",              OFFSET(times_str),AV_OPT_TYPE_STRING,{.str = NULL},  0, 0,       E },
    { "segment_wrap",      "set number after which the index wraps",     OFFSET(segment_idx_wrap), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, E },
    { NULL },
}
Initial value:
 {
    .class_name = "segment muxer",
    .item_name  = av_default_item_name,
    .option     = options,
    .version    = LIBAVUTIL_VERSION_INT,
}
const AVClass sseg_class [static]           | 
        
Initial value:
 {
    .class_name = "stream_segment muxer",
    .item_name  = av_default_item_name,
    .option     = options,
    .version    = LIBAVUTIL_VERSION_INT,
}
 1.5.8