summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/codecs.conf4
-rw-r--r--libmpdemux/demux_mkv.c4
-rw-r--r--libmpdemux/demux_ogg.c27
3 files changed, 19 insertions, 16 deletions
diff --git a/etc/codecs.conf b/etc/codecs.conf
index 6d9061b1a0..51d31896fb 100644
--- a/etc/codecs.conf
+++ b/etc/codecs.conf
@@ -200,7 +200,6 @@ videocodec theora
info "Theora (free, reworked VP3)"
status working
fourcc theo,Thra
- format 0xFFFC
driver theora
dll libtheora
out YV12
@@ -2173,6 +2172,7 @@ audiocodec pcm
format 0x0
format 0x1
format 0x3 ; IEEE float
+ format 0xfffe ; Extended
format 0x20776172 ; "raw " (MOV files)
format 0x736f7774 ; "twos" (MOV files)
format 0x74776f73 ; "sowt" (MOV files)
@@ -2479,7 +2479,7 @@ audiocodec vorbis
info "OggVorbis Audio Decoder"
status working
comment "OggVorbis driver using libvorbis"
- format 0xFFFE
+ fourcc vrbs
driver libvorbis
dll "libvorbis"
; acm codec doesn't work, haven't tried zorannt dshow codec
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index 70c9bd9250..89975c052a 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -1823,7 +1823,7 @@ demux_mkv_open_audio (demuxer_t *demuxer, mkv_track_t *track)
track->header_sizes[2] = track->private_size - offset
- track->header_sizes[0] - track->header_sizes[1];
- track->a_formattag = 0xFFFE;
+ track->a_formattag = mmioFOURCC('v', 'r', 'b', 's');
}
else if (!strcmp(track->codec_id, MKV_A_QDMC))
track->a_formattag = mmioFOURCC('Q', 'D', 'M', 'C');
@@ -1952,7 +1952,7 @@ demux_mkv_open_audio (demuxer_t *demuxer, mkv_track_t *track)
track->default_duration = 1024.0 / (float)sh_a->samplerate;
}
}
- else if (track->a_formattag == 0xFFFE) /* VORBIS */
+ else if (track->a_formattag == mmioFOURCC('v', 'r', 'b', 's')) /* VORBIS */
{
for (i=0; i < 3; i++)
{
diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c
index c2a560e8ad..60fbf4b2aa 100644
--- a/libmpdemux/demux_ogg.c
+++ b/libmpdemux/demux_ogg.c
@@ -15,6 +15,9 @@
#include "demuxer.h"
#include "stheader.h"
+#define FOURCC_VORBIS mmioFOURCC('v', 'r', 'b', 's')
+#define FOURCC_THEORA mmioFOURCC('t', 'h', 'e', 'o')
+
#ifdef TREMOR
#include <tremor/ogg.h>
#include <tremor/ivorbiscodec.h>
@@ -527,17 +530,17 @@ static int demux_ogg_add_packet(demux_stream_t* ds,ogg_stream_t* os,int id,ogg_p
// We jump nothing for FLAC. Ain't this great? Packet contents have to be
// handled differently for each and every stream type. The joy! The joy!
if(!os->flac && ((*pack->packet & PACKET_TYPE_HEADER) &&
- (ds != d->audio || ( ((sh_audio_t*)ds->sh)->format != 0xFFFE || os->hdr_packets >= NUM_VORBIS_HDR_PACKETS ) ) &&
- (ds != d->video || (((sh_video_t*)ds->sh)->format != 0xFFFC))))
+ (ds != d->audio || ( ((sh_audio_t*)ds->sh)->format != FOURCC_VORBIS || os->hdr_packets >= NUM_VORBIS_HDR_PACKETS ) ) &&
+ (ds != d->video || (((sh_video_t*)ds->sh)->format != FOURCC_THEORA))))
return 0;
// For vorbis packet the packet is the data, for other codec we must jump
// the header
- if(ds == d->audio && ((sh_audio_t*)ds->sh)->format == 0xFFFE) {
+ if(ds == d->audio && ((sh_audio_t*)ds->sh)->format == FOURCC_VORBIS) {
context = ((sh_audio_t *)ds->sh)->context;
samplesize = ((sh_audio_t *)ds->sh)->samplesize;
}
- if (ds == d->video && ((sh_audio_t*)ds->sh)->format == 0xFFFC)
+ if (ds == d->video && ((sh_audio_t*)ds->sh)->format == FOURCC_THEORA)
context = ((sh_video_t *)ds->sh)->context;
data = demux_ogg_read_packet(os,pack,context,&pts,&flags,samplesize);
if(d->video->id < 0)
@@ -589,13 +592,13 @@ void demux_ogg_scan_stream(demuxer_t* demuxer) {
if(demuxer->video->id >= 0) {
sid = demuxer->video->id;
/* demux_ogg_read_packet needs decoder context for Theora streams */
- if (((sh_video_t*)demuxer->video->sh)->format == 0xFFFC)
+ if (((sh_video_t*)demuxer->video->sh)->format == FOURCC_THEORA)
context = ((sh_video_t*)demuxer->video->sh)->context;
}
else {
sid = demuxer->audio->id;
/* demux_ogg_read_packet needs decoder context for Vorbis streams */
- if(((sh_audio_t*)demuxer->audio->sh)->format == 0xFFFE) {
+ if(((sh_audio_t*)demuxer->audio->sh)->format == FOURCC_VORBIS) {
context = ((sh_audio_t*)demuxer->audio->sh)->context;
samplesize = ((sh_audio_t*)demuxer->audio->sh)->samplesize;
}
@@ -813,7 +816,7 @@ int demux_ogg_open(demuxer_t* demuxer) {
// Check for Vorbis
if(pack.bytes >= 7 && ! strncmp(&pack.packet[1],"vorbis", 6) ) {
sh_a = new_sh_audio(demuxer,ogg_d->num_sub);
- sh_a->format = 0xFFFE;
+ sh_a->format = FOURCC_VORBIS;
ogg_d->subs[ogg_d->num_sub].vorbis = 1;
if (identify)
mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
@@ -842,7 +845,7 @@ int demux_ogg_open(demuxer_t* demuxer) {
sh_v->context = NULL;
sh_v->bih = (BITMAPINFOHEADER*)calloc(1,sizeof(BITMAPINFOHEADER));
sh_v->bih->biSize=sizeof(BITMAPINFOHEADER);
- sh_v->bih->biCompression= sh_v->format = 0xFFFC;
+ sh_v->bih->biCompression= sh_v->format = FOURCC_THEORA;
sh_v->fps = ((double)inf.fps_numerator)/
(double)inf.fps_denominator;
sh_v->frametime = ((double)inf.fps_denominator)/
@@ -1092,7 +1095,7 @@ int demux_ogg_open(demuxer_t* demuxer) {
}
mp_msg(MSGT_DEMUX,MSGL_V,"Ogg demuxer : found %d audio stream%s, %d video stream%s and %d text stream%s\n",n_audio,n_audio>1?"s":"",n_video,n_video>1?"s":"",ogg_d->n_text,ogg_d->n_text>1?"s":"");
-
+
return 1;
err_out:
@@ -1267,7 +1270,7 @@ demuxer_t* init_avi_with_ogg(demuxer_t* demuxer) {
od->video->id = -2;
od->audio->sh = sh_audio;
sh_audio->ds = od->audio;
- sh_audio->format = 0xFFFE;
+ sh_audio->format = FOURCC_VORBIS;
/// Return the joined demuxers
return new_demuxers_demuxer(demuxer,od,demuxer);
@@ -1304,13 +1307,13 @@ void demux_ogg_seek(demuxer_t *demuxer,float rel_seek_secs,int flags) {
if(demuxer->video->id >= 0) {
ds = demuxer->video;
/* demux_ogg_read_packet needs decoder context for Theora streams */
- if (((sh_video_t*)demuxer->video->sh)->format == 0xFFFC)
+ if (((sh_video_t*)demuxer->video->sh)->format == FOURCC_THEORA)
context = ((sh_video_t*)demuxer->video->sh)->context;
rate = ogg_d->subs[ds->id].samplerate;
} else {
ds = demuxer->audio;
/* demux_ogg_read_packet needs decoder context for Vorbis streams */
- if(((sh_audio_t*)demuxer->audio->sh)->format == 0xFFFE)
+ if(((sh_audio_t*)demuxer->audio->sh)->format == FOURCC_VORBIS)
context = ((sh_audio_t*)demuxer->audio->sh)->context;
vi = &((ov_struct_t*)((sh_audio_t*)ds->sh)->context)->vi;
rate = (float)vi->rate;