Browse Source

Merge commit '6dd93ee6f1b050ad7c4b247899e83efa293ee405'

* commit '6dd93ee6f1b050ad7c4b247899e83efa293ee405':
  hlsenc: check append_entry return value
  hlsenc: use the basename to generate the list entries
  avstring: add av_basename and av_dirname

Conflicts:
	Changelog
	doc/APIchanges
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.1
Michael Niedermayer 12 years ago
parent
commit
2ce43b37fc
6 changed files with 70 additions and 5 deletions
  1. +1
    -0
      Changelog
  2. +3
    -0
      doc/APIchanges
  3. +8
    -4
      libavformat/hlsenc.c
  4. +41
    -0
      libavutil/avstring.c
  5. +16
    -0
      libavutil/avstring.h
  6. +1
    -1
      libavutil/version.h

+ 1
- 0
Changelog View File

@@ -50,6 +50,7 @@ version <next>:
- documentation split into per-component manuals
- pp (postproc) filter ported from MPlayer
- NIST Sphere demuxer
- av_basename and av_dirname


version 1.0:


+ 3
- 0
doc/APIchanges View File

@@ -132,6 +132,9 @@ API changes, most recent first:
2012-03-26 - a67d9cf - lavfi 2.66.100
Add avfilter_fill_frame_from_{audio_,}buffer_ref() functions.

2012-xx-xx - xxxxxxx - lavu 52.2.1 - avstring.h
Add av_basename() and av_dirname().

2012-11-10 - 5980f5dd - lavu 52.2.0 - audioconvert.h
Rename audioconvert.h to channel_layout.h. audioconvert.h is now deprecated.



+ 8
- 4
libavformat/hlsenc.c View File

@@ -85,7 +85,8 @@ static int append_entry(HLSContext *hls, uint64_t duration)
if (!en)
return AVERROR(ENOMEM);

av_get_frame_filename(en->name, sizeof(en->name), hls->basename,
av_get_frame_filename(en->name, sizeof(en->name),
av_basename(hls->basename),
hls->number -1);

en->duration = duration;
@@ -260,9 +261,12 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
av_compare_ts(pkt->pts, st->time_base, end_pts, AV_TIME_BASE_Q) >= 0 &&
pkt->flags & AV_PKT_FLAG_KEY) {

append_entry(hls, av_rescale(pkt->pts - hls->end_pts,
st->time_base.num,
st->time_base.den));
ret = append_entry(hls, av_rescale(pkt->pts - hls->end_pts,
st->time_base.num,
st->time_base.den));
if (ret)
return ret;

hls->end_pts = pkt->pts;

av_write_frame(oc, NULL); /* Flush any buffered data */


+ 41
- 0
libavutil/avstring.c View File

@@ -25,6 +25,8 @@
#include <string.h>
#include <ctype.h>
#include "avstring.h"
#include "config.h"
#include "common.h"
#include "mem.h"

int av_strstart(const char *str, const char *pfx, const char **ptr)
@@ -211,6 +213,45 @@ int av_strncasecmp(const char *a, const char *b, size_t n)
return c1 - c2;
}

const char *av_basename(const char *path)
{
char *p = strrchr(path, '/');

#if HAVE_DOS_PATHS
char *q = strrchr(path, '\\');
char *d = strchr(path, ':');

p = FFMAX3(p, q, d);
#endif

if (!p)
return path;

return p + 1;
}

const char *av_dirname(char *path)
{
char *p = strrchr(path, '/');

#if HAVE_DOS_PATHS
char *q = strrchr(path, '\\');
char *d = strchr(path, ':');

d = d ? d + 1 : d;

p = FFMAX3(p, q, d);
#endif

if (!p)
return ".";

*p = '\0';

return path;
}


#ifdef TEST

#include "common.h"


+ 16
- 0
libavutil/avstring.h View File

@@ -202,6 +202,22 @@ int av_strcasecmp(const char *a, const char *b);
*/
int av_strncasecmp(const char *a, const char *b, size_t n);


/**
* Thread safe basename.
* @param path the path, on DOS both \ and / are considered separators.
* @return pointer to the basename substring.
*/
const char *av_basename(const char *path);

/**
* Thread safe dirname.
* @param path the path, on DOS both \ and / are considered separators.
* @return the path with the separator replaced by the string terminator or ".".
* @note the function may change the input string.
*/
const char *av_dirname(char *path);

/**
* @}
*/


+ 1
- 1
libavutil/version.h View File

@@ -75,7 +75,7 @@
*/

#define LIBAVUTIL_VERSION_MAJOR 52
#define LIBAVUTIL_VERSION_MINOR 12
#define LIBAVUTIL_VERSION_MINOR 13
#define LIBAVUTIL_VERSION_MICRO 100

#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \


Loading…
Cancel
Save